CRJudge

An online programming assignment grading system.

Getting Started

Requirements

For running CRJudge, a Linux server with following requirements is needed:

Installation

  1. Download the latest release from download page and unpack downloaded file in your public html directory.
  2. [Optional] Move folders system and application somewhere outside your public directory, and enter their full path in index.php file.
    $system_path = '/home/mohammad/secret/system';
    $application_folder = '/home/mohammad/secret/application';
    
  3. Create a MySql or PostgreSql database for CRJudge. Do not install any database connection package for C/C++, Java or Python.
  4. Set database connection settings in file application/config/database.php. You can use a prefix for your table names.
    /*  Enter database connection settings here:  */
    'dbdriver' => 'postgre',    // database driver (mysqli, postgre)
    'hostname' => 'localhost',  // database host
    'username' => `,           // database username
    'password' => `,           // database password
    'database' => `,           // database name
    'dbprefix' => 'crj_',       // table prefix
    /**********************************************/
    
  5. Make application/cache/Twig writable by php.
  6. Open CRJudge’s main page in a web browser and follow the installation process.
  7. Log in with your admin account.
  8. [IMPORTANT] Move folders 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.

Important: Secure CRJudge

After Installation

Now that you have installed CRJudge, you may want to: