The VMChecker API is built on Django. The project is made up of two parts, the API that exposes the URLs for Moodle, and a second process, that submits assignments to Gitlab, polls for the result or retrieves the output/assignment archive. It uses the Postgres database as a task queue.
python3 >= 3.8
pipenv
(pip3 install pipenv --user
. See docs)docker
(See official docker docs)- A Moodle installation with the vmchecker plugin installed. See the vmchecker-next docs on how to set up a development environment. If you do not plan on working on the Moodle plugin, follow the following workshop tutorial on setting up a Moodle instance with the vmchecker plugin installed (Tutorial).
- Create a test assignment on Gitlab.com by following the TA handbook. You will only require the private git repository. You can directly fork the following template assignment.
- After cloning the repository install the python packages using
pipenv install
. cp ./etc/.env.development .env
- Customize the
.env
file with the correct information - Start up the development stack
pipenv run docker-compose-dev up
. It will start aMinio
andPostgres
instance under the 'api' namespace
pipenv run pytest test/