blob: ed19e16914c5e8a92b62f1a927df9f78fb926733 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
Yaksh
========
[![Build Status](https://travis-ci.org/FOSSEE/online_test.svg?branch=master)](https://travis-ci.org/FOSSEE/online_test)
This is a Quickstart guide to help users setup a trial instance. If you wish to deploy Yaksh in a production environment here is a [Production Deployment Guide] (https://github.com/FOSSEE/online_test/blob/master/README_production.md)
#### Introduction
This project provides an "exam" app that lets users take an online
programming quiz.
#### Features
* Define fairly complicated programming problems and have users
solve the problem.
* Immediate verification of code solution.
* Supports pretty much arbitrary coding questions in Python, C, C++ and
simple Bash and uses "test cases" to test the implementations of the students.
* Supports simple multiple choice questions and File uploads.
* Since it runs on your Python, you could technically test any Python based library.
* Scales to over 500+ simultaneous users.
* Distributed under the BSD license.
Quick Start
===========
#### Pre-Requisite
1. Ensure [pip](https://pip.pypa.io/en/latest/installing.html) is installed
#### Installation
1. Install the yaksh
- For latest stable release
$ pip install yaksh
- For the development version
$ pip install git+https://github.com/FOSSEE/online_test.git
1. In the terminal run
yaksh create_demo [-p PATH] [project_name]
- ```project_name``` is the desired name of the django project.
- In case a ```project_name``` is not specified, the project is initialised with the name ```yaksh_demo```
- PATH is an optional flag to specify where the django project will be installed
- If PATH is not provided, the project is created in the current directory
1. The script does the following;
1. Creates a new django project called `project_name`
1. Creates a new demo database
1. Creates two users, test moderator and test examinee
1. Loads demo questions
1. Loads demo quiz
1. Run:
$ yaksh run_demo
1. In a new terminal run:
$ sudo yaksh run_code_server
1. Open your browser and open the URL ```http://localhost:8000/exam```
1. Login as a teacher to edit the quiz or as a student to take the quiz
Credentials:
- Student - Username: student | Password: student
- Teacher - Username: teacher | Password: teacher
1. User can also login to the Default Django admin using;
- Admin - Username: admin | Password: admin
Inspiration
===========
At FOSSEE, Nishanth had implemented a nice django based app to
test for multiple-choice questions. I was inspired by a
programming contest that I saw at PyCon APAC 2011. Chris Boesch, who
administered the contest, used a nice web application
[Singpath](http://singpath.com) that he had built on top of GAE that
basically checked your Python code, live. This made it fun and interesting.
I wanted an implementation that was not tied to GAE and decided to write
one myself and the result is the "exam" app. The idea being that I can
use this to test students programming skills and not have to worry about
grading their answers myself and I can do so on my machines.
Contact
=======
For further information and support you can contact
* Forum Link
* Email Address
License
=======
This is distributed under the terms of the BSD license. Copyright
information is at the bottom of this file.
Authors
=======
Main author: Prabhu Ramachandran
I gratefully acknowledge help from the following:
- Nishanth Amuluru originally from FOSSEE who wrote bulk of the
login/registration code. He wrote an initial first cut of a quiz app
which supported only simple questions which provided motivation for
this app. The current codebase does not share too much from his
implementation although there are plenty of similarities.
- Harish Badrinath (FOSSEE) -- who provided a first cut of the bash
related scripts.
- Srikant Patnaik and Thomas Stephen Lee, who helped deploy and test
the code.
Copyright (c) 2011 Prabhu Ramachandran and FOSSEE (fossee.in)
|