summaryrefslogtreecommitdiff
path: root/README.md
blob: 79e4766947044b0d3762850601830087a2e2c7d8 (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
126
127
128
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

History
=======

At FOSSEE, Nishanth had implemented a nice django based app to
test for multiple-choice questions. Prabhu Ramchandran was inspired by a
programming contest that he 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.

Prabhu wanted an implementation that was not tied to GAE and hence wrote 
the initial cut of what is now 'Yaksh'. The idea being that 
anyone can use this to test students programming skills and not have to worry 
about grading their answers manually and instead do so on their machines.

The application has since been refactored and maintained by FOSSEE Developers.

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

Help from the following is gratefully acknowledged:

 - 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.

 - [FOSSEE Developers](http://singpath.com) 


Copyright (c) 2011 FOSSEE (fossee.in)