跳转至

OJ 系统实验说明

本实验作业参考了清华大学韩文弢老师 Rust 程序设计训练 OJ 大作业(作业背景)。

实验目标

构建一个小型但功能完整的 Online Judge (OJ) 系统,分阶段实现,逐步掌握系统设计、API开发、安全控制等核心能力。

快速入门可参考快速入门文档


基础模块(必做,共30分)

Step 名称 主要功能描述 详细文档
Step1 配置解析 题目配置加载、字段校验、异常处理 step1.md
Step2 评测控制 程序执行、资源限制、输出比对、动态注册语言 step2.md
Step3 用户系统 用户注册/更新、权限管理、人工判题接口 step3.md
Step4 任务状态管理 评测任务流转、调度、API step4.md
Step5 评测日志 日志结构化记录、日志接口、权限 step5.md
Step6 高级安全 沙箱隔离、命令过滤、资源限制 step6.md

进阶模块(选做,最多加10分)

Advance 名称 主要功能描述
Adv1 Special Judge 特殊题目评测,支持多种评测方式
Adv2 前端交互 极简前端界面(如 Streamlit),与后端交互
Adv3 安全机制 Docker 容器控制、命令过滤、资源限制
Adv4 代码查重 查重算法实现、抄袭检测

API 文档

所有接口、参数、异常、状态码等详见 api.md


评分标准

参见 requirements.md


学习资源

致谢

本实验作业参考并借鉴了清华大学 Rust 程序设计训练 OJ 大作业的设计思想与文档结构,特此致谢韩文弢老师、陈嘉杰同学、陈晟祺同学等贡献者。

作者:Haoran Wang