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 [email protected]: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
make install-dev
./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
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)
./scripts/sass.sh
Make sure you commit the combined/minified files to the git repository!
To run all 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:
./scripts/test-js.sh
To run the JavaScript tests in Chrome so you can use the debugger:
./scripts/js-debugger.sh
You will need to:
- Install i18n-tools.
- Configure Transifex, as described in the docs.
- Install gettext.
To extract strings and push to Transifex
./scripts/i18n-push.sh
To pull strings from Transifex
./scripts/i18n-pull.sh
The code in this repository is licensed under version 3 of the AGPL unless otherwise noted.
Please see LICENSE.txt
for details.
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.
Please do not report security issues in public. Please email [email protected]
You can discuss this code on the edx-code Google Group or in the edx-code IRC channel on Freenode.