Sharif Judge is a free and open source online judge for C, C++, Java and Python programming courses.
The web interface is written in PHP (CodeIgniter framework) and the main backend is written in BASH.
Python in Sharif Judge is not sandboxed yet. Just a low level of security is provided for python. If you want to use Sharif Judge for python, USE IT AT YOUR OWN RISK or provide sandboxing yourself.
The full documentation is at https://github.com/mjnaderi/Sharif-Judge/tree/docs
Download the latest release from https://github.com/mjnaderi/Sharif-Judge/releases
For running Sharif Judge, a Linux server with following requirements is needed:
mysqli
extensionphp
shell command)shell_exec()
php function (specially shell_exec("php");
)gcc
, g++
, javac
, java
, python2
and python3
commands)perl
installed for more precise time and memory limit and imposing size limit on output of submitted code.system
and application
somewhere outside your public directory. Then save their full path in index.php
file ($system_path
and $application_folder
variables).application/config/database.php
.application/cache/Twig
writable by php.tester
and assignments
somewhere outside your public directory. Then save their full path in Settings
page. These two folders must be writable by PHP. Submitted files will be stored in assignments
folder. So it should be somewhere not publicly accessible.GPL v3