# 项目管理系统
基于Python Flask的轻量级Web项目管理系统,专为Windows系统设计,一键启动,高性能优化。
## 功能特点
– **用户角色管理**: 管理员、项目经理、开发人员三级权限
– **项目管理**: 创建项目、分配任务、进度跟踪
– **团队管理**: 成员管理(增删改)、工时记录
– **任务管理**: 任务分配、进度跟踪、工时记录
– **数据可视化**: 项目状态分析、成员工作量统计、工时分布图表
– **时间筛选**: 支持按年/月/周筛选数据
– **快捷部署**: Windows批处理脚本一键启动
## 角色权限说明
| 角色 | 权限 |
|——|——|
| **管理员 (admin)** | 查看所有项目/任务、用户管理、成员管理 |
| **项目经理 (project_manager)** | 管理自己负责的项目和任务 |
| **开发人员 (developer)** | 查看分配给自己的任务、记录工时 |
## 默认账户
| 用户名 | 密码 | 角色 |
|——–|——|——|
| admin | admin123 | 管理员 |
| zhangsan | 123456 | 项目经理 |
| lisi | 123456 | 开发人员 |
| wangwu | 123456 | 开发人员 |
## 快速开始
### 启动系统
双击运行 `启动优化版.bat`,然后访问 http://localhost:5000
### 登录系统
1. 打开浏览器访问 http://localhost:5000
2. 使用上述账户登录
## 功能详解
### 1. 首页仪表盘
**项目状态可视化**
– 饼图展示项目状态分布(进行中/已完成/规划中/已暂停)
– 项目列表显示:项目名称、状态、进展、总工时、参与人员
– 支持按年/月/周筛选
**成员工作状态**
– 统计卡片:成员人数、总工时、参与项目数、人均工时
– 柱状图展示各成员工时
– 成员详情表:显示每个成员的姓名、总工时、参与的项目
– 支持按年/月/周筛选
### 2. 项目管理
– 创建新项目(名称、描述、状态、负责人、开始/结束日期)
– 编辑项目信息
– 删除项目
– 添加/移除项目成员
– 查看项目详情和任务列表
**任务管理**
– 创建任务(标题、描述、状态、进度、负责人)
– 分配任务给项目成员
– 更新任务状态和进度
– 记录任务工时
### 3. 团队管理
– 查看所有团队成员
– **添加成员**(姓名、邮箱、职位、部门)
– **编辑成员**信息
– **删除成员**(仅管理员)
– 查看成员详情和参与的项目
**成员创建记录**
– 自动记录创建时间和创建人
– 按时间筛选时可查看该时间段内新增的成员
### 4. 我的任务
根据用户角色显示不同的任务:
– **管理员**: 所有任务
– **项目经理**: 自己负责的项目的任务
– **开发人员**: 分配给自己的任务
功能:
– 查看任务列表
– 更新任务状态和进度
– 记录工时
## 页面说明
### 首页 (/)
– 项目状态透视图表
– 成员工作状态透视图表
– 支持时间筛选
### 项目管理 (/projects)
– 项目列表和详情
– 任务管理
– 成员分配
### 团队管理 (/members)
– 成员列表和统计图表
– 成员增删改操作
– 成员详情查看
### 我的任务 (/my_tasks)
– 个人任务列表
– 工时记录
– 任务状态更新
## 启动方式
### 方式一:推荐 – 一键启动
“`
双击运行 “启动优化版.bat”
“`
### 方式二:强制更新(数据库出错时)
“`
双击运行 “强制更新数据库.bat”
“`
### 方式三:手动启动
“`bash
# 安装依赖
pip install flask flask-sqlalchemy
# 启动服务
python project_manager.py
# 访问
http://localhost:5000
“`
## 项目结构
“`
AImanager/
├── project_manager.py # 主程序 (Flask后端)
├── templates/ # 前端模板
│ ├── index.html # 首页仪表盘
│ ├── projects.html # 项目管理
│ ├── members.html # 团队管理
│ ├── my_tasks.html # 我的任务
│ ├── dashboard.html # 备用仪表盘
│ └── login.html # 登录页
├── instance/ # 数据库文件
│ └── project_manager.db
└── *.bat # Windows启动脚本
“`
## 数据库说明
系统使用SQLite数据库,数据保存在 `instance/project_manager.db`
数据表:
– **users**: 用户账户
– **team_members**: 团队成员(包含创建时间、创建人)
– **projects**: 项目
– **tasks**: 任务
– **time_logs**: 工时记录
## 故障排除
### 数据库错误
运行 `强制更新数据库.bat`
### 页面显示异常
1. 按 Ctrl+Shift+R 强制刷新
2. 清除浏览器缓存
### 端口被占用
1. 关闭占用5000端口的程序
2. 或修改 `project_manager.py` 中的端口号
## 技术栈
– 后端: Python Flask
– 数据库: SQLite
– 前端: Bootstrap 5 + ECharts
– 部署: Windows批处理脚本






