项目管理
📋 功能概述
项目管理是学习追踪系统的核心功能之一,帮助用户创建、组织和管理学习项目。通过项目管理功能,用户可以:
- 创建结构化的学习项目
- 设置学习目标和时间计划
- 跟踪项目进度和完成情况
- 组织和管理多个学习项目
🎯 主要特性
1. 项目创建
- 基本信息: 项目名称、描述、分类
- 学习目标: 设定具体的学习目标
- 时间规划: 设置开始时间、预计完成时间
- 优先级: 设置项目优先级(高、中、低)
- 状态管理: 活跃、暂停、完成、取消
2. 项目组织
- 分类管理: 按学科、技能、兴趣等分类
- 标签系统: 使用标签快速识别项目
- 搜索功能: 快速查找特定项目
- 排序选项: 按时间、优先级、名称排序
3. 进度跟踪
- 完成度: 自动计算项目完成度
- 时间统计: 记录实际学习时间
- 里程碑: 设置项目里程碑
- 进度报告: 生成项目进度报告
🚀 使用指南
创建新项目
访问项目管理页面
- 登录系统后,点击侧边栏的"项目管理"
- 或直接访问
/projects页面
点击"新建项目"按钮
- 在项目列表页面右上角找到"新建项目"按钮
- 点击进入项目创建表单
填写项目信息
json{ "name": "学习 React 框架", "description": "掌握 React 核心概念和开发技能", "category": "编程开发", "tags": ["React", "JavaScript", "前端"], "start_date": "2024-01-01", "target_date": "2024-03-31", "priority": "high", "learning_goals": [ "理解 React 组件概念", "掌握 Hooks 使用方法", "学会状态管理", "完成一个完整项目" ] }保存项目
- 点击"保存"按钮创建项目
- 系统会自动跳转到项目详情页面
编辑项目
进入项目详情
- 在项目列表中点击项目名称
- 或点击"编辑"按钮
修改项目信息
- 更新项目基本信息
- 调整学习目标
- 修改时间计划
保存更改
- 点击"保存"按钮应用更改
- 系统会显示更新成功提示
管理项目状态
项目支持以下状态:
- 活跃 (Active): 正在进行的项目
- 暂停 (Paused): 暂时停止的项目
- 完成 (Completed): 已完成的项目
- 取消 (Cancelled): 已取消的项目
项目进度跟踪
查看进度概览
- 在项目列表中查看完成度百分比
- 查看已学习时间和目标时间对比
设置里程碑
- 在项目详情页面添加里程碑
- 设置里程碑完成条件
更新进度
- 记录学习时间时自动更新进度
- 手动标记里程碑完成
📊 数据模型
项目表结构
sql
CREATE TABLE study_projects (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id),
name VARCHAR(255) NOT NULL,
description TEXT,
category VARCHAR(100),
tags TEXT[],
start_date DATE,
target_date DATE,
priority VARCHAR(20) DEFAULT 'medium',
status VARCHAR(20) DEFAULT 'active',
progress INTEGER DEFAULT 0,
total_time INTEGER DEFAULT 0,
rating_standards JSONB,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
id | SERIAL | 项目唯一标识 |
user_id | INTEGER | 所属用户ID |
name | VARCHAR(255) | 项目名称 |
description | TEXT | 项目描述 |
category | VARCHAR(100) | 项目分类 |
tags | TEXT[] | 项目标签数组 |
start_date | DATE | 开始日期 |
target_date | DATE | 目标完成日期 |
priority | VARCHAR(20) | 优先级 (high/medium/low) |
status | VARCHAR(20) | 项目状态 |
progress | INTEGER | 完成度 (0-100) |
total_time | INTEGER | 总学习时间(分钟) |
rating_standards | JSONB | 评分标准 |
created_at | TIMESTAMP | 创建时间 |
updated_at | TIMESTAMP | 更新时间 |
🔧 API 接口
获取项目列表
http
GET /api/projects
Authorization: Bearer <token>响应示例:
json
{
"success": true,
"data": [
{
"id": 1,
"name": "学习 React 框架",
"description": "掌握 React 核心概念和开发技能",
"category": "编程开发",
"tags": ["React", "JavaScript", "前端"],
"start_date": "2024-01-01",
"target_date": "2024-03-31",
"priority": "high",
"status": "active",
"progress": 65,
"total_time": 1200,
"created_at": "2024-01-01T00:00:00Z"
}
]
}创建新项目
http
POST /api/projects
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "新项目名称",
"description": "项目描述",
"category": "分类",
"tags": ["标签1", "标签2"],
"start_date": "2024-01-01",
"target_date": "2024-03-31",
"priority": "high"
}更新项目
http
PUT /api/projects/:id
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "更新后的项目名称",
"description": "更新后的描述",
"progress": 75
}删除项目
http
DELETE /api/projects/:id
Authorization: Bearer <token>🎨 界面设计
项目列表页面
- 卡片式布局: 每个项目显示为卡片
- 进度条: 直观显示完成度
- 状态标识: 不同颜色表示不同状态
- 快速操作: 编辑、删除、查看详情
项目详情页面
- 基本信息: 项目名称、描述、分类
- 进度统计: 完成度、学习时间
- 学习记录: 关联的学习记录列表
- 操作按钮: 编辑、删除、开始学习
🔍 最佳实践
1. 项目命名
- 使用清晰、具体的项目名称
- 避免过于宽泛的描述
- 包含关键技能或技术名称
2. 目标设定
- 设定具体、可衡量的学习目标
- 将大目标分解为小目标
- 设置合理的时间期限
3. 分类管理
- 建立统一的分类体系
- 使用有意义的标签
- 定期整理和归档项目
4. 进度跟踪
- 定期更新项目进度
- 记录学习心得和收获
- 及时调整学习计划
🐛 常见问题
Q: 如何批量导入项目?
A: 目前支持通过 Excel/CSV 文件批量导入项目,具体操作请参考 数据导入导出 文档。
Q: 可以设置项目提醒吗?
A: 是的,系统支持项目到期提醒功能,可以在项目设置中配置提醒时间。
Q: 如何导出项目数据?
A: 在项目管理页面,点击"导出"按钮可以导出项目数据为 Excel 格式。
Q: 项目可以共享给其他用户吗?
A: 目前项目是用户私有的,未来版本将支持项目共享功能。
Q: 如何管理项目委派?
A: 管理员可以通过以下方式管理项目委派:
- 单个项目委派:在项目列表点击"委派"按钮
- 批量项目委派:选择多个项目后点击"批量指派"按钮
- 在模态框中直观地管理用户指派状态
Q: 普通用户能看到哪些项目?
A: 普通用户可以看到:
- 自己创建的项目
- 管理员指派给自己的项目
- 无法看到未指派给自己的项目
Q: 项目委派支持多少个用户?
A: 系统支持一个项目指派给多个用户,没有数量限制。管理员可以根据需要灵活指派。
Q: 如何取消项目委派?
A: 在项目委派模态框中,将用户从左侧(已指派)移动到右侧(未指派),然后保存即可取消委派。
💡 提示
合理使用项目管理功能可以帮助您更好地组织学习内容,提高学习效率。建议定期回顾和调整项目计划。