• Stars
    star
    282
  • Rank 146,549 (Top 3 %)
  • Language
    JavaScript
  • License
    Other
  • Created about 13 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Online quiz/exam taking application.

Yaksh

Build Status Documentation Status Version Status Coverage 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++, Java, R, Scilab and Bash.
  • Supports Multiple choice, Fill in the blanks, Arrange options and File upload based questions.
  • Since it runs on Python, you could technically test any Python based library.
  • Create course with lessons and quiz for online learning.
  • Almost real-time monitoring for quiz.
  • Supports automatic and manual grading, regrading of quiz.
  • Add grading system to the course.
  • Scales to over 500+ simultaneous users.
  • Distributed under the BSD license.

To get a glimpse of all the available features check our demo website https://yaksh-demo.fossee.in. It has 50 teacher and student login.

Sample teacher login

Username:- teacher1 Password:- teacher1

Sample student login

Username:- student1 Password:- student1

Requirements

Python 3.6, 3.7, 3.8

Django 3.0.3

Celery 4.4.2

Installation

Note: Currently, only Linux and MacOS is supported for the project.

If Python 3.6 and above is not available in the system, then we recommend using miniconda. Download miniconda with Python 3.6 and above.

Installing Miniconda

  1. Download miniconda from https://docs.conda.io/en/latest/miniconda.html according to the OS version.
  2. Follow the installation instructions as given in https://conda.io/projects/conda/en/latest/user-guide/install/index.html#regular-installation
  3. Restart the Terminal.

Pre-Requisite

  • Install redis server

    Redis is required for celery. Celery runs a background task to re-evaluate the submissions.

    sudo apt install redis-server (Debian/Ubuntu)
    
    yum install redis (Centos)
    
  • Start redis server

    systemctl start redis
    
  • Check redis server status

    systemctl status redis
    
  • Run celery worker

    celery -A online_test worker -B
    
  • Ensure pip is installed

Installing 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:

    • Install Django and dependencies

      pip3 install -r requirements/requirements-common.txt
      
    • Install Code Server dependencies

      sudo pip3 install -r requirements/requirements-codeserver.txt
      

Quick Start

  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: [email protected]

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

More Repositories

1

Python-Textbook-Companions

Repository to store all the Python Textbook Companions.
Jupyter Notebook
100
star
2

FSF-mathematics-python-code-archive

Python
87
star
3

eSim

This repository contain source code for new flow of FreeEDA now know as eSim
Python
82
star
4

OpenPLC

HTML
36
star
5

OMChemSim

Chemical library developed using OpenModelica for steady-state and dynamic process simulation
Modelica
34
star
6

nghdl

This repository contain source code for ngspice and ghdl integration
C
27
star
7

xcos-on-web

Online simulation of Xcos!
JavaScript
23
star
8

venturial

Venturial is a GUI for OpenFOAM.
Python
20
star
9

osdag_workshop_booking

PHP
17
star
10

sees

Software Engineering for Engineers and Scientists
TeX
15
star
11

Online-NgSpice-Simulator

Simulate ngSpice netlist on Web
HTML
14
star
12

xcos_on_cloud

Implementing the functionality of Scilab's( v5.5.2 ) xcos simulator though Web
JavaScript
10
star
13

Chemical-PFD

Python
8
star
14

KiCad-eSim

eSim
Python
7
star
15

DWSIM-Flowsheets

6
star
16

FreeEDA

Tool for circuit design, simulation, analysis and PCB design (previously known as Oscad)
Python
6
star
17

OpenPLC-ldmicro

C++
6
star
18

st-scripts

scripts for spoken tutorials of "Python for Scientific Computing"
TeX
6
star
19

Scilab6-Test-Toolbox

Scilab
5
star
20

certificate-generator

TeX
5
star
21

Chemical-Simulator-GUI

Modelica
5
star
22

all-scilab-tbc-books-ipynb

Scilab TBC books converted in to python notebook
Jupyter Notebook
5
star
23

openplc_v2

C++
5
star
24

CFD-Case-Study-Simulations

4
star
25

FLOSS-Arduino-Book

Book on Microcontroller Programming with Arduino and FLOSS
Jupyter Notebook
4
star
26

fossee-scilab-octave-toolbox

C++
4
star
27

esim_circuit_simulation_project_module

PHP
3
star
28

LDmicroQt

C++
3
star
29

Python-TBC-Interface

Python Textbook Companion Interface
Python
3
star
30

eSimWebApp

This repository contains source code of eSim web application
JavaScript
3
star
31

OpenModelica_Arduino_With_MDD_Windows

C
3
star
32

django_workshop_042022_project

Sample project to teach Django - Python & Django Workshop Apr 2022
Python
3
star
33

dwsim_flowsheet

PHP
3
star
34

Common-Interface-Project

Python
3
star
35

eSim-IP-Library

C++
3
star
36

OM-Flowsheets

Modelica
3
star
37

Pspice-Kicad-Converter

KiCad Layout
3
star
38

SysID-R-code

R code for system identification developed by the team at IIT Madras
R
3
star
39

latex

TeX
3
star
40

python-workshops

Material for generic Python workshops
TeX
3
star
41

scilab_cloud_interface

PHP
2
star
42

LDMicroGtk

C++
2
star
43

openfoam-tutorials

A collection of ready-to-use tutorials with technical documentation, for classroom instruction purposes.
C++
2
star
44

FOSSEE-Signal-Processing-Toolbox

Scilab toolbox for signal processing and digital signal processing
Scilab
2
star
45

PSSP-Simulations

OM pssp upload backup
Motoko
2
star
46

stproject

JavaScript
2
star
47

OpenModelica_Arduino_With_MDD

C
2
star
48

Python-Textbook-Companions-for-Schools

Jupyter Notebook
2
star
49

tuxviewer

A X11 desktop screen sharing tool. Developed by
Shell
2
star
50

LTSpiceToKiCadConverter

Python
2
star
51

workshop_booking

Workshop booking interface in Django.
Python
2
star
52

Scilab-TBC-Uploads

2
star
53

scilab-on-cloud

JavaScript
2
star
54

OsdagLive

Steel design and graphics software
Python
2
star
55

OpenModelicaEmbedded

C++
2
star
56

OpenModelica_HIL

C
2
star
57

sdes-stscripts

Python
2
star
58

fosseeapps

The homepage of fosseeapps.in
JavaScript
1
star
59

workshops

Material for the Python for Scientific Computing workshops
TeX
1
star
60

fluid-mechanics-white

Fluid Mechanics by White, F. M.
1
star
61

eng-thermodynamics-nag

Engineering Thermodynamics by Nag P. K.
1
star
62

pycon_apac_2012

Presentation for the talk on FOSSEE at PyCon APAC 2012
1
star
63

introduction-to-flight-jdanderson

Introduction to Flight by Anderson J.D.
1
star
64

aerodynamics-jdanderson

Fundamentals of Aerodynamics, by Anderson, J. D., Jr.
1
star
65

communication-haykins

Communication Systems by Simon Haykins
1
star
66

arduino_projects_blog

PHP
1
star
67

FOSSEE-netbook-developer-docs

Developer notes and instructions. Kernel, U-boot, SDCARD boot, and filesystem customizations.
1
star
68

learn_django

1
star
69

SciPy2015

Website for SciPy India 2015 Conference
CSS
1
star
70

electronics-sedra-smith

Electronics by Sedra & Smith
1
star
71

FOSSEE-Forum

Python
1
star
72

elec-machines-sen

Electrical Machines by P.C.Sen
1
star
73

scilab-tutorials

Scilab
1
star
74

dwsim_custom_model

PHP
1
star
75

R-Case-Study-Uploads

1
star
76

thermodyamics-sonntag-borgnakke-wylen

Fundamentals of Thermodynamics by Sonntag ,R. E., Borgnakke ,C. and Van Wylen , G. J.
1
star
77

eSIm-Kicad-Simulations

1
star
78

soul_jsmol

JSMol for SOUL
JavaScript
1
star
79

scipycon

The Repo containing the django code for scipycon website
Python
1
star
80

basic-electrical-nagrath-kothari

Basic Electrical Engg by I.J. Nagrath, D.P. Kothari
1
star
81

operation-research-hamdytaha

Operations Research- An Introduction by Hamdy A. Taha
1
star
82

Scilab-Hackathon-2020

Scilab Hackathon 2020 by FOSSEE, IIT bombay
JavaScript
1
star
83

discrete-math-kennethrosen

Discrete Mathematics and its Applications with Combinatorics and Graph Theory by Kenneth H Rosen
1
star
84

workshops-more-scipy

Repository containing more of SciPy than in our standard workshop
Python
1
star
85

quantum-mechanics-shankar

Principles of quantum mechanics by R Shankar
1
star
86

fosseevideo

Video for introducing FOSSEE
1
star
87

electrodynamics-jdjackson

Classical Electrodynamics, by J D Jackson
1
star
88

datastructures-algo-sahni

Data Structures,Algorithms and Applications in C++ by Sartaj Sahni
1
star
89

FOSSEE-netbook-tools

Custom tools for FOSSEE laptop (previously netbook)
Shell
1
star