本项目是软件工程课程的软件工程实验仓库,采用前后端分离架构,从 Lab1 的个人任务管理逐步扩展到 Lab2 团队协作、Lab3 依赖管理与团队生命周期,并在当前主线中推进 Lab4 的任务操作日志与质量回归能力。当前仓库已落地的核心功能包括:
- 用户注册、登录、JWT 登录状态维护
- 个人任务的创建、查看、修改、删除(用户间数据隔离)
- 团队协作:团队创建与成员管理(Owner/Admin/Member 三级权限)、团队任务 CRUD、「我的任务」跨团队聚合视图
- 任务依赖管理(Lab3):
- 个人任务前置依赖增删查
- 团队任务前置依赖增删查
- DONE 前置校验、环依赖检测、删除任务时依赖清理
- 团队生命周期(Lab3):
- 成员主动离开团队
- Owner 移除成员
- Owner 转让所有权给 Admin
- Owner 解散团队
- 团队活动日志(Lab3):记录任务、成员、依赖、生命周期相关关键操作
- 任务操作日志(Lab4):
- 个人任务:创建 / 状态变更日志及查询接口
- 团队任务:创建 / 状态 / 基本信息 / 负责人 / 删除 / 依赖 / 离队 unassign 等操作日志及成员可读查询接口
- 日志接口权限兜底(owner / membership)与质量回归测试
项目代码采用前后端分离结构,前端使用 Vue 3 + Vite,后端使用 Spring Boot 3 + Spring Security + JPA,数据库使用 MySQL 8。
- Vue 3
- Vite
- Vue Router
- Pinia
- Axios
- Element Plus
- Spring Boot 3
- Spring Web
- Spring Security
- Spring Validation
- Spring Data JPA
- JWT
- BCrypt
- MySQL 8
Lab1/
├─ README.md
├─ docs/
│ ├─ api.md
│ ├─ database.md
│ ├─ lab2_dev_plan.md
│ ├─ lab3_dev_plan.md
│ ├─ lab3_decisions.md
│ ├─ lab4_dev_plan.md
│ ├─ lab4_test_cases.md
│ ├─ team-role.md
│ └─ team-rule.md
├─ backend/
│ ├─ README.md
│ ├─ pom.xml
│ └─ src/
└─ frontend/
├─ README.md
├─ package.json
└─ src/
- Node.js 18+
- npm 9+
- JDK 17+
- Maven 3.6.3+(仓库未包含
mvnw,需本机自行安装) - MySQL 8
推荐先启动后端,再启动前端。
登录 MySQL 后执行:
CREATE DATABASE lab1 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;详细说明见 backend/README.md。最小启动步骤如下:
cd backend
mvn spring-boot:run后端默认地址:
http://127.0.0.1:8081
详细说明见 frontend/README.md。最小启动步骤如下:
cd frontend
npm install
npm run dev前端默认地址:
http://127.0.0.1:5173
如果 5173 已被占用,Vite 会自动切到 5174、5175 等其他空闲端口。
前端开发服务器已配置 /api 反向代理,请求会转发到后端:
- 代理配置文件:
frontend/vite.config.js - 默认代理目标:
http://localhost:8081
后端支持通过 backend/src/main/resources/application-local.yml 覆盖本机敏感配置:
- 数据库密码
- 本地端口
- 其他不希望提交到仓库的配置
模板文件位于:
backend/src/main/resources/application-local.yml.example
cd frontend
npm install
npm run dev
npm run build
npm test # 冒烟:production buildcd backend
mvn spring-boot:run
mvn test- 后端:
mvn test包含单元测试与基于嵌入式 H2 的集成测试(如TaskSpecificationsIntegrationTest、TeamTaskRepositoryIntegrationTest等,不依赖本机 MySQL);任务列表的关键字检索与默认排序以后端实现及docs/api.md§6.1 为准。 - Lab4 团队任务日志(成员 C):
mvn -Dtest=Lab4TeamTaskLogFinal*,TeamTaskLogController*,TeamLifecycleServiceImplTest,TeamTaskDependencyServiceImplTest test;快速冒烟:mvn -Dtest=Lab4TeamTaskLogV1SmokeTest test。 - Lab4 质量门禁:成员 E 补充的个人日志与回归测试可用
mvn -Dtest=TaskServiceImplTest,Lab4QualityCoverageIntegrationTest test快速验证。 - 前端:可定期执行
npm audit,必要时npm audit fix(生产依赖 axios 等可升级;Vite/esbuild 开发依赖告警需 Vite 8 才能完全消除)。
- 接口文档:
docs/api.md(含 Lab1 / Lab2 / Lab3 的接口约定与错误码) - 数据库设计:
docs/database.md - Lab2 开发方案:
docs/lab2_dev_plan.md - Lab3 开发方案:
docs/lab3_dev_plan.md - Lab3 设计决策:
docs/lab3_decisions.md - Lab4 开发方案:
docs/lab4_dev_plan.md - Lab4 测试用例与截图计划:
docs/lab4_test_cases.md - Lab4 AI 协作记录:
docs/lab4_ai_notes.md - 小组分工:
docs/team-role.md - Git 协作规范:
docs/team-rule.md - 前端说明:
frontend/README.md - 后端说明:
backend/README.md
feature/backend-team-task-log(成员 C):团队任务操作日志 v1 + final 后端能力已完成(2026-06-14 收口);华为云远端静态检查已通过;全量mvn test通过- 当前
develop主线已具备 Lab4 v1 团队任务日志基础能力,并补充成员 E 的个人日志质量门禁与 Lab1~Lab3 回归测试 - 当前整合分支默认后端端口为
8081 - 前端通过
/api代理访问后端,无需在代码里写完整域名 - 登录后 JWT 通过 HttpOnly Cookie 下发,前端使用
withCredentials: true自动携带,刷新页面后通过/api/auth/me恢复登录状态 - 任务依赖、团队生命周期、活动日志等 Lab3 规则以
docs/api.md与docs/lab3_decisions.md为准 - 接口与字段约定以
docs/api.md为准;库表设计以docs/database.md与backend/src/main/resources/schema.sql为准