本期推荐的是 OnlineJudge-基于 Python 和 Vue 的在线评测系统。
系统功能
- 基于 Docker,真正一键部署
- 前后端分离,模块化编程,微服务
- ACM/OI 两种比赛模式、实时/非实时评判 任意选择
- 丰富的可视化图表,一图胜千言
- 支持 Template Problem,可以添加函数题甚至填空题
- 更细致的权限划分,超级管理员和普通管理员各司其职
- 多语言支持:C, C++, Java, Python2, Python3,题目可以选择使用的语言
- Markdown & MathJax 支持
- 比赛用户IP限制 (CIDR ranges)
主要模块
- 后端(Django):https : //github.com/QingdaoU/OnlineJudge
- 前端(Vue):https : //github.com/QingdaoU/OnlineJudgeFE
- 裁判沙盒(Seccomp):https : //github.com/QingdaoU/Judger
- JudgeServer(Judger 的封装):https : //github.com/QingdaoU/JudgeServer
安装
Linux 环境
安装必要的依赖
sudo apt-get update && sudo apt-get install -y vim python3-pip curl gitpip3 install --upgrade pippip install docker-compose
安装 Docker
国内用户使用脚本一键安装:
sudo curl -sSL https://get.daocloud.io/docker | sh
国外用户使用脚本一键安装:
sudo curl -sSL get.docker.com | sh
开始安装
- 请选择磁盘空间富余的位置,运行下面的命令
git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git && cd OnlineJudgeDeploy
- 启动服务
docker-compose up -d
根据网速情况,大约5到30分钟就可以自动搭建完成,全程无需人工干预。
等命令执行完成,然后运行 docker ps -a,当看到所有的容器的状态没有 unhealthy 或 Exited (x) xxx 就代表 OJ 已经启动成功。
可以根据选择相关内容来生成对应的图表,图表类型包括数学视图,折线图,柱状图,堆叠图,还可以下载为图片,同学们还可以表达自己当时的情绪等等。