Skip to content

Latest commit

 

History

History
94 lines (82 loc) · 2.71 KB

README.md

File metadata and controls

94 lines (82 loc) · 2.71 KB

pimenta-judge

A GNU/Linux portable online judge equipped with an ACM ICPC contest system made in C++.

Table of Contents

Installation

$ git clone https://github.com/matheuscscp/pimenta-judge.git
$ cd pimenta-judge
$ make
$ sudo make install

Usage

To create an instance of pjudge, choose a directory name, like myjudge, and type:

$ pjudge install myjudge

To start the system, type:

$ cd myjudge
$ pjudge start

Then access http://localhost:8000/. To stop, type:

$ pjudge stop

Hints

  • All it takes to run a pjudge instance is a directory and a network port, so you can have multiple instances running in the same host!

Directory and file structure

Automatically generated by installation

Type Name Function
Directory database Database
Directory problems Secret test cases
Directory www Browser front end
File httpserver.json HTTP server settings

Directory database

Database files and directories.

Directory problems

problems/
├── 1
│   ├── input
│   │   ├── file1_huge_case
│   │   └── file2
│   └── output
│       ├── file1_huge_case
│       └── file2
└── 2
    ├── input
    │   └── file1
    └── output
        └── file1

Directory www

Files of the web interface, like HTML, CSS and JavaScript. Feel free to modify the web interface of your online judge!

File httpserver.json

{
  "port": 8000,
  "client_threads": 4,
  "request": {
    "timeout": 5,
    "max_uri_size": 1024,
    "max_header_size": 1024,
    "max_headers": 1024,
    "max_payload_size": 1048576
  },
  "session": {
    "clean_period": 86400
  }
}

Automatically generated during execution

Type Name Function
Directory attempts All files related to users' attempts
File pjudge.bin System usage
File log.txt Log of web session events