# Evaluation Space **Repository Path**: htao001/evaluation-space ## Basic Information - **Project Name**: Evaluation Space - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-04 - **Last Updated**: 2025-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 通用个人任务管理系统 > 一款轻量化、高灵活性的个人任务管理系统,支持多场景任务管理、计划跟踪、进度统计等功能。 ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Node](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg) ![React](https://img.shields.io/badge/react-18.2.0-blue.svg) ![NestJS](https://img.shields.io/badge/nestjs-10.2.0-red.svg) ## ✨ 功能特性 ### 🎯 核心功能(已实现) #### 任务管理 - ✅ **基础操作**: 创建、编辑、删除、复制任务 - ✅ **Markdown 支持**: 富文本描述编辑 - ✅ **重复任务**: 每日/每周/每月/每年,自定义间隔和结束条件 - ✅ **进度管理**: 0-100% 进度追踪,可视化进度条 - ✅ **子任务**: 父子关系管理,子任务进度自动计算 - ✅ **任务依赖**: 前置任务设置,依赖关系可视化,防止循环依赖 - ✅ **任务状态**: 待办📝/进行中⏳/已完成✅/暂停⏸️/取消❌ - ✅ **状态历史**: 自动记录状态变更,Timeline时间线展示 - ✅ **优先级**: 高🔴/中🟡/低🟢/无⚪,emoji 可视化 #### 高级功能 - ✅ **批量操作**: 批量完成、批量删除、批量修改 - ✅ **收藏置顶**: 重要任务固定显示,带图标标识 - ✅ **智能排序**: 按创建时间/截止时间/优先级,置顶任务优先 - ✅ **多维筛选**: 状态/分类/优先级/标签/时间范围组合筛选 - ✅ **全文搜索**: 标题和描述内容快速搜索 - ✅ **逾期提醒**: 逾期任务红色标记 #### 分类标签 - ✅ **多级分类**: 支持树形分类结构,自定义图标和颜色 - ✅ **标签系统**: 灵活的多标签标记,颜色分组 - ✅ **快速筛选**: 一键筛选特定分类或标签的任务 #### 数据统计 - ✅ **任务概览**: 总数、进行中、已完成统计 - ✅ **完成率分析**: 按分类统计完成率 - ✅ **趋势分析**: 任务创建和完成趋势图表 ### 🔜 即将推出 - 🔲 项目计划管理 - 🔲 里程碑设置 - 🔲 任务提醒和通知 - 🔲 附件管理 - 🔲 专注计时 - 🔲 日历视图 - 🔲 数据可视化图表 ## 🚀 技术栈 ### 前端技术 | 技术 | 版本 | 说明 | |------|------|------| | React | 18.2.0 | UI 框架 | | TypeScript | 5.3.3 | 类型安全 | | MobX | 6.12.0 | 状态管理 | | Ant Design | 5.12.2 | UI 组件库 | | React Router | 6.20.1 | 路由管理 | | Vite | 5.0.8 | 构建工具 | | Axios | 1.6.2 | HTTP 客户端 | | Recharts | 2.10.3 | 图表库 | ### 后端技术 | 技术 | 版本 | 说明 | |------|------|------| | NestJS | 10.2.10 | 服务端框架 | | TypeScript | 5.3.3 | 类型安全 | | Prisma | 5.7.1 | ORM 框架 | | SQLite | - | 轻量级数据库 | | Class Validator | 0.14.0 | 参数验证 | ## 📦 快速开始 ### 环境要求 - **Node.js**: >= 18.0.0 - **npm**: >= 9.0.0 - **操作系统**: macOS / Windows / Linux ### 1️⃣ 克隆项目 ```bash git clone cd task-management-system ``` ### 2️⃣ 安装依赖 ```bash npm run install:all ``` ### 3️⃣ 初始化数据库 ```bash cd backend npx prisma generate npx prisma migrate dev --name init npm run prisma:seed # 可选:初始化示例数据 cd .. ``` ### 4️⃣ 启动开发服务器 ```bash npm run dev ``` 访问应用: - **前端**: http://localhost:5173 - **后端 API**: http://localhost:3000/api/v1 - **Prisma Studio**: `cd backend && npx prisma studio` → http://localhost:5555 ## 📁 项目结构 ``` task-management-system/ ├── backend/ # 后端项目 │ ├── src/ │ │ ├── modules/ # 业务模块 │ │ │ ├── task/ # 任务模块 │ │ │ ├── category/ # 分类模块 │ │ │ ├── tag/ # 标签模块 │ │ │ ├── plan/ # 计划模块 │ │ │ ├── statistics/ # 统计模块 │ │ │ └── attachment/ # 附件模块 │ │ ├── prisma/ # Prisma 配置 │ │ ├── common/ # 通用模块 │ │ ├── app.module.ts # 根模块 │ │ └── main.ts # 入口文件 │ ├── prisma/ │ │ ├── schema.prisma # 数据库模型 │ │ ├── migrations/ # 数据库迁移 │ │ └── seed.ts # 种子数据 │ ├── database/ # SQLite 数据库 │ ├── uploads/ # 上传文件 │ └── package.json │ ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API 接口层 │ │ ├── stores/ # MobX 状态管理 │ │ │ ├── taskStore.ts │ │ │ ├── categoryStore.ts │ │ │ ├── tagStore.ts │ │ │ └── index.ts │ │ ├── components/ # 通用组件 │ │ │ ├── Layout/ # 布局组件 │ │ │ ├── TaskList/ # 任务列表 │ │ │ └── TaskForm/ # 任务表单 │ │ ├── pages/ # 页面组件 │ │ │ ├── Dashboard/ # 仪表盘 │ │ │ └── TaskManagement/ # 任务管理 │ │ ├── types/ # TypeScript 类型 │ │ ├── router.tsx # 路由配置 │ │ ├── App.tsx # 根组件 │ │ └── main.tsx # 入口文件 │ └── package.json │ ├── docs/ # 项目文档 │ ├── api.md # API 接口文档 │ ├── setup.md # 环境搭建指南 │ └── database.md # 数据库设计 │ ├── package.json # 根 package.json └── README.md # 项目说明 ``` ## 🔧 开发命令 ### 根目录命令 ```bash npm run install:all # 安装所有依赖 npm run dev # 同时启动前后端开发服务器 npm run build # 构建前后端生产版本 ``` ### 后端命令 ```bash cd backend npm run start:dev # 启动开发服务器(热重载) npm run start:prod # 启动生产服务器 npm run build # 构建生产版本 npm run test # 运行测试 # Prisma 命令 npx prisma generate # 生成 Prisma Client npx prisma migrate dev --name # 创建数据库迁移 npx prisma studio # 打开数据库管理界面 npm run prisma:seed # 初始化种子数据 ``` ### 前端命令 ```bash cd frontend npm run dev # 启动开发服务器 npm run build # 构建生产版本 npm run preview # 预览生产构建 npm run lint # 代码检查 ``` ## 📚 文档 - **[API 接口文档](./docs/api.md)** - 完整的 REST API 参考 - **[环境搭建指南](./docs/setup.md)** - 详细的开发环境配置 - **[数据库设计](./docs/database.md)** - 数据表结构和关系 ## 🎨 功能演示 ### 仪表盘 - 任务概览统计 - 完成率展示 - 最近任务列表 ### 任务管理 - 任务列表展示 - 任务创建/编辑/删除 - 任务状态切换 - 收藏和置顶 - 高级筛选和搜索 - 批量操作 ### 分类管理 - 树形分类结构 - 自定义图标和颜色 - 拖拽排序 ### 标签管理 - 标签创建和管理 - 多标签关联 - 按标签筛选 ## 🔨 开发工具推荐 ### VSCode 插件 - **ESLint** - 代码检查 - **Prettier** - 代码格式化 - **Prisma** - Prisma Schema 支持 - **ES7+ React/Redux/React-Native snippets** - React 代码片段 ### 数据库管理 ```bash cd backend npx prisma studio ``` 访问 http://localhost:5555 管理数据库 ## 🚢 生产部署 ### 构建项目 ```bash npm run build ``` ### 启动后端 ```bash cd backend npm run start:prod ``` ### 部署前端 将 `frontend/dist` 目录部署到静态服务器(如 Nginx) ## 📝 环境变量 ### 后端 (backend/.env) ```env NODE_ENV=development PORT=3000 DATABASE_URL="file:../database/dev.db" CORS_ORIGIN=http://localhost:5173 UPLOAD_PATH=./uploads MAX_FILE_SIZE=10485760 ``` ### 前端 前端通过 Vite 代理连接后端,配置在 `vite.config.ts` ## 🐛 常见问题 ### 端口被占用 修改 `backend/.env` 的 `PORT` 或 `frontend/vite.config.ts` 的 `server.port` ### Prisma Client 未生成 ```bash cd backend npx prisma generate ``` ### 数据库迁移失败 ```bash cd backend npx prisma migrate reset # 重置数据库 npx prisma migrate dev ``` ## 🤝 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 📧 联系方式 如有问题或建议,请: - 提交 [Issue](../../issues) - 发送邮件至: your-email@example.com ## 🙏 致谢 感谢以下开源项目: - [React](https://react.dev/) - [NestJS](https://nestjs.com/) - [Prisma](https://www.prisma.io/) - [Ant Design](https://ant.design/) - [MobX](https://mobx.js.org/) --- ⭐️ 如果这个项目对你有帮助,请给个 Star!