/edx-ora2

Open Response Assessment Suite

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

Open Response Assessment Travis build status Coverage badge

User docs

Installation

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

But development is done in the Workbench which is part of the xblock-sdk. Currently Ubuntu 12.04 is assumed. You can setup everything in a Vagrant instance.

To do so install the latest VirtualBox >= 4.3.12 and the latest Vagrant >= 1.6.5.

Clone the repo:

mkdir orastack
cd orastack
git clone git@github.com:edx/edx-ora2.git

Create the Vagrant instance:

ln -s ./edx-ora2/Vagrantfile ./
vagrant plugin install vagrant-vbguest
vagrant up

The first vagrant up will fail when setting up shared folders (because the user ora2 does not exist) so do:

vagrant provision
vagrant reload

Now you can ssh into the vagrant machine:

vagrant ssh
sudo su ora2

To install all dependencies:

make install-sys-requirements
make install
make install-dev

Running the Development Server

./scripts/workbench.sh

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

./scripts/workbench.sh 0.0.0.0:9000

Combining and Minifying JavaScript and Sass

To reduce page size, the OpenAssessment XBlock serves combined/minified versions of JavaScript and CSS. This combined/minified files are checked into the git repository.

If you modify JavaScript or Sass, you MUST regenerate the combined/minified files:

# Combine/minify JavaScript
make javascript

# Combine/minify CSS (from Sass)
make sass

Make sure you commit the combined/minified files to the git repository!

Running Tests

To run all unit tests:

make test

To limit Python tests to a particular module:

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

To run just the JavaScript tests:

make test-js

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

make test-js-debug

There are also acceptance and accessibility tests that run can be run against a sandbox. For more information, about how to run these from your machine, check out test/acceptance/README.rst.

i18n

You will need to:

  1. Install i18n-tools.
  2. Configure Transifex, as described in the docs.
  3. Install gettext.

To extract strings and push to Transifex

./scripts/i18n-push.sh

To pull strings from Transifex

./scripts/i18n-pull.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

Contributions are very welcome. The easiest way is to fork this repo, and then make a pull request from your fork. The first time you make a pull request, you may be asked to sign a Contributor Agreement.

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.