# TaskManagementSystem **Repository Path**: Alioth_Chen/task-management-system ## Basic Information - **Project Name**: TaskManagementSystem - **Description**: 团队任务管理系统。 springboot后端,mysql数据库,vue3前端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-11 - **Last Updated**: 2026-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 团队任务管理系统 一个基于Spring Boot + Vue 3的团队任务管理系统,采用简约红白黑风格设计。 ## 技术架构 ### 后端技术栈 - **Java Spring Boot 3.5** - 后端框架 - **MyBatis** - 数据访问层框架 - **MySQL 8.0** - 数据库 - **JWT** - 身份认证和授权 - **Redis** - 会话管理(可选) - **Maven** - 项目构建 ### 前端技术栈 - **Vue 3** - 前端框架 - **Element Plus** - UI组件库 - **Pinia** - 状态管理 - **Vue Router** - 路由管理 - **Axios** - HTTP客户端 ## 项目结构 ``` TaskManagementSystem/ ├── src/main/java/com/alioth/ │ ├── controller/ # API接口层 │ ├── service/ # 业务逻辑层接口 │ │ └── impl/ # 业务逻辑层实现 │ ├── mapper/ # 数据访问层接口 │ │ └── impl/ # 数据访问层实现(可选) │ ├── pojo/ # 实体类 │ ├── config/ # 配置类 │ ├── interceptor/ # 拦截器 │ ├── common/ # 公共类(常量、响应结果等) │ └── utils/ # 工具类 ├── src/main/resources/ │ ├── mapper/ # MyBatis XML映射文件 │ ├── sql/ # SQL脚本文件 │ ├── application.yml # 主配置文件 │ └── logback-spring.xml # 日志配置 ├── frontend/ # Vue 3前端项目 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── components/ # 公共组件 │ │ ├── router/ # 路由配置 │ │ ├── store/ # 状态管理 │ │ ├── api/ # API接口 │ │ └── assets/ # 静态资源 │ └── package.json # 前端依赖配置 └── pom.xml # Maven配置 ``` ## 数据库设计 ### 核心表结构 1. **user** - 用户表 2. **team** - 团队表 3. **team_member** - 团队成员表 4. **task** - 任务表 5. **task_assignment** - 任务分配表 6. **task_progress** - 任务进度表 详细SQL脚本见:`src/main/resources/sql/schema.sql` ## 核心功能 ### 1. 账户系统 - 用户注册/登录 - 密码加盐哈希存储 - JWT令牌认证 - 记住登录状态 ### 2. 权限体系 - **普通成员**:只能查看和操作自己的任务 - **团队管理员**:可查看团队所有成员的任务进度 - 支持多人同时拥有管理员权限 ### 3. 团队管理 - 创建团队(自动生成6位随机邀请码) - 通过邀请码加入团队 - 团队成员管理 - 管理员权限分配 ### 4. 任务系统 #### 任务类型: - **必做**:必须完成的任务 - **选做**:可选完成的任务 - **不可见**:对部分成员隐藏的任务 #### 进度模式: - **任务模式**:已完成、未完成 - **学习模式**:了解、掌握、熟练、精通 #### 功能特点: - 同一任务可分配给多人 - 管理员为每个成员设置任务类型 - 成员可更新任务进度状态 ## 安全特性 1. **防SQL注入**:所有数据库操作使用MyBatis参数化查询 2. **密码安全**:PBKDF2WithHmacSHA256加盐哈希算法 3. **API安全**:JWT令牌验证 + 权限拦截器 4. **输入验证**:前后端双重验证 ## 快速开始 ### 1. 环境准备 - JDK 21+ - MySQL 8.0+ - Node.js 16+ - Maven 3.6+ ### 2. 数据库初始化 ```sql -- 执行SQL脚本 mysql -u root -p < src/main/resources/sql/schema.sql ``` ### 3. 后端启动 ```bash # 配置数据库连接(修改application.yml) # 启动Spring Boot应用 mvn spring-boot:run ``` ### 4. 前端启动 ```bash cd frontend npm install npm run serve ``` ### 5. 访问系统 - 前端地址:http://localhost:3000 - 后端API:http://localhost:8080/api ## 默认账户 系统初始化时会创建以下测试账户(密码均为:123456): - 管理员:admin / 123456 - 普通用户:zhangsan / 123456, lisi / 123456, wangwu / 123456 ## 配置说明 ### 主要配置文件 #### 1. `application.yml` - 后端配置 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/task_management_system username: root password: root app: jwt: secret: "YourJWTSecretKey" expiration: 86400000 # 24小时 ``` #### 2. `vue.config.js` - 前端配置 ```javascript devServer: { proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true } } } ``` ## API接口文档 ### 认证相关 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 - `GET /api/auth/me` - 获取当前用户信息 ### 团队管理 - `POST /api/team` - 创建团队 - `GET /api/team/{teamId}` - 获取团队详情 - `POST /api/team/join` - 通过邀请码加入团队 - `GET /api/team/{teamId}/members` - 获取团队成员列表 ### 任务管理 - `POST /api/task` - 创建任务 - `GET /api/task/{taskId}` - 获取任务详情 - `PUT /api/task/{taskId}/progress` - 更新任务进度 - `GET /api/task/my-tasks` - 获取我的任务列表 ## 设计亮点 ### 1. 分层架构 严格遵循MVC分层架构,代码结构清晰,便于维护和扩展。 ### 2. 安全性 - 密码加盐哈希存储 - JWT令牌认证 - 权限拦截器 - SQL注入防护 ### 3. 灵活性 - 支持多种任务类型和进度模式 - 灵活的权限管理系统 - 响应式前端设计 ### 4. 用户体验 - 简约红白黑风格界面 - 全中文操作界面 - 响应式设计,支持移动端 ## 扩展建议 ### 1. 功能扩展 - 添加任务评论功能 - 实现文件上传和附件管理 - 添加任务提醒和通知系统 - 实现数据统计和报表功能 ### 2. 技术优化 - 集成Redis缓存提升性能 - 添加API文档(Swagger) - 实现单元测试和集成测试 - 添加Docker容器化部署 ### 3. 安全增强 - 添加验证码机制 - 实现登录失败锁定 - 添加操作日志记录 - 实现敏感数据加密 ## 许可证 MIT License