https://github.com/thenongice/go-grader
A Simple Code Judging that made from Go. It's help your to auto test result from your code.
https://github.com/thenongice/go-grader
bash competitive-programming golang grader
Last synced: 18 days ago
JSON representation
A Simple Code Judging that made from Go. It's help your to auto test result from your code.
- Host: GitHub
- URL: https://github.com/thenongice/go-grader
- Owner: TheNongice
- License: gpl-3.0
- Created: 2024-12-05T15:38:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-17T13:17:25.000Z (12 months ago)
- Last Synced: 2025-06-17T14:27:05.800Z (12 months ago)
- Topics: bash, competitive-programming, golang, grader
- Language: Go
- Homepage:
- Size: 43 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Simple Code Judging
A code judging system is made from GoLang. This system is made for using with C/C++ programing languages.
Currently, This system is in prototype for using to learn how to create automation code judging system only.
*This programs is make for Debian & Ubuntu.*
# Feature
- Auto compile C/C++ source code.
- Auto judging the result from execute files.
- Check walltime, runtime to decide time out. (Using [Isolate](https://github.com/ioi/isolate))
- It can specific the wrong & correct answer.
- [Future] Add problem with .zip file on RestfulAPI.
# Manual Setup
This program currently in alpha. I'm not make auto-install script untill it's in beta.
(Manual Setup)
1) Install GoLang (Version 1.23.x)
2) Install Isolate ([MANUAL INSTALL](https://www.ucw.cz/moe/isolate.1.html#_installation))
3) Setup `go-grader` in .env with these example!
```env
ISOLATE_PATH=/var/local/lib/isolate/
DIR_GRADER_PATH=/home/YOUR_USER/go_grader/
# Please don't forget / (black-slash).
```
4) You can create problem testcase following this method:
- Make new directory as `./problem//`
- Make output and input file as:
- Input use `.in`
- Output use `.out`
- Make a description of problem as `desc.json` with these content:
```json
{
"problem_title": "Problem_Name",
"max_time": 1,
"max_memory": 65536,
"amount_testcase": 3
}
```
If you can't imagine what's you should to make them, You can use this picture as reference.

_Note: max_time and max_memory are used seconds and kilobytes (kB)_
5) Let's start! *(with many bug!)*
# Docker Setup
1) Clone this repo with `git clone https://github.com/TheNongice/go-grader.git`
2) Config requirement on `docker-compose.yml`
3) Run it with `docker compose up -d`
## Summary Commands
1) If you want to run for demo run propose.
```bash
git clone https://github.com/TheNongice/go-grader.git
docker compose up -d
```
2) If you want to run my modify something.
```bash
git clone https://github.com/TheNongice/go-grader.git
nano docker-compose.yml
docker compose up -d
```
# Cautions
This programs is in testing. It support for Debian.
Who's interest to use/contributed this script. You're welcome!