2025/05/19更新 Vue3 + Arco Deisgn新版本
该项目是基于Docker代码沙箱的算法题在线评测系统(Online Judge,OJ),分为网关
、用户
、判题
和代码沙箱
4个微服务。在系统前端,管理员可以创建、管理题目,用户可以查看题目,编写代码并进行在线自测和提交;在系统后端,自主实现了代码沙箱,能够对代码进行编译,在用户设置的测试用例上运行并输出结果信息(输出流、运行耗时、内存占用等),且代码沙箱作为独立服务,可以提供给其他开发者使用。
GitHub仓库:
新版本在老版本的基础上重点优化了Docker代码沙箱功能(一行配置开启Docker代码沙箱,支持运行时间和内存占用统计),前端方面大幅轻量化(在Vue3官方脚手架的基础上从0开发)、美观化(参考LeetCode的最新前端设计)
1. 项目预览
1.1 用户界面
1.2 管理员界面
2. 项目结构
bash
├── antares-api # 各个微服务提供的接口,供Dubbo远程调用
│ └── antares-user-api
├── antares-code-sandbox # 代码沙箱服务
├── antares-code-sandbox-sdk # 调用代码沙箱的sdk
├── antares-common # 各服务的公共依赖
│ ├── antares-common-auth
│ ├── antares-common-core
│ ├── antares-common-mybatis
│ └── antares-common-redis
├── antares-gateway # 网关服务
├── antares-judge # 判题服务
├── antares-user # 用户服务
├── script # 内存监控脚本
└── sql # 数据库脚本
3. 运行教程
未完待续...
4. 下一步计划
- ⭐完成今日一题签到功能(+积分功能)
- ⭐完成用户的提交统计
- ⭐做运行与提交接口的限流
- ⭐完善项目文档
- ⭐项目的部署上线
- 提供项目的Dockerfile方便一键部署
- 接入第三方的代码沙箱实现
- 做运行时间与内存占用的统计功能(打败了xx%用户)
- 完善用户中心
2023/09/04 React + Ant Design Pro老版本
用React + Ant Design Pro那一套重写了前端,后端实现了ACM模式的本地代码沙箱和Args模式的Docker沙箱(线上使用的是本地代码沙箱),拓展点是做了提交统计,支持在线测试,使用了API签名认证(只用了AK/SK),最后,为了方便开发者用户调用我实现的代码沙箱,写了一个SDK。
在线访问:oj.zqk.asia(测试账号:[email protected],密码:12345678)
GitHub仓库:
项目的部署使用的是自己搭建的服务器,使用IPv6 DDNS实现公网访问。如果你无法访问,可能是由于你的网络环境不支持IPv6(通常是公司内网和校园网),你可以到ipv6测试这个网站测试你是否支持IPv6,如果不支持可以连接手机热点后访问,手机网络一般支持IPv6。
项目目前可能还有一些BUG,后续会不断优化。