8d9dc7b521da8a09b0fe1cf88d0016a92400ef25
- 解锁通知改推拉结合:WebSocket 非常驻连接,纯推会丢消息, 以 UserAchievement.notified + pending 端点为主通道 - 记录 push_to_user 复用 submission_update handler 的冲突, useSubmissionMonitor 需按 type 过滤 - 定义 achievement_unlocked_count 元指标及两轮判定上限,解决自引用 - 明确比赛提交不计入成就(contest_joined 除外) - 判定任务投递点精确到 judge_task 末尾,避免漏掉比赛分支 - 移除无用例的 eq operator Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
OnlineJudge 2.0
An onlinejudge system based on Python and Vue. Demo
Overview
- 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
Installation
Follow me: https://github.com/QingdaoU/OnlineJudgeDeploy/tree/2.0
Documents
Screenshots
Frontend:
You can control the menu and chart status in rankings.
Admin:
Browser Support
Modern browsers(chrome, firefox) and Internet Explorer 10+.
Thanks
- I'd appreciate a star if you find this helpful.
- Thanks to everyone that contributes to this project.
- Special thanks to heb1c, who has given us a lot of suggestions.
License
Description












