# 项目管理系统 **Repository Path**: kinleo_0/project-management-system ## Basic Information - **Project Name**: 项目管理系统 - **Description**: 完整的项目管理系统,包括项目管理,任务管理,缺陷管理以及人员日报填写 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-24 - **Last Updated**: 2025-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目管理系统 一个基于Spring Boot + Vue 3的现代化项目管理系统,提供项目管理、任务跟踪、问题管理、日报管理等功能。 ## 功能特性 ### 核心功能 - **用户管理**:用户注册、登录、权限管理 - **项目管理**:项目创建、编辑、成员管理、进度跟踪 - **任务管理**:任务分配、状态跟踪、时间记录、评论 - **问题管理**:Bug报告、问题跟踪、解决方案记录 - **日报管理**:工作日报提交、统计分析 - **数据分析**:项目数据可视化、团队绩效分析 ### 技术特性 - 响应式设计,支持多设备访问 - RESTful API设计 - JWT身份认证 - 角色权限控制 - 实时数据更新 - 文件上传下载 - 数据导出功能 ## 技术栈 ### 后端技术 - **框架**:Spring Boot 2.7.x - **安全**:Spring Security + JWT - **数据库**:SQLite(开发环境) - **ORM**:Spring Data JPA - **构建工具**:Maven - **Java版本**:JDK 8+ ### 前端技术 - **框架**:Vue 3 + TypeScript - **构建工具**:Vite - **UI组件库**:Element Plus - **状态管理**:Pinia - **路由**:Vue Router 4 - **HTTP客户端**:Axios - **图表库**:ECharts - **样式**:CSS3 + 响应式设计 ## 项目结构 ``` project-management-system/ ├── backend/ # 后端Spring Boot项目 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/pm/ │ │ │ │ ├── ProjectManagementApplication.java │ │ │ │ ├── config/ # 配置类 │ │ │ │ ├── controller/ # 控制器 │ │ │ │ ├── entity/ # 实体类 │ │ │ │ ├── repository/ # 数据访问层 │ │ │ │ ├── service/ # 业务逻辑层 │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ ├── security/ # 安全配置 │ │ │ │ └── util/ # 工具类 │ │ │ └── resources/ │ │ │ ├── application.yml # 应用配置 │ │ │ └── data.sql # 数据库初始化脚本 │ │ └── test/ # 测试代码 │ ├── pom.xml # Maven配置 │ └── target/ # 编译输出 ├── frontend/ # 前端Vue项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── components/ # 通用组件 │ │ ├── views/ # 页面组件 │ │ ├── stores/ # Pinia状态管理 │ │ ├── router/ # 路由配置 │ │ ├── utils/ # 工具函数 │ │ ├── types/ # TypeScript类型定义 │ │ ├── App.vue # 根组件 │ │ └── main.ts # 入口文件 │ ├── public/ # 静态资源 │ ├── package.json # 依赖配置 │ ├── vite.config.ts # Vite配置 │ ├── tsconfig.json # TypeScript配置 │ └── tailwind.config.js # Tailwind CSS配置 ├── docs/ # 项目文档 ├── scripts/ # 启动脚本 └── README.md # 项目说明 ``` ## 快速开始 ### 环境要求 - **Java**:JDK 8 或更高版本 - **Node.js**:16.0 或更高版本 - **Maven**:3.6 或更高版本 - **Git**:用于代码管理 ### 安装步骤 1. **克隆项目** ```bash git clone cd project-management-system ``` 2. **后端启动** ```bash cd backend mvn clean install mvn spring-boot:run ``` 后端服务将在 `http://localhost:8080` 启动 3. **前端启动** ```bash cd frontend npm install npm run dev ``` 前端应用将在 `http://localhost:5173` 启动 ### 使用脚本启动(推荐) 项目提供了便捷的启动脚本: **Windows用户:** ```bash # 启动后端 .\scripts\start-backend.bat # 启动前端 .\scripts\start-frontend.bat # 同时启动前后端 .\scripts\start-all.bat ``` **Linux/Mac用户:** ```bash # 启动后端 ./scripts/start-backend.sh # 启动前端 ./scripts/start-frontend.sh # 同时启动前后端 ./scripts/start-all.sh ``` ## 默认账户 系统预置了以下测试账户: | 用户名 | 密码 | 角色 | 说明 | |--------|------|------|------| | admin | 123456 | 系统管理员 | 拥有所有权限 | | zhangsan | 123456 | 项目经理 | 项目管理权限 | | lisi | 123456 | 开发人员 | 任务管理权限 | | wangwu | 123456 | 开发人员 | 任务管理权限 | | zhaoliu | 123456 | 开发人员 | 任务管理权限 | | qianqi | 123456 | 测试人员 | 问题报告权限 | ## API文档 后端API遵循RESTful设计规范,主要接口包括: ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/logout` - 用户登出 - `GET /api/auth/me` - 获取当前用户信息 ### 用户管理 - `GET /api/users` - 获取用户列表 - `GET /api/users/{id}` - 获取用户详情 - `PUT /api/users/{id}` - 更新用户信息 - `DELETE /api/users/{id}` - 删除用户 ### 项目管理 - `GET /api/projects` - 获取项目列表 - `POST /api/projects` - 创建项目 - `GET /api/projects/{id}` - 获取项目详情 - `PUT /api/projects/{id}` - 更新项目 - `DELETE /api/projects/{id}` - 删除项目 ### 任务管理 - `GET /api/tasks` - 获取任务列表 - `POST /api/tasks` - 创建任务 - `GET /api/tasks/{id}` - 获取任务详情 - `PUT /api/tasks/{id}` - 更新任务 - `DELETE /api/tasks/{id}` - 删除任务 ### 问题管理 - `GET /api/issues` - 获取问题列表 - `POST /api/issues` - 创建问题 - `GET /api/issues/{id}` - 获取问题详情 - `PUT /api/issues/{id}` - 更新问题 - `DELETE /api/issues/{id}` - 删除问题 ### 日报管理 - `GET /api/reports` - 获取日报列表 - `POST /api/reports` - 提交日报 - `GET /api/reports/{id}` - 获取日报详情 - `PUT /api/reports/{id}` - 更新日报 - `DELETE /api/reports/{id}` - 删除日报 ## 开发指南 ### 后端开发 1. **添加新的实体类** - 在 `entity` 包下创建实体类 - 使用JPA注解配置数据库映射 - 在 `data.sql` 中添加对应的表结构 2. **添加新的API接口** - 在 `controller` 包下创建控制器 - 在 `service` 包下实现业务逻辑 - 在 `repository` 包下创建数据访问接口 3. **配置安全权限** - 在 `SecurityConfig` 中配置URL权限 - 使用 `@PreAuthorize` 注解控制方法级权限 ### 前端开发 1. **添加新页面** - 在 `views` 目录下创建Vue组件 - 在 `router/index.ts` 中配置路由 - 在导航菜单中添加链接 2. **添加新的API接口** - 在 `api` 目录下创建API模块 - 使用统一的请求封装 - 处理错误和加载状态 3. **状态管理** - 在 `stores` 目录下创建Pinia store - 管理全局状态和业务逻辑 - 实现数据持久化 ## 部署说明 ### 开发环境 - 后端使用SQLite数据库,无需额外配置 - 前端使用Vite开发服务器 - 支持热重载和快速开发 ### 生产环境 1. **后端部署** ```bash cd backend mvn clean package java -jar target/project-management-0.0.1-SNAPSHOT.jar ``` 2. **前端部署** ```bash cd frontend npm run build # 将dist目录部署到Web服务器 ``` 3. **数据库配置** - 生产环境建议使用MySQL或PostgreSQL - 修改 `application-prod.yml` 配置文件 - 执行数据库迁移脚本 ## 常见问题 ### Q: 启动后端时提示端口被占用 A: 修改 `application.yml` 中的 `server.port` 配置,或者停止占用8080端口的进程。 ### Q: 前端无法连接后端API A: 检查后端是否正常启动,确认API地址配置正确,检查跨域配置。 ### Q: 登录时提示用户名或密码错误 A: 确认数据库已正确初始化,使用默认账户进行测试。 ### Q: 数据库连接失败 A: 检查数据库配置,确认SQLite文件路径正确,检查文件权限。 ## 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 联系方式 如有问题或建议,请通过以下方式联系: - 项目Issues:[GitHub Issues](https://github.com/your-repo/issues) - 邮箱:your-email@example.com ## 更新日志 ### v1.0.0 (2024-01-20) - 初始版本发布 - 实现基础的项目管理功能 - 支持用户、项目、任务、问题、日报管理 - 提供数据分析和报表功能 --- 感谢使用项目管理系统!🎉