# taskmaster **Repository Path**: iQNRen/taskmaster ## Basic Information - **Project Name**: taskmaster - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-14 - **Last Updated**: 2025-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TaskMaster - 智能任务管理系统 一个功能完整的全栈任务管理系统,采用前后端分离架构,支持容器化部署,适合华为云应用构建。 ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Node](https://img.shields.io/badge/node-18+-green.svg) ![Vue](https://img.shields.io/badge/vue-3.3+-brightgreen.svg) ## 项目特点 - ✨ **功能完整**:用户认证、任务管理、分类管理、数据统计 - 🚀 **现代技术栈**:Vue 3 + Node.js + Express + SQLite - 🐳 **容器化部署**:Docker + docker-compose 一键部署 - 📱 **响应式设计**:支持桌面和移动端 - 🔒 **安全认证**:JWT Token 认证机制 - 📊 **数据可视化**:直观的统计仪表板 - ☁️ **云原生**:适配华为云 CCE、ServiceStage 等服务 ## 技术架构 ### 前端 - **框架**:Vue 3 (Composition API) - **构建工具**:Vite - **状态管理**:Pinia - **路由**:Vue Router - **HTTP 客户端**:Axios - **样式**:原生 CSS (无依赖) ### 后端 - **运行时**:Node.js 18+ - **框架**:Express.js - **ORM**:Sequelize - **数据库**:SQLite (可迁移至 MySQL/PostgreSQL) - **认证**:JWT (jsonwebtoken) - **加密**:bcryptjs - **验证**:express-validator ## 功能模块 ### 1. 用户认证 - 用户注册/登录 - JWT Token 认证 - 密码加密存储 - 自动登录保持 ### 2. 任务管理 - 创建、编辑、删除任务 - 任务状态管理(待办/进行中/已完成) - 优先级设置(高/中/低) - 截止日期管理 - 任务分类标签 - 搜索和筛选功能 - 软删除机制 ### 3. 分类管理 - 自定义分类 - 颜色标识 - 任务数量统计 - 分类关联管理 ### 4. 数据统计 - 任务总览 - 状态分布统计 - 优先级分布 - 分类统计 - 逾期任务提醒 - 完成率展示 ## 快速开始 ### 方式一:Docker 部署(推荐) #### 前提条件 - Docker 20+ - Docker Compose #### 步骤 1. **克隆项目** ```bash git clone cd taskmaster ``` 2. **启动服务** ```bash docker-compose up -d ``` 3. **访问应用** - 前端:http://localhost - 后端 API:http://localhost:3000 4. **停止服务** ```bash docker-compose down ``` ### 方式二:本地开发 #### 前提条件 - Node.js 18+ - npm 或 yarn #### 后端启动 ```bash cd backend # 安装依赖 npm install # 配置环境变量 cp .env.example .env # 编辑 .env 文件配置参数 # 启动开发服务器 npm run dev # 或生产模式 npm start ``` 后端服务将在 `http://localhost:3000` 启动 #### 前端启动 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build ``` 前端服务将在 `http://localhost:5173` 启动 ## 项目结构 ``` taskmaster/ ├── backend/ # 后端服务 │ ├── src/ │ │ ├── config/ # 配置文件 │ │ ├── models/ # 数据模型 │ │ ├── controllers/ # 控制器 │ │ ├── routes/ # 路由 │ │ ├── middleware/ # 中间件 │ │ └── app.js # Express 应用 │ ├── data/ # SQLite 数据库文件 │ ├── Dockerfile │ ├── package.json │ └── server.js # 入口文件 ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── components/ # 通用组件 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── router/ # 路由配置 │ │ ├── services/ # API 服务 │ │ ├── App.vue │ │ └── main.js │ ├── public/ │ ├── Dockerfile │ ├── nginx.conf │ └── package.json ├── docker-compose.yml # Docker 编排文件 └── README.md ``` ## API 接口 ### 认证接口 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/me` - 获取当前用户 - `PUT /api/auth/password` - 修改密码 ### 任务接口 - `GET /api/tasks` - 获取任务列表 - `POST /api/tasks` - 创建任务 - `GET /api/tasks/:id` - 获取任务详情 - `PUT /api/tasks/:id` - 更新任务 - `DELETE /api/tasks/:id` - 删除任务 - `PATCH /api/tasks/:id/status` - 更新任务状态 ### 分类接口 - `GET /api/categories` - 获取分类列表 - `POST /api/categories` - 创建分类 - `PUT /api/categories/:id` - 更新分类 - `DELETE /api/categories/:id` - 删除分类 ### 统计接口 - `GET /api/stats` - 获取统计数据 详细 API 文档见:[backend/README.md](backend/README.md) ## 华为云部署 ### 部署到华为云 CCE (容器引擎) 1. **构建镜像** ```bash # 构建后端镜像 cd backend docker build -t taskmaster-backend:latest . # 构建前端镜像 cd ../frontend docker build -t taskmaster-frontend:latest . ``` 2. **推送到华为云 SWR (容器镜像服务)** ```bash # 登录华为云镜像仓库 docker login swr.cn-north-4.myhuaweicloud.com # 打标签 docker tag taskmaster-backend:latest swr.cn-north-4.myhuaweicloud.com/your-org/taskmaster-backend:latest docker tag taskmaster-frontend:latest swr.cn-north-4.myhuaweicloud.com/your-org/taskmaster-frontend:latest # 推送镜像 docker push swr.cn-north-4.myhuaweicloud.com/your-org/taskmaster-backend:latest docker push swr.cn-north-4.myhuaweicloud.com/your-org/taskmaster-frontend:latest ``` 3. **在 CCE 创建工作负载** - 使用推送的镜像创建 Deployment - 配置 Service 和 Ingress - 设置环境变量 - 配置持久化存储 (PVC) ### 部署到华为云 ServiceStage 1. 在 ServiceStage 控制台创建应用 2. 选择容器部署方式 3. 配置代码仓库或镜像仓库 4. 设置构建参数和环境变量 5. 配置自动化 CI/CD 流水线 ### 环境变量配置 #### 后端环境变量 ```env NODE_ENV=production PORT=3000 SECRET_KEY=your-production-secret-key DATABASE_URL=/app/data/taskmaster.db JWT_SECRET=your-production-jwt-secret JWT_EXPIRE=7d CORS_ORIGIN=https://your-domain.com ``` #### 数据库迁移(可选) 如需使用华为云 RDS,修改后端 `src/config/database.js`: ```javascript const sequelize = new Sequelize( process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASSWORD, { host: process.env.DB_HOST, port: process.env.DB_PORT, dialect: 'mysql', // 或 'postgres' // ... 其他配置 } ); ``` ## 开发指南 ### 本地开发流程 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ### 代码规范 - 遵循 ESLint 规则 - 使用语义化的提交信息 - 编写清晰的注释 - 保持代码简洁可读 ## 常见问题 ### 1. 端口冲突 如果 80 或 3000 端口被占用,修改 `docker-compose.yml` 中的端口映射。 ### 2. 数据持久化 Docker 部署时,数据存储在 `./backend/data` 目录,请确保备份。 ### 3. CORS 错误 检查后端 `.env` 文件中的 `CORS_ORIGIN` 配置是否正确。 ### 4. 数据库迁移 首次运行会自动创建数据库表,如需重置数据库,删除 `data/taskmaster.db` 文件。 ## 性能优化 - 前端使用 Vite 构建,支持按需加载 - 静态资源启用 Gzip 压缩 - Nginx 配置缓存策略 - 数据库查询优化和索引 - JWT Token 过期机制 ## 安全性 - 密码使用 bcrypt 加密 - JWT Token 认证机制 - SQL 注入防护 (Sequelize ORM) - XSS 防护 - CORS 跨域限制 - 环境变量管理敏感信息 ## License 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 致谢 - Vue.js 团队 - Express.js 社区 - Sequelize ORM - 所有贡献者 ## 联系方式 如有问题或建议,欢迎提交 Issue 或 Pull Request。 --- **注意**:生产环境部署前,请务必修改默认的密钥和配置!