开源免费、部署简单的在线评测系统(OJ)

一、 NOJ

有老师后台:
1、发布题目
2、上传测试数据(输入 / 输出)
3、查看学生提交、AC/WA/TLE 状态
4、看班级 / 学生做题情况
5、支持:C/C++/Java/Python 等竞赛常用语言
6、轻量、运维简单,不用复杂配置
7、完全开源,你可以随便改界面、改功能
开源地址(直接拿源码)
GitHub:
https://github.com/ZsgsDesign/NOJ
功能你刚好需要
题目管理(增删改查、题目标签、难度)
测试数据上传(标准 IO)
在线代码编辑器 + 提交判题
实时查看学生通过情况
班级 / 分组管理(适合辅导班)
后台运维:用户管理、判题机状态、日志

二、“传统竞赛 OJ” 风格:QDUOJ

青岛大学 OJ,非常成熟,很多培训机构在用。
开源:https://github.com/QDUOnlineJudge/QDUOJ
后端:Java/SpringBoot
前端:Vue
老师后台、判题、数据、统计全有,适合稳定长期用

三、最简部署方案

你只要一台小服务器(1 核 2G 就能带 30 人班级):
下载源码
安装 Docker(一键环境)
启动 MySQL + Redis + 判题机
登录后台创建管理员、老师账号
上传题目和测试数据
学生直接访问网址做题

最终选定:HDU Judge Mini(最简小型 OJ)

最适合:10~50 人、老师出题、看成绩、上传测试数据、运维极简单。
核心满足你的全部需求
✅ 老师后台:出题、管理题目
✅ 上传测试数据(输入 / 输出)
✅ 实时看学生提交、AC/WA/ 通过情况
✅ 支持 C/C++/Python/Java(竞赛常用)
✅ 开源免费,带完整源代码
✅ 本地电脑就能跑,不用买服务器
✅ 运维几乎零成本
一、源码地址(直接拿)
GitHub 开源地址(可下载、可修改):
https://github.com/zhblue/hdu-judge-mini
二、1 分钟本地启动(你电脑就能当网站)

  1. 先安装两个小东西
    Docker Desktop(Windows/Mac 都有)
    Git
  2. 三条命令直接运行
git clone https://github.com/zhblue/hdu-judge-mini.git
cd hdu-judge-mini
docker-compose up -d
  1. 访问网站
    浏览器打开:
    http://localhost:8080
  2. 管理员账号(老师用)
    账号:admin
    密码:admin123
    三、老师端使用流程
  3. 发布题目
    后台 → 题目管理 → 添加题目
    写题干
    填时间 / 内存限制
    上传测试数据(输入文件 + 输出文件)
  4. 管理学生
    批量创建账号
    给学生发用户名密码
    禁止注册、只允许你加的人使用
  5. 监控做题情况
    实时提交列表
    看谁做出来、谁没做出来
    按题目看通过率
    按学生看完成度
  6. 竞赛 / 作业模式都支持
    作业:随时交
    竞赛:定时开始结束

HDU-Judge Mini(极简) vs NOJ(全功能)

一、一句话定位
HDU-Judge Mini:极简轻量 OJ,专为10–50 人小型辅导班设计,本地一键跑、运维 0 成本。
NOJ:全功能竞赛 OJ,适合50–200 人、需要班级 / 竞赛 / 统计 / 多判题机的场景,功能更强但稍重。
二、核心对比(你最关心的点)

  1. 适合人数与场景
    HDU-Judge Mini:10–50 人、本地电脑 / 小服务器、快速开班、不想折腾
    NOJ:50–200 人、云服务器 / 多机房、长期运营、多班级、正式竞赛
  2. 老师核心功能(你要的)
    HDU-Judge Mini
    ✅ 出题、上传测试数据
    ✅ 看提交、AC/WA/TLE
    ✅ 简单用户管理
    ❌ 无班级分组、无详细统计、无竞赛模式
    NOJ
    ✅ 出题、测试数据、多组样例
    ✅ 班级 / 分组、批量账号
    ✅ 竞赛模式(定时 / 密码 / 封榜)
    ✅ 通过率、排名、做题趋势统计
    ✅ 多判题机、负载均衡
  3. 技术与部署
    HDU-Judge Mini
    技术:Python + Flask + SQLite(单文件数据库)
    部署:3 条命令本地跑,Docker 一键,不用装数据库
    运维:几乎不用管,重启即恢复
    NOJ
    技术:Node.js + MongoDB + Redis
    部署:Docker-compose,需配置数据库、判题机
    运维:需维护数据库、日志、判题状态
  4. 开源与定制
    HDU-Judge Mini:源码极简、改起来极快,适合小改界面
    NOJ:源码完整、模块化、可深度定制,适合做大平台
  5. 判题与语言
    HDU-Judge Mini:C/C++/Python/Java,单判题机,够用
    NOJ:支持更多语言、多判题机并行,大并发更稳
    三、给你的直接建议(按辅导班规模)
    10–30 人、本地开班、快速用 → 选 HDU-Judge Mini(最快、最省心)
    30–50 人、要班级 / 竞赛 / 统计 → 选 NOJ(功能全、长期好用)
    50 人以上、正式竞赛 → NOJ 或 QDUOJ

HDU-Judge Mini(精简版 OJ)

一、这个系统对你的优势
老师:出题、上传测试数据、看学生 AC/WA
学生:在线写代码、提交、看结果
部署:你自己电脑就能当服务器,不用云服务器
源码:开源,随便改界面、改名字
运维:几乎 0 维护,关电脑就停,开电脑就跑
人数:10~30 人
二、3 步直接跑起来(复制粘贴就能用)

  1. 先装两个软件(只装一次)
    Docker Desktop(必装)
git clone https://github.com/zhblue/hdu-judge-mini.git
cd hdu-judge-mini
docker-compose up -d
  1. 你的 OJ 网站就上线了
    浏览器打开:
    👉 http://localhost:8080
    老师管理员账号
    用户名:admin
    密码:admin123
    三、老师上课怎么用(最简流程)
    登录后台 → 题目管理 → 添加题目
    写题干
    填时间限制、内存限制
    上传测试数据(in 文件 + out 文件)
    给学生发:
    你的电脑局域网 IP:8080(比如 192.168.1.100:8080)
    学生账号(后台可手动创建)
    实时看:
    所有提交记录
    AC / WA / TLE
    谁做出来,谁没做出来

一、先把 OJ 跑起来(Windows 必看)
打开 Docker Desktop(等它左下角变绿)
新建一个文件夹,比如 D:\oj
在文件夹里右键 → 在此处打开终端
复制这三行,一行一回车:

git clone https://github.com/zhblue/hdu-judge-mini.git
cd hdu-judge-mini
docker-compose up -d

浏览器打开:
plaintext
http://localhost:8080
老师账号:
账号:admin
密码:admin123
二、直接用的【A+B 完整题目 + 测试数据】
题目内容(直接复制到后台)
标题:A+B
时间限制:1000 ms
内存限制:64 MB
题目描述
输入两个整数 a,b,输出它们的和。
输入格式
一行,两个整数 a,b。
输出格式
一个整数,表示 a+b。

https://www.docker.com/products/docker-desktop/
Git(必装)
https://git-scm.com/downloads
安装时一路下一步就行。
2. 打开命令提示符,执行 3 行命令

posted @ 2026-03-02 17:10  gdyyx  阅读(0)  评论(0)    收藏  举报