工程管理系统源码+项目说明+功能描述+前后端分离 + 二次开发
发布人:shili8
发布时间:2025-01-04 09:28
阅读次数:0
**工程管理系统**
**项目说明**
工程管理系统是一款基于web的工程管理平台,旨在帮助工程团队高效地管理工程项目。该系统提供了工程项目的创建、跟踪、报告等功能,支持多用户登录和权限控制。
**功能描述**
1. **工程项目管理**
* 创建新工程项目* 编辑工程项目信息* 删除工程项目2. **任务管理**
* 创建新任务* 编辑任务信息* 分配任务给团队成员3. **人员管理**
* 添加团队成员* 编辑团队成员信息* 删除团队成员4. **报告管理**
*生成工程项目报告*生成任务报告5. **权限控制**
* 用户登录和登出* 权限分配(管理员、工程师、测试员等)
**前后端分离**
该系统采用前后端分离的架构,使用以下技术:
1. **前端**
* 使用React.js作为UI框架* 使用Redux进行状态管理* 使用Axios进行网络请求2. **后端**
* 使用Node.js作为服务器端语言* 使用Express.js作为web框架* 使用MongoDB作为数据库**源码**
### 前端代码
javascript// src/components/ProjectList.jsimport React from 'react'; import { connect } from 'react-redux'; const ProjectList = ({ projects }) => { return ( <div> {projects.map((project) => ( <div key={project._id}> <h2>{project.name}</h2> <p>{project.description}</p> </div> ))} </div> ); }; const mapStateToProps = (state) => { return { projects: state.projects }; }; export default connect(mapStateToProps)(ProjectList);
javascript// src/components/TaskList.jsimport React from 'react'; import { connect } from 'react-redux'; const TaskList = ({ tasks }) => { return ( <div> {tasks.map((task) => ( <div key={task._id}> <h2>{task.name}</h2> <p>{task.description}</p> </div> ))} </div> ); }; const mapStateToProps = (state) => { return { tasks: state.tasks }; }; export default connect(mapStateToProps)(TaskList);
### 后端代码
javascript// src/app.jsimport express from 'express'; import mongoose from 'mongoose'; const app = express(); app.use(express.json()); mongoose.connect('mongodb://localhost/engineering-management-system', { useNewUrlParser: true, useUnifiedTopology: true, }); const projectSchema = new mongoose.Schema({ name: String, description: String, }); const taskSchema = new mongoose.Schema({ name: String, description: String, }); const Project = mongoose.model('Project', projectSchema); const Task = mongoose.model('Task', taskSchema); app.post('/projects', async (req, res) => { const { name, description } = req.body; const project = new Project({ name, description }); await project.save(); res.json(project); }); app.get('/projects', async (req, res) => { const projects = await Project.find().exec(); res.json(projects); });
### 二次开发该系统提供了以下接口供二次开发:
1. **创建新工程项目**
* 接口:`POST /projects`
* 请求体:{ name: string, description: string }
2. **获取所有工程项目**
* 接口:`GET /projects`
3. **删除工程项目**
* 接口:`DELETE /projects/:id`
同样,系统提供了以下接口供二次开发:
1. **创建新任务**
* 接口:`POST /tasks`
* 请求体:{ name: string, description: string }
2. **获取所有任务**
* 接口:`GET /tasks`
3. **删除任务**
* 接口:`DELETE /tasks/:id`
以上接口均支持JSON格式的请求和响应。