Skip to main content

A django app to conduct online tests.

Project description


[![Build Status](](
[![Documentation Status](](

To get an overview of the Yaksh interface please refer to the user documentation at [Yaksh Docs] (

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] (

#### 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-Requisites

1. Ensure you have Python available.
1. Ensure [pip]( is installed.

#### Installation

1. Install yaksh
- For latest stable release

$ pip install yaksh

- For the development version

$ pip install git+

#### Short instructions

To see a quick demo after installing yaksh do the following:

$ yaksh create_demo yaksh_demo
$ yaksh run yaksh_demo

On another terminal start up the code server that executes the user code safely:

$ sudo yaksh run_code_server

Now point your browser to ```http://localhost:8000/exam```.

#### More detailed instructions

1. On the terminal run:

$ yaksh create_demo [project_path]

- `project_path` is the desired directory of the django project the
basename of which is also the Django project name. This can be a
relative directory.

- In case a `project_path` is not specified, the project is created
in a `yaksh_demo` subdirectory of the current directory.

1. The script does the following;
1. Creates a new django project with name as the basename of the specified
1. Creates a new demo database.
1. Creates two users, teacher and student.
1. Loads demo questions.
1. Loads demo quiz.

1. To run the server, run:

$ yaksh run relpath/or/abspath/to/demo

1. In a new terminal run the following command which executes user submitted
code safely:

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


At FOSSEE, Nishanth had implemented a nice django based app to
test for multiple-choice questions. Prabhu Ramachandran 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]( 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.


For further information and support you can contact

Python Team at FOSSEE:


This is distributed under the terms of the BSD license. Copyright
information is at the bottom of this file.


[FOSSEE Developers] (

Copyright (c) 2011-2017 FOSSEE (

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for yaksh, version 0.5.0
Filename, size File type Python version Upload date Hashes
Filename, size yaksh-0.5.0.tar.gz (1.2 MB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page