Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ ESIT Public

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.

License

jstpp/ESIT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  ESIT

MIT License

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.

Screenshot of dashboard

Purpose

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.

Installation

Create user esit-user and download repository:

git clone https://github.com/jstpp/esit.git && cd esit

You 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 up

Tip

To check your uid and gid you can use the following commands:

id -u && id -g

The service should be available on localhost:80 unless You don't change it. First registered user becomes an admin.

Technical details

Evaluation of algorythmic solutions

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).

Screenshot of algorythmic submission interface

Evaluation of CTF solutions

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.

Evaluation of other solutions

ESIT also supports:

  • writing tasks (with LaTeX support)
  • single choice tests
  • multiple choice tests

Custom configuration

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.

Translation

Although the code variables and comments are in English, ESIT doesn't provide English GUI. Feel free to add translations.

More informations

For more informations see:

About

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.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published