https://github.com/oj-lab/platform
Aims to build high-performance & easy-peasy online-judge system
https://github.com/oj-lab/platform
backend easy-peasy gin golang gorm k8s online-judge
Last synced: 5 months ago
JSON representation
Aims to build high-performance & easy-peasy online-judge system
- Host: GitHub
- URL: https://github.com/oj-lab/platform
- Owner: oj-lab
- License: mpl-2.0
- Created: 2022-07-30T15:20:05.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-02-16T02:35:39.000Z (over 1 year ago)
- Last Synced: 2026-01-14T21:57:46.663Z (5 months ago)
- Topics: backend, easy-peasy, gin, golang, gorm, k8s, online-judge
- Language: Go
- Homepage:
- Size: 6.59 MB
- Stars: 10
- Watchers: 0
- Forks: 5
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OJ Lab Platform

[](https://codecov.io/gh/oj-lab/platform)

Central service for OJ Lab, supporting distributed deployment.
## Development
> 🌟 Accept VSCode extension recommandation for complete experience.
### Before you start
OJ Lab Platform depends on several foundational services, including:
- PostgreSQL (or other SQL database in the future) for data storage
- Redis for caching & session management
- MinIO (or other S3 like storage) for file storage
- ClickHouse for analytics (currently not developed)
- [Judger](https://github.com/oj-lab/judger) for judging
This project provides a Makefile to help you quickly set up dependencies & other optional choices.
Run `make setup-dependencies` to start these services and load the initial data.
### Launch from VSCode
Launch the programs with VSCode launch configurations is the most recommended way.
It will automatically set the environment and run the program in debug mode.
### Run Judger
There is a `judger` service in the project's `docker-compose.yml`.
It won't start from the `make setup-dependencies` command by default
(since it takes time to let MinIO & PostgreSQL start up).
Run `docker compose up -d judger` to start the judger service.
### Manage DB data
We provide `adminer` to access PostgreSQL data.
You can optionally run `docker compose up -d adminer` to start the service,
or just continue to use your own database management tool.
> Remember to set the type of the database to `PostgreSQL` when login to adminer.
## Troubleshooting
go bin not included in PATH
```bash
# You should change .zshrc to .bashrc if you are using bash
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.zshrc
```