基于 FastAPI 的在线代码测试系统。
- 用户认证
- 题目列表
- 代码提交
- 自动评测
- 前端样式
- 支持Python和C语言
- 实时代码执行和测试
- 每个问题包含多个测试用例
- 执行时间限制
- 详细的测试结果反馈
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port your_port --reload
fastapi-oj/
├── .gitignore
├── main.py # 主应用入口
├── config.py # 配置文件
├── data.csv # 数据文件
├── requirements.txt # 项目依赖
├── assets/ # 源图片
| ├── login.png
| ├── home.png
├── templates/
│ ├── login.html # 登录页面
│ ├── home.html # 主页面
├── testcase/ # 测试用例
│ ├── __init__.py
│ ├── C.json # C 语言测试用例
│ └── Python.json # Python 语言测试用例
└── utils/
├── judge.py # 代码执行和评测
└── parse.py # 代码解析工具及其他
这个项目的初衷是为了实验室招新,在技术选型上需要考虑的是下一届成员的接手与维护,因此尽可能上手简单,还要保证系统具有一定的性能。 开发语言因此选择了Python。比对了很多Python全栈和后端的框架如Streamlit、Taipy、Dash、Flask等,最后选择了FastAPI。 每次使用的人数不会很多,所以目前没打算用数据库。