/infomark

free, scalable, modern, and open-source course management system with auto testing of programming assignments

Primary LanguageGoGNU General Public License v3.0GPL-3.0

InfoMark

InfoMark is an is a scalable, modern and open-source rewrite of our online course management system with auto testing of students submissions using unit tests to ease the task of TAs.

For documentation and more details see https://infomark.org. That page also includes a Quickstart Guide.

Development

Testing

Run once

./infomark console configuration create > infomark-test-config.yml
./infomark console configuration create-compose infomark-config.yml > docker-compose.yml
# Test run against an actual database and redis.
sudo docker-compose up

# We mock some data to test against.
cd migration/mock
pip3 install -r requirements.txt
python3 mock.py
sudo apt install postgresql-client
PGPASSWORD=... psql -h 'localhost' -U 'database_user' -d 'infomark' -f mock.sql >/dev/null
cd ../../

Tests can run multiple-times as we rollback all changes to the database.

export INFOMARK_CONFIG_FILE=`realpath infomark-test-config.yml`
go test ./... -cover -v --goblin.timeout 15s -coverprofile coverage.out

Building

You will either need to download the UI from the release page or build it yourself. The ui has to be copied to the static folder. (details)