Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

256 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lab 协作式任务管理系统

1. 项目简介

本项目是软件工程课程的软件工程实验仓库,采用前后端分离架构,从 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。


2. 技术栈

前端

  • 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

3. 项目结构

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/

4. 环境要求

前端

  • Node.js 18+
  • npm 9+

后端

  • JDK 17+
  • Maven 3.6.3+(仓库未包含 mvnw,需本机自行安装)
  • MySQL 8

5. 快速启动

推荐先启动后端,再启动前端。

第一步:准备数据库

登录 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 会自动切到 51745175 等其他空闲端口。


6. 开发配置概览

前端代理

前端开发服务器已配置 /api 反向代理,请求会转发到后端:

  • 代理配置文件:frontend/vite.config.js
  • 默认代理目标:http://localhost:8081

后端本地覆盖配置

后端支持通过 backend/src/main/resources/application-local.yml 覆盖本机敏感配置:

  • 数据库密码
  • 本地端口
  • 其他不希望提交到仓库的配置

模板文件位于:

  • backend/src/main/resources/application-local.yml.example

7. 常用开发命令

前端

cd frontend
npm install
npm run dev
npm run build
npm test         # 冒烟:production build

后端

cd backend
mvn spring-boot:run
mvn test

测试与依赖说明

  • 后端mvn test 包含单元测试与基于嵌入式 H2 的集成测试(如 TaskSpecificationsIntegrationTestTeamTaskRepositoryIntegrationTest 等,不依赖本机 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 才能完全消除)。

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

9. 当前说明

  • 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.mddocs/lab3_decisions.md 为准
  • 接口与字段约定以 docs/api.md 为准;库表设计以 docs/database.mdbackend/src/main/resources/schema.sql 为准

About

Group Course lab for Software Engineering, Fudan Univeristy: Incremental development of a task management system. Code previously at https://codehub.devcloud.cn-north-4.huaweicloud.com/2520ed2c00134c34b84ec5b6a79ddbb7/Lab1.git

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages