# PM
**Repository Path**: MerlinRong/pm
## Basic Information
- **Project Name**: PM
- **Description**: PM 项目管理系统
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-10-08
- **Last Updated**: 2026-10-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 📋 PM 项目管理系统
**企业级全生命周期项目管理平台**
覆盖 **立项 → 计划 → 执行 → 监控 → 收尾** 五大过程组
[](https://www.python.org/)
[](https://fastapi.tiangolo.com/)
[](https://vuejs.org/)
[](https://www.typescriptlang.org/)
[](backend/tests)
[](LICENSE)
---
## ✨ 功能特性
| 模块 | 说明 |
|------|------|
| 📌 **项目立项** | 立项申请、多级审批流(加签 / 转签 / 退回)、状态机管理 |
| 🌳 **WBS 分解** | 无限层级任务树、拖拽排序、WBS 编号、四种依赖关系(FS/FF/SS/SF) |
| 📊 **甘特图** | CPM 关键路径算法、里程碑、进度跟踪、拖拽调整 |
| 👥 **资源管理** | 资源库、任务分配、负载热力图、冲突检测 |
| ⏱️ **工时管理** | 日报填报(硬/软限制校验)、审批流、多维统计 |
| ⚠️ **风险管理** | 概率×影响评估矩阵、等级分档、风险矩阵图 |
| 📁 **文档管理** | 文件夹、上传下载、版本管理、一键回滚 |
| 📈 **报表中心** | 全局概览、EVM 挣值分析(SPI/CPI/EAC)、燃尽图 |
| 🔔 **站内通知** | 审批实时通知、未读提醒 |
## 🧰 技术栈
| 层级 | 技术选型 |
|------|---------|
| 后端框架 | Python + FastAPI |
| ORM | SQLAlchemy 2.0(异步)+ Pydantic v2 |
| 数据库 | SQLite(默认,零依赖) / PostgreSQL(可切换) |
| 认证 | JWT + bcrypt + RBAC 权限模型 |
| 前端框架 | Vue 3 + TypeScript(Composition API) |
| UI 组件 | Element Plus |
| 状态管理 | Pinia |
| 可视化 | ECharts 5 |
| 构建工具 | Vite + pnpm |
## 🚀 快速开始
### 环境要求
- Python 3.11+
- Node.js 18+ 与 pnpm
### 1️⃣ 启动后端
```bash
cd backend
pip install -r requirements.txt
python -m scripts.seed_data # 初始化管理员与权限
uvicorn app.main:app --reload # → http://localhost:8000
```
### 2️⃣ 启动前端
```bash
cd frontend
pnpm install
pnpm dev # → http://localhost:5173
```
### 3️⃣ 登录
访问 ,使用默认账号:
| 账号 | 密码 |
|------|------|
| `admin` | `admin123` |
## 📁 目录结构
```
PM/
├── backend/ # FastAPI 后端
│ ├── app/
│ │ ├── api/ # 路由层(接口编排)
│ │ ├── services/ # 业务逻辑层(状态机/算法)
│ │ ├── models/ # SQLAlchemy 数据模型
│ │ ├── schemas/ # Pydantic 请求/响应模型
│ │ └── core/ # 认证/权限/异常/中间件
│ ├── tests/ # pytest 测试
│ └── scripts/ # 种子数据脚本
├── frontend/ # Vue3 前端
│ └── src/
│ ├── api/ # API 封装层
│ ├── views/ # 页面视图
│ ├── components/ # 公共组件
│ └── stores/ # Pinia 状态
├── docker-compose.yml # 容器编排
└── .codebuddy/ # 项目文档(不纳入 git)
```
## ✅ 运行测试
```bash
# 后端测试
cd backend
python -m pytest tests/ -q
# 前端类型检查
cd frontend
pnpm type-check
```
## 🐳 Docker 部署
```bash
docker compose up -d --build
```
> 生产环境请修改 `docker-compose.yml` 中的 `SECRET_KEY` 与数据库口令。
## ⚙️ 配置说明
后端通过环境变量或 `.env` 文件配置(参考 `backend/.env.example`):
| 配置项 | 默认值 | 说明 |
|--------|--------|------|
| `DATABASE_URL` | `sqlite:///./pm.db` | 生产环境切换为 PostgreSQL |
| `SECRET_KEY` | — | JWT 签名密钥(生产务必修改) |
| `UPLOAD_DIR` | — | 文件上传目录 |
## 📄 License
[MIT](LICENSE) © 2026