【在线判题系统】By 流火

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(测试账号:oj@qq.com,密码:12345678)

GitHub仓库:

前端:github.com/qk-antares/...

后端:github.com/qk-antares/...

项目的部署使用的是自己搭建的服务器,使用IPv6 DDNS实现公网访问。如果你无法访问,可能是由于你的网络环境不支持IPv6(通常是公司内网和校园网),你可以到ipv6测试这个网站测试你是否支持IPv6,如果不支持可以连接手机热点后访问,手机网络一般支持IPv6。

项目目前可能还有一些BUG,后续会不断优化。

相关推荐
Victor3561 小时前
Netty(20)如何实现基于Netty的WebSocket服务器?
后端
缘不易1 小时前
Springboot 整合JustAuth实现gitee授权登录
spring boot·后端·gitee
Kiri霧1 小时前
Range循环和切片
前端·后端·学习·golang
WizLC1 小时前
【Java】各种IO流知识详解
java·开发语言·后端·spring·intellij idea
Victor3561 小时前
Netty(19)Netty的性能优化手段有哪些?
后端
爬山算法1 小时前
Netty(15)Netty的线程模型是什么?它有哪些线程池类型?
java·后端
一起养小猫2 小时前
LeetCode100天Day1-字符串匹配与Z字形变换
java·leetcode
白宇横流学长2 小时前
基于SpringBoot实现的冬奥会科普平台设计与实现【源码+文档】
java·spring boot·后端
yaoh.wang2 小时前
力扣(LeetCode) 1: 两数之和 - 解法思路
python·程序人生·算法·leetcode·面试·跳槽·哈希算法
Code Slacker2 小时前
LeetCode Hot100 —— 滑动窗口(面试纯背版)(四)
数据结构·c++·算法·leetcode