# project_management **Repository Path**: hongluqu/project_management ## Basic Information - **Project Name**: project_management - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-05 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目工时管理系统 项目工时管理系统是一个专为企业团队设计的项目管理与工时记录平台。 ## 技术栈 ### 前端 - Vue 3.x + TypeScript - Vite 5.x - Pinia(状态管理) - Element Plus(UI组件库) - Vue Router 4.x - Axios(HTTP客户端) - Apache ECharts(图表库) ### 后端 - Python 3.11+ - FastAPI 0.104+ - SQLAlchemy 2.0(ORM) - Pydantic 2.x(数据验证) - Alembic(数据库迁移) - MySQL 8.0 ## 项目结构 ``` project-management/ ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口封装 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 公共组件 │ │ ├── layouts/ # 布局组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia状态管理 │ │ ├── styles/ # 全局样式 │ │ ├── types/ # TypeScript类型 │ │ ├── utils/ # 工具函数 │ │ └── views/ # 页面组件 │ ├── public/ # 公共静态资源 │ ├── package.json │ └── Dockerfile │ ├── backend/ # 后端项目 │ ├── app/ │ │ ├── api/ # API路由 │ │ │ ├── v1/ # API v1版本 │ │ │ └── deps.py # 依赖注入 │ │ ├── core/ # 核心功能 │ │ ├── models/ # 数据模型 │ │ ├── schemas/ # Pydantic模式 │ │ ├── services/ # 业务服务 │ │ └── utils/ # 工具函数 │ ├── alembic/ # 数据库迁移 │ ├── tests/ # 测试文件 │ ├── Dockerfile │ └── requirements.txt │ ├── frontend_nginx.conf # Nginx 配置(部署用) └── docker-compose.yml # Docker Compose 配置 ``` --- ## Docker 部署指南 ### 环境要求 - Docker Engine 20.10+ - Docker Compose V2 - 域名: pm.rpaihub.cn (已解析到服务器IP) ### 1. 服务器准备 ```bash # 1. 安装 Docker curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER # 2. 安装 Docker Compose sudo mkdir -p /etc/docker sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # 3. 验证安装 docker --version docker-compose --version ``` ### 2. 项目部署 ```bash # 1. 上传项目到服务器 scp -r project-management user@server:/path/to/ # 或使用 git clone git clone /path/to/project-management cd /path/to/project-management ``` ### 3. 配置环境变量 ```bash # 进入后端目录,复制环境变量模板 cd backend cp .env.example .env nano .env ``` 重要配置项说明: ```env # 数据库配置 (Docker 部署时使用) DATABASE_URL=mysql+pymysql://root:password@db:3306/project_management # 安全密钥 【请务必修改】 SECRET_KEY=your-super-secret-key-change-this-in-production JWT_SECRET_KEY=your-jwt-secret-key-change-this-in-production # 允许的域名 ALLOWED_HOSTS=localhost,127.0.0.1,pm.rpaihub.cn # SMTP 邮件配置 (可选) # SMTP_HOST=smtp.example.com # SMTP_PORT=587 # SMTP_USER=your-email@example.com # SMTP_PASSWORD=your-email-password ``` ### 4. 修改 docker-compose.yml (可选) ```bash nano docker-compose.yml ``` 主要配置说明: - 前端端口: 3000 -> 80 - 后端端口: 8000 -> 8000 - 数据库端口: 3306 -> 3306 ### 5. 部署命令 ```bash # 1. 构建并启动所有服务 docker-compose up -d --build # 2. 查看服务状态 docker-compose ps # 3. 查看日志 docker-compose logs -f # 4. 等待数据库初始化完成 (首次启动) docker-compose exec backend python -c "from app.database import engine; from app.models import Base; Base.metadata.create_all(bind=engine)" ``` ### 6. 验证部署 ```bash # 检查服务状态 docker-compose ps # 测试后端 API curl http://localhost:8000/health # 测试前端 curl http://localhost:3000 ``` ### 7. 配置 Nginx (生产环境推荐) 将前端 Nginx 配置复制到 Nginx 配置目录: ```bash # 复制配置 sudo cp frontend_nginx.conf /etc/nginx/conf.d/pm.rpaihub.cn.conf # 测试配置 sudo nginx -t # 重载 Nginx sudo nginx -s reload ``` 如果需要 HTTPS,使用 Let's Encrypt 免费证书: ```bash # 安装 certbot sudo apt install certbot python3-certbot-nginx # 获取证书 (确保域名已解析到服务器) sudo certbot --nginx -d pm.rpaihub.cn -d www.pm.rpaihub.cn # 自动续期测试 sudo certbot renew --dry-run ``` ### 8. 配置防火墙 ```bash # 开放端口 sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22 sudo ufw enable ``` ### 9. 常用管理命令 ```bash # 启动服务 docker-compose up -d # 停止服务 docker-compose down # 重启服务 docker-compose restart # 重启单个服务 docker-compose restart backend docker-compose restart frontend # 查看日志 docker-compose logs -f docker-compose logs -f backend docker-compose logs -f frontend # 更新部署 git pull origin main docker-compose up -d --build # 清理未使用的镜像 docker image prune -a # 进入容器 docker-compose exec backend bash docker-compose exec frontend sh ``` --- ## 开发环境 ### 前端开发 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 (API 代理到 localhost:8000) npm run dev ``` ### 后端开发 ```bash cd backend # 创建虚拟环境 python -m venv venv # 激活虚拟环境 source venv/bin/activate # Linux/Mac # 或 .\venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt # 启动开发服务器 uvicorn app.main:app --reload ``` --- ## Docker 服务说明 | 服务 | 容器名 | 端口 | 说明 | |------|--------|------|------| | frontend | project-management-frontend-1 | 3000 -> 80 | 前端静态页面 | | backend | project-management-backend-1 | 8000 -> 8000 | 后端 API 服务 | | db | project-management-db-1 | 3306 -> 3306 | MySQL 8.0 数据库 | --- ## 访问地址 | 环境 | 地址 | |------|------| | 前端页面 | http://pm.rpaihub.cn:3000 | | 后端 API | http://pm.rpaihub.cn:8000 | | API 文档 | http://pm.rpaihub.cn:8000/docs | | 健康检查 | http://pm.rpaihub.cn:8000/health | --- ## 故障排查 ### 1. 后端无法连接数据库 ```bash # 检查数据库日志 docker-compose logs db # 检查数据库连接 docker-compose exec db mysql -uroot -ppassword -e "SHOW DATABASES;" ``` ### 2. 前端 API 请求失败 ```bash # 检查后端日志 docker-compose logs backend # 检查后端健康状态 docker-compose exec backend curl http://localhost:8000/health ``` ### 3. 数据库初始化失败 ```bash # 重新初始化数据库表 docker-compose exec backend python -c " from app.database import engine from app.models import Base Base.metadata.drop_all(bind=engine) Base.metadata.create_all(bind=engine) " ``` ### 4. 清理所有数据重新开始 ```bash # 停止服务 docker-compose down # 删除数据卷 docker-compose down -v # 重新启动 docker-compose up -d ``` --- ## 功能模块 1. **用户认证** - 登录、登出、密码修改 2. **用户管理** - 用户CRUD、角色分配 3. **组织架构** - 部门管理、用户归属 4. **项目管理** - 项目CRUD、成员管理 5. **工时管理** - 工时记录、审批流程 6. **统计报表** - 多维度工时统计 7. **系统通知** - 站内消息通知 --- ## 文档 详细文档请参考 [documents](./documents/) 目录: - 需求文档 - 设计文档 - API接口文档 - 部署文档 - 用户手册 ## License MIT