# task_management_sys **Repository Path**: scottwong/task_management_sys ## Basic Information - **Project Name**: task_management_sys - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-22 - **Last Updated**: 2026-08-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生任务管理系统(Student Task Management System) 基于 **FastAPI + Vue 3 + MySQL + Docker Compose** 的学生任务管理项目:学生注册后主动领取任务、以富文本(文字+图片)提交完成情况;班长发布/修改任务并审核工单发放积分;超级管理员登录后默认查看全员积分排名。 ## 一键启动 前置条件: - 本地 9999 端口已运行 MySQL,账号 `root` / 密码 `wang0912`(系统**不会创建新的数据库实例**,只在其中自动建库 `task_management` 与数据表) - 已安装 Docker Desktop ```bash docker compose up -d ``` 启动后访问: | 入口 | 地址 | | --- | --- | | 前端页面 | http://localhost:8080 | | 后端 API | http://localhost:8000/api/health | | 接口文档(Swagger) | http://localhost:8000/docs | ## 内置演示账号(密码均为 `123456`) | 账号 | 姓名 | 角色 | 说明 | | --- | --- | --- | --- | | `SUPER_ADMIN` | 超级管理员 | SUPER_ADMIN | 登录后默认进入全员积分排行榜 | | `A002` | 李四 | STUDENT + ADMIN | 班长:既是学生又是管理员,可发布任务 | | `A003` | 王五 | STUDENT + ADMIN | 班长 | | `A001` | 张三 | STUDENT | 普通学生 | ## 功能一览 - **注册**:学号(STUDENT_ID)、名字、手机号码、照片(PHOTO 上传) - **学生**:浏览任务大厅 → 领取任务 → 富文本提交完成情况(文本+图片)→ 查看审核结果与积分 - **班长(ADMIN)**:发布/修改/删除任务(TASK_NAME、TASK_CONTENT、TASK_SCORE、DEAD_LINE、CREATE_TIME、UPDATE_TIME),查看每个任务的完成情况(工单),通过/驳回并自动发放积分 - **超级管理员(SUPER_ADMIN)**:全部权限,登录后默认看到所有学生积分**倒序**排名 - **角色表**:ROLE_ID / ROLE_NAME / ROLE_DESC(STUDENT、ADMIN、SUPER_ADMIN),一个用户可拥有多个角色 - **积分排行榜**:按已获总积分倒序,前三名高亮 ## 本地开发(不用 Docker) ```bash # 后端(Python 3.12) cd backend pip install -r requirements.txt uvicorn app.main:app --reload --port 8000 # 前端(Node 18+) cd frontend npm install npm run dev # http://localhost:5173,已配置代理到 8000 ``` 数据库连接串通过环境变量 `DATABASE_URL` 覆盖,默认: `mysql+pymysql://root:wang0912@127.0.0.1:9999/task_management?charset=utf8mb4` ## 目录结构 ``` task_management_sys/ ├── docker-compose.yml # 只含 backend + frontend,不创建数据库容器 ├── docs/项目总结文档.md # 项目总结文档 ├── backend/ # FastAPI 后端 (Python 3.12) │ ├── Dockerfile │ └── app/ │ ├── main.py # 应用入口、路由挂载、静态文件 │ ├── config.py # 数据库/JWT/上传配置 │ ├── database.py # SQLAlchemy 引擎与会话 │ ├── models.py # users / roles / user_roles / tasks / task_records │ ├── schemas.py # Pydantic 模型 │ ├── security.py # PBKDF2 密码哈希 + JWT │ ├── deps.py # 登录校验 / 角色权限依赖 │ ├── init_db.py # 自动建库建表 + 种子数据 │ └── routers/ # auth / users / tasks / records / ranking / upload └── frontend/ # Vue3 + Vite + Element Plus + wangEditor ├── Dockerfile # 多阶段构建 → nginx 托管 ├── nginx.conf # 静态资源 + /api 反向代理 └── src/ ├── api/ store/ router/ ├── components/RichEditor.vue # wangEditor 富文本封装(图片上传) └── views/ # Login/Register/TaskList/TaskDetail/TaskEdit/MyRecords/TaskRecords/Ranking ``` 更多设计细节见 [docs/项目总结文档.md](docs/项目总结文档.md)。