diff options
author | Prabhu Ramachandran | 2017-11-15 19:14:27 +0530 |
---|---|---|
committer | GitHub | 2017-11-15 19:14:27 +0530 |
commit | fa0548170cb8ee68508bc7286c65f9651f5718a1 (patch) | |
tree | be1ba69459800453c16a61d0a1c5b228d17cb151 | |
parent | 71169d6783c8817283f631809828b8626287cca7 (diff) | |
parent | 401f1ae1fe5ae873cc0ac373b2b3e1add7ccf69c (diff) | |
download | online_test-fa0548170cb8ee68508bc7286c65f9651f5718a1.tar.gz online_test-fa0548170cb8ee68508bc7286c65f9651f5718a1.tar.bz2 online_test-fa0548170cb8ee68508bc7286c65f9651f5718a1.zip |
Merge pull request #394 from FOSSEE/release-0.7v0.7.0
Release 0.7
-rw-r--r-- | CHANGELOG.txt | 30 | ||||
-rw-r--r-- | README.md | 132 | ||||
-rw-r--r-- | README.rst | 164 | ||||
-rw-r--r-- | online_test/__init__.py | 2 | ||||
-rw-r--r-- | setup.py | 9 | ||||
-rw-r--r-- | yaksh/migrations/0008_release_0_7_0.py | 25 |
6 files changed, 221 insertions, 141 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 824a051..e259117 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,4 +1,4 @@ -=== 0.7.0 (Tentatively 23-10-2017) === +=== 0.7.0 (15-11-2017) === * Simplified Standard I/O type question error output. * Added the facility to search questions using tags. @@ -14,10 +14,30 @@ * Added the facility to create users by uploading CSV. * Fixed a bug that would require shebang to be put in for Bash assertion based questions. * Bug fixed that did not allow to edit a profile. -* CSV download for quiz attempts enhanced. -* Updated Courses Page to show Active Courses on top. -* Added a Datetime Picker to Add Course Page -* Added invoke script for quickstart and docker deployment +* Updated Courses Page to show active courses on top. +* Added a Datetimepicker to edit course Page. +* Added invoke script for quickstart and docker deployment. +* Added the facility to send mails to all students enrolled in a course. +* Fixed a bug that would cause issue during email activation key check +* Added comprehensive tests for views.py +* Fixed a bug that allowed moderators to set cyclic quiz prerequisites in a course. +* Added a feature that redirects to edit profile page if user has no profile. +* Fixed a bug that would allow enrolled students to attempt quizzes for deactivated courses. +* Added link on the landing page to Online test Github repository. +* Updated Code server to tornado server which takes a post request to submit a job asynchronously. +* Updated bulk email editor from Froala editor to TinyMCE editor. +* Fixed a bug that would take the maximum marks scored by a user in all attempts for non coding questions. +* Added a feature that would allow a user to see previously submitted answers for non code questions. +* Last submitted answer is updated instead of appending for non coding questions. +* User answers for code questions are stored but not evaluated during skipping questions. +* Added logged in user information in footer of the base html page. +* Fixed a bug that would not shuffle questions in a quiz. +* Updated a feature that allows user to quit the paper manually and revisit the paper if necessary. +* Updated snippets for questions to be multilines. +* Fixed a bug that did not reset answer during quiz. +* Updated download quiz details feature to be more informative. +* Simplified Assertion type question error output for Python. +* Added a feature that prepopulates the test case type field when adding test cases to questions. === 0.6.0 (11-05-2017) === diff --git a/README.md b/README.md deleted file mode 100644 index 28f45d0..0000000 --- a/README.md +++ /dev/null @@ -1,132 +0,0 @@ -Yaksh -======== - -[![Build Status](https://travis-ci.org/FOSSEE/online_test.svg?branch=master)](https://travis-ci.org/FOSSEE/online_test) -[![Documentation Status](https://readthedocs.org/projects/yaksh/badge/?version=latest)](http://yaksh.readthedocs.io/en/latest/?badge=latest) - -To get an overview of the Yaksh interface please refer to the user documentation at [Yaksh Docs] (http://yaksh.readthedocs.io) - -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-Requisites - -1. Ensure you have Python available. -1. Ensure [pip](https://pip.pypa.io/en/latest/installing.html) 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](https://docs.docker.com/engine/installation/#desktop) - - - - 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. - -1. 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. - -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 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](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 - -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] (https://github.com/FOSSEE/online_test/graphs/contributors) - - -Copyright (c) 2011-2017 FOSSEE (fossee.in) diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..c615d0e --- /dev/null +++ b/README.rst @@ -0,0 +1,164 @@ +Yaksh +===== + +|Build Status| |Documentation Status| + +To get an overview of the Yaksh interface please refer to the user documentation at `Yaksh Docs <http://yaksh.readthedocs.io>`_ + + +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-Requisites +^^^^^^^^^^^^^^ + +1. Ensure you have Python available. +2. Ensure `pip <https://pip.pypa.io/en/latest/installing.html>`__ 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 <https://docs.docker.com/engine/installation/#desktop>`__ + + - 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 <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 + +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 <https://github.com/FOSSEE/online_test/graphs/contributors>`_ + +Copyright (c) 2011-2017 `FOSSEE <https://fossee.in>`_ + + +.. |Build Status| image:: https://travis-ci.org/FOSSEE/online_test.svg?branch=master + :target: https://travis-ci.org/FOSSEE/online_test +.. |Documentation Status| image:: https://readthedocs.org/projects/yaksh/badge/?version=latest + :target: http://yaksh.readthedocs.io/en/latest/?badge=latest diff --git a/online_test/__init__.py b/online_test/__init__.py index ef7eb44..a71c5c7 100644 --- a/online_test/__init__.py +++ b/online_test/__init__.py @@ -1 +1 @@ -__version__ = '0.6.0' +__version__ = '0.7.0' @@ -1,7 +1,7 @@ import os from setuptools import setup, find_packages -README = open(os.path.join(os.path.dirname(__file__), 'README.md')).read() +README = open(os.path.join(os.path.dirname(__file__), 'README.rst')).read() # allow setup.py to be run from any path os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir))) @@ -20,7 +20,10 @@ install_requires = [ 'python-social-auth==0.2.19', 'tornado', 'psutil', - 'ruamel.yaml==0.15.23' + 'ruamel.yaml==0.15.23', + 'invoke==0.21.0', + 'six', + 'requests', ] setup( @@ -37,7 +40,7 @@ setup( 'yaksh = yaksh.scripts.cli:main', ], }, - description='A django app to conduct online tests.', + description='A django app to conduct online programming tests.', long_description=README, install_requires=install_requires, classifiers=[ diff --git a/yaksh/migrations/0008_release_0_7_0.py b/yaksh/migrations/0008_release_0_7_0.py new file mode 100644 index 0000000..827302c --- /dev/null +++ b/yaksh/migrations/0008_release_0_7_0.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.5 on 2017-11-14 14:29 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('yaksh', '0007_alter_profile_activation_key'), + ] + + operations = [ + migrations.AddField( + model_name='answerpaper', + name='questions_order', + field=models.TextField(blank=True, default=''), + ), + migrations.AlterField( + model_name='question', + name='snippet', + field=models.TextField(blank=True), + ), + ] |