- Based on Docker; One-click deployment
- Separated backend and frontend; Modular programming; Micro service
- ACM/OI rule support; realtime/non-realtime rank support
- Amazing charting and visualization
- Template-problem support
- More reasonable permission control
- Multi-language support:
C
,C++
,Java
,Python2
,Python3
- Markdown & MathJax support
- Contest participants IP limit(CIDR)
Main modules are available below:
- Backend(Django): https://github.com/QingdaoU/OnlineJudge
- Frontend(Vue): https://github.com/QingdaoU/OnlineJudgeFE
- Judger Sandbox(Seccomp): https://github.com/QingdaoU/Judger
- JudgeServer(A wrapper for Judger): https://github.com/QingdaoU/JudgeServer
heartbeat 앱 동작을 위해 백엔드 컨테이너에 아래 라이브러리들의 설치가 필요함
apk add gcc
apk add linux-headers
apk add musl-dev
pip install psutil
https://github.com/QingdaoU/OnlineJudgeDeploy/tree/2.0
-
데이터베이스는 백엔드 코드 각 app(account, contest 등..)폴더 내 models.py 파일로 관리됩니다.
- 따라서 oj-postgres 컨테이너 내 데이터베이스에 대한 직접 수정은 금합니다.
- manage.py 파일이 존재하는 경로