A GNU/Linux portable online judge equipped with an ACM ICPC contest system made in C++.
$ git clone https://github.com/matheuscscp/pimenta-judge.git
$ cd pimenta-judge
$ make
$ sudo make install
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 https://localhost:8000/. To stop, type:
$ pjudge stop
- 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!
Type | Name | Function |
---|---|---|
Directory | database |
Database |
Directory | problems |
Secret test cases |
Directory | www |
Browser front end |
File | httpserver.json |
HTTP server settings |
Database files and directories.
problems/
├── 1
│ ├── input
│ │ ├── file1_huge_case
│ │ └── file2
│ └── output
│ ├── file1_huge_case
│ └── file2
└── 2
├── input
│ └── file1
└── output
└── file1
Files of the web interface, like HTML, CSS and JavaScript. Feel free to modify the web interface of your online judge!
{
"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
}
}
Type | Name | Function |
---|---|---|
Directory | attempts |
All files related to users' attempts |
File | pjudge.bin |
System usage |
File | log.txt |
Log of web session events |