Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A django app to conduct online programming tests.

Project Description

Yaksh

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.
  2. Ensure pip is installed.

Installation

  1. Install yaksh

    • Clone the repository

      $ git clone https://github.com/FOSSEE/online_test.git
      
    • Go to the online_test directory

      $ cd ./online_test
      
    • Install the dependencies

      • For Python 2 use:

        $ pip install -r ./requirements/requirements-py2.txt
        
      • For Python 3 (recommended) use:

        $ pip install -r ./requirements/requirements-py3.txt
        

Short instructions

  1. Start up the code server that executes the user code safely:

    • To run the code server in a sandboxed docker environment, run the command:

      $ invoke start
      
    • Make sure that you have Docker installed on your system beforehand. Docker Installation

    • To run the code server without docker, locally use:

      $ invoke start --unsafe
      
    • Note this command will run the yaksh code server locally on your machine and is susceptible to malicious code. You will have to install the code server requirements in sudo mode.

  2. On another terminal, run the application using the following command:

    $ invoke serve
    
    • Note: The serve command will run the django application server on the 8000 port and hence this port will be unavailable to other processes.
  3. Open your browser and open the URL http://localhost:8000/exam

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

Contact

For further information and support you can contact

Python Team at FOSSEE: pythonsupport@fossee.in

License

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

Authors

FOSSEE Developers

Copyright (c) 2011-2017 FOSSEE

Release History

Release History

This version
History Node

0.7.0

History Node

0.6.0

History Node

0.5.0

History Node

0.1.1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
yaksh-0.7.0.tar.gz (1.6 MB) Copy SHA256 Checksum SHA256 Source Nov 15, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting