Skip to content

caesar2164/edx-ora2

 
 

Repository files navigation

Travis build status

Coverage badge

User documentation available on ReadTheDocs.

This is an initial prototype for redesigning Peer Grading and general Open Ended Submission Evaluation. This project is in the early stages of development and is not ready for general use.

Installation

The intent of this project is to be installed as Django apps that will be included in edx-platform.

For JavaScript minification and unit tests, you must install NodeJS.

To install dependencies and start the development ("workbench") server:

./scripts/workbench.sh

By default, the XBlock JavaScript will be combined and minified. To preserve indentation and line breaks in JavaScript source files:

DEBUG_JS=1 ./scripts/workbench.sh

Additional arguments are passed to runserver. For example, to start the server on port 8001:

./scripts/workbench.sh 8001

Celery Workers

Some of the OpenAssessment APIs execute tasks asynchronously using celery. The tasks are executed by worker processes.

First, you will need to install RabbitMQ.

Once RabbitMQ is installed, you can start a worker process locally:

./scripts/celery-worker.sh

Running Tests

To run the Python and Javascript unit test suites:

./scripts/test.sh

To limit Python tests to a particular module:

./scripts/test-python.sh openassessment/xblock/test/test_openassessment.py

To run just the JavaScript tests:

./scripts/test-js.sh

To run the JavaScript tests in Chrome so you can use the debugger:

./scripts/js-debugger.sh

Quality Check

Install pylint:

pip install pylint==0.28.0

Check for quality violations:

pylint openassessment

Disable quality violations on a line or file:

# pylint: disable=W0123,E4567

Vagrant

This repository includes a Vagrant configuration file, which is useful for testing ORA2 in an environment that is closer to production:

  • Uses gunicorn to serve the workbench application. Unlike Django runserver, gunicorn will process requests in parallel.
  • Uses mysql as the database, which (unlike sqlite) allows for simultaneous writes.
  • Serves static files using nginx instead of Django staticfiles.
  • Runs multiple celery workers.
  • Uses memcached.
  • Installs EASE for AI grading, including its many requirements.

To use the Vagrant VM:

  1. Install Vagrant.
  2. vagrant up to start and provision the Vagrant VM.
  3. Visit http://192.168.44.10
  4. You should see the workbench index page load.

After making a change to the code in the edx-ora2 directory, you must restart the services on the Vagrant VM:

  1. vagrant ssh to ssh into the Vagrant VM.
  2. ./update.sh to restart the services, run database migrations, and collect static assets.
  3. Visit http://192.168.44.10

By default, the Vagrant VM also includes a monitoring tool for Celery tasks called Flower. To use the tool, visit: http://192.168.44.10:5555

The log files from the Vagrant VM are located in edx-ora2/logs/vagrant, which is shared with the host machine.

i18n

You will need to install getttext.

To extract strings and compile messages:

./scripts/i18n.sh

License

The code in this repository is licensed under version 3 of the AGPL unless otherwise noted.

Please see LICENSE.txt for details.

How to Contribute

Due to the very early stage of development we're at, we are not accepting contributions at this time. Large portions of the API can change with little notice.

Reporting Security Issues

Please do not report security issues in public. Please email security@edx.org

Mailing List and IRC Channel

You can discuss this code on the edx-code Google Group or in the edx-code IRC channel on Freenode.

About

Open Response Assessment Suite

Resources

License

Stars

Watchers

Forks

Packages

No packages published