一个基于 React + FastAPI 的现代化在线作业管理系统,支持学生作业提交、教师批改、成绩管理等功能。
-
👨🎓 学生端
- 查看课程和作业列表
- 在线答题(单选、多选、简答、编程题)
- 附件上传(每题独立附件,支持多文件)
- 作业提交与修改(截止前可多次提交)
- 成绩查询与详情查看
-
👨🏫 教师端
- 作业创建与管理(支持题目权重配置)
- 查看学生提交情况
- 在线批改与评分(权重自动计算,满分100)
- 班级学生管理
- 成绩统计分析
-
👨💼 管理员端
- 课程管理(创建、编辑、删除)
- 学生管理(批量导入、编辑)
- 教师管理
- 系统配置
- ⚡ 权重评分系统:题目分数自动加权,最终成绩标准化为100分
- 📎 智能附件管理:每个题目独立上传多个附件,查看时分题目展示
- 🔄 灵活提交机制:截止前可多次修改提交,自动标记迟交状态
- 🎨 现代化UI:基于 Shadcn UI,响应式设计,深色模式支持
- 🚀 高性能:React Query 数据缓存,FastAPI 异步处理
- 框架: React 18 + TypeScript + Vite
- 路由: React Router v6
- 状态管理: TanStack Query (React Query) v5
- UI组件: Shadcn UI + Tailwind CSS
- 图标: Lucide React
- 通知: Sonner
- 框架: FastAPI (Python 3.9+)
- 数据库: MySQL 8.0
- ORM: PyMySQL (原生SQL)
- 认证: JWT Token
- 文件上传: FastAPI UploadFile + 本地存储
- Node.js 18+ 和 npm/pnpm
- Python 3.9+
- MySQL 8.0+
# 导入数据库脚本
mysql -u root -p < hms_db_2025-12-03_225202.sqlcd backend
# 安装依赖
pip install -r requirements.txt
# 配置环境变量(复制.env.example并修改)
cp .env.example .env
# 启动服务
python main.py后端将在 http://localhost:8080 启动
API文档: http://localhost:8080/docs
cd assignment-hub-main
# 安装依赖
npm install
# 启动开发服务器
npm run dev前端将在 http://localhost:5173 启动
⭐ 如果这个项目对你有帮助,欢迎 Star!