Evaluation System for IT - simple online judge with additional features. Measure execution time and limit memory inside nsjail-based sandboxes. Divide your content into sets of exercises and show your results with scoreboards.
ESIT is a platform for organizing contests, exams and other similar forms related with Computer Science.
Important
This repo is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness FOR A particular purpose. You are using this software at Your own risk.
Create user esit-user and download repository:
git clone https://github.com/jstpp/esit.git && cd esitYou can customize your config file. You should consider it when You run it in production mode, otherwise You can ignore it.
Start docker compose with predefined user-id and group-id:
UID="<your-uid>" GID="<your-gid>" docker compose -f compose.yaml upTip
To check your uid and gid you can use the following commands:
id -u && id -gThe service should be available on localhost:80 unless You don't change it. First registered user becomes an admin.
ESIT uses nsjail to isolate algorythmic solutions and uses default mechanisms of compilers or OS to measure the parameters of compilation. Currently, it supports python (3.11) and C++ (C++20).
ESIT's support for CTF solutions (at the moment) is limited to the cases, where the flag is hidden inside single file. Hosting more sophisticated challenges in nsjail is planned in the future.
ESIT also supports:
- writing tasks (with LaTeX support)
- single choice tests
- multiple choice tests
Check possibilities of ESIT custom configuration here.
Tip
When running docker installation remember to check if Your custom config matches the credentials in compose.yaml.
Although the code variables and comments are in English, ESIT doesn't provide English GUI. Feel free to add translations.
For more informations see: