An open API service indexing awesome lists of open source software.

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.

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.

![Sample Folder Structure to add new problem list](https://ngixx.in.th/img/sample_go-grader.png)

_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!