Skip to content

项目管理

📋 功能概述

项目管理是学习追踪系统的核心功能之一,帮助用户创建、组织和管理学习项目。通过项目管理功能,用户可以:

  • 创建结构化的学习项目
  • 设置学习目标和时间计划
  • 跟踪项目进度和完成情况
  • 组织和管理多个学习项目

🎯 主要特性

1. 项目创建

  • 基本信息: 项目名称、描述、分类
  • 学习目标: 设定具体的学习目标
  • 时间规划: 设置开始时间、预计完成时间
  • 优先级: 设置项目优先级(高、中、低)
  • 状态管理: 活跃、暂停、完成、取消

2. 项目组织

  • 分类管理: 按学科、技能、兴趣等分类
  • 标签系统: 使用标签快速识别项目
  • 搜索功能: 快速查找特定项目
  • 排序选项: 按时间、优先级、名称排序

3. 进度跟踪

  • 完成度: 自动计算项目完成度
  • 时间统计: 记录实际学习时间
  • 里程碑: 设置项目里程碑
  • 进度报告: 生成项目进度报告

🚀 使用指南

创建新项目

  1. 访问项目管理页面

    • 登录系统后,点击侧边栏的"项目管理"
    • 或直接访问 /projects 页面
  2. 点击"新建项目"按钮

    • 在项目列表页面右上角找到"新建项目"按钮
    • 点击进入项目创建表单
  3. 填写项目信息

    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 使用方法",
        "学会状态管理",
        "完成一个完整项目"
      ]
    }
  4. 保存项目

    • 点击"保存"按钮创建项目
    • 系统会自动跳转到项目详情页面

编辑项目

  1. 进入项目详情

    • 在项目列表中点击项目名称
    • 或点击"编辑"按钮
  2. 修改项目信息

    • 更新项目基本信息
    • 调整学习目标
    • 修改时间计划
  3. 保存更改

    • 点击"保存"按钮应用更改
    • 系统会显示更新成功提示

管理项目状态

项目支持以下状态:

  • 活跃 (Active): 正在进行的项目
  • 暂停 (Paused): 暂时停止的项目
  • 完成 (Completed): 已完成的项目
  • 取消 (Cancelled): 已取消的项目

项目进度跟踪

  1. 查看进度概览

    • 在项目列表中查看完成度百分比
    • 查看已学习时间和目标时间对比
  2. 设置里程碑

    • 在项目详情页面添加里程碑
    • 设置里程碑完成条件
  3. 更新进度

    • 记录学习时间时自动更新进度
    • 手动标记里程碑完成

📊 数据模型

项目表结构

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
);

字段说明

字段名类型说明
idSERIAL项目唯一标识
user_idINTEGER所属用户ID
nameVARCHAR(255)项目名称
descriptionTEXT项目描述
categoryVARCHAR(100)项目分类
tagsTEXT[]项目标签数组
start_dateDATE开始日期
target_dateDATE目标完成日期
priorityVARCHAR(20)优先级 (high/medium/low)
statusVARCHAR(20)项目状态
progressINTEGER完成度 (0-100)
total_timeINTEGER总学习时间(分钟)
rating_standardsJSONB评分标准
created_atTIMESTAMP创建时间
updated_atTIMESTAMP更新时间

🔧 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: 在项目委派模态框中,将用户从左侧(已指派)移动到右侧(未指派),然后保存即可取消委派。


💡 提示

合理使用项目管理功能可以帮助您更好地组织学习内容,提高学习效率。建议定期回顾和调整项目计划。

Released under the MIT License.