This document describes the process of building CodeGrade and installing requirements. The steps below are required for both a development build and a production build of CodeGrade. Please consult the running instructions for more information on running CodeGrade after building has finished.
Building, hosting, and running CodeGrade is at your own risk and has many pitfalls including e.g. correct handling of celery tasks. We provide CodeGrade as a service. More information on getting started with CodeGrade at your institute can be found on our website.
Building CodeGrade requires an installation of the following software packages:
- Python 3.6 (or newer)
Please note that the installation of some of the above packages is highly recommended, however alternatives can be used.
Production and dev mode share a few steps that are relevant for both. The first
config.ini. Now you should read this
file and make the necessary changes. Especially the part about
very important. After reading this you should setup your database, CodeGrade is
tested using SQLite and PostgreSQL, but we recommend running with PostgreSQL for
production. So for this document we will assume that you are using this
Now we need to setup celery. Celery can be run using multiple brokers. For this
application the choice of the broker is important. It is highly recommended that
you read how celery works and the differences between brokers, however it is not
required. We recommend using RabbitMQ as the broker. After setting up your
broker you need to change this information in
You should start by creating a new database and user in the Postgres console and
granting the all the rights on the database to the new user. The easiest way to
grant the privileges is to change the owner of the new database. After doing
this you should edit
config.ini with your new database information.
Now you can optionally create your own privacy statement. Please note that
CodeGrade is not responsible for this privacy statement or the default in what
way whatsoever. Creating a custom privacy statement is done by placing a
PRIVACY_STATEMENT.md in the root of the project directory. Please note that
after changing this file you need to build or restart the front-end again (this
step is explained later). Also note that while this file is in markdown, you may
After doing this you should setup a virtualenv in the root folder, the minimum
python version required to run CodeGrade is Python 3.6. Now activate this
environment. After doing this you should run
npm install and
pip install -r requirements.txt all from within the project root.
Populating the Database¶
Now you should create the tables in the database. This is done by running
db_upgrade. After this you should populate the database with the seed data,
this is done by running