Files
ittoview/docs/需求设计文档.md
2026-02-02 18:30:58 +08:00

13 KiB
Raw Blame History

ITTOView - PMP项目管理ITTO可视化学习平台

需求设计文档 v1.0


1. 项目概述

1.1 项目背景

PMPProject Management Professional认证考试中ITTOInput-Tools & Techniques-Output是核心知识点。PMBOK第6版包含

  • 10大知识领域:整合、范围、进度、成本、质量、资源、沟通、风险、采购、相关方管理
  • 5大过程组:启动、规划、执行、监控、收尾
  • 49个项目管理过程:每个过程都有对应的输入、工具与技术、输出

传统的ITTO学习方式PDF/表格)存在以下痛点:

  1. 信息孤立:难以看到过程之间的数据流向关系
  2. 记忆困难:大量术语和对应关系难以记忆
  3. 缺乏互动:无法进行自测和针对性复习
  4. 查找低效:无法快速定位特定输入/输出的使用场景

1.2 项目目标

构建一个精美、交互式的ITTO可视化学习平台帮助PMP考生

  1. 直观理解通过流程图可视化ITTO关系
  2. 高效记忆:基于间隔重复的记忆卡片系统
  3. 精准评估:完整的测评、错题、统计功能
  4. 快速查询:强大的搜索和关联分析能力

1.3 目标用户

  • PMP/CAPM认证备考人员
  • 项目管理学习者
  • 企业项目管理培训机构

2. 功能需求

2.1 核心功能模块

2.1.1 知识浏览模块

功能 描述 优先级
知识领域视图 按10大知识领域分类展示所有过程 P0
过程组视图 按5大过程组分类展示所有过程 P0
过程详情页 展示单个过程的完整ITTO信息 P0
表格视图 传统表格形式展示,支持排序筛选 P1
卡片视图 卡片形式展示,适合快速浏览 P1

2.1.2 可视化模块

功能 描述 优先级
ITTO流程图 输入→工具技术→输出的流程图展示 P0
数据流向图 展示输出如何流向其他过程作为输入 P0
知识领域全景图 单个知识领域内所有过程的关系图 P1
全局关系图谱 49个过程的完整关系网络 P2

2.1.3 搜索与筛选模块

功能 描述 优先级
全局搜索 搜索过程名、输入、工具、输出 P0
分类筛选 按知识领域/过程组筛选 P0
类型筛选 仅搜索输入/工具/输出 P1
关联查询 查看某项作为输入/输出的所有过程 P1

2.1.4 学习模块

功能 描述 优先级
记忆卡片 基于间隔重复算法的闪卡系统 P0
自测模式 多种题型(选择、填空、连线) P0
错题本 自动收集错题,支持针对性复习 P0
掌握度标记 熟悉/模糊/陌生三级标记 P1
学习统计 学习时长、正确率、进度可视化 P1
复习计划 基于艾宾浩斯遗忘曲线的复习提醒 P2

2.1.5 用户体验模块

功能 描述 优先级
响应式布局 适配PC和平板设备 P0
深色模式 支持明暗主题切换 P1
键盘导航 支持快捷键操作 P2
数据导出 导出学习记录为JSON/CSV P2

2.2 页面结构

ITTOView/
├── 首页 (Dashboard)
│   ├── 学习进度概览
│   ├── 今日复习任务
│   └── 快速入口
├── 知识浏览
│   ├── 知识领域视图
│   ├── 过程组视图
│   └── 过程详情页
├── 可视化
│   ├── ITTO流程图
│   ├── 数据流向图
│   └── 全局关系图谱
├── 学习中心
│   ├── 记忆卡片
│   ├── 自测模式
│   ├── 错题本
│   └── 学习统计
└── 设置
    ├── 主题设置
    └── 数据管理

3. 技术架构

3.1 技术选型

类别 技术方案 选型理由
框架 React 18 + TypeScript 生态成熟、类型安全、组件化开发
构建工具 Vite 快速冷启动、HMR、现代化构建
UI组件库 Radix UI + Tailwind CSS 无样式组件+原子化CSS高度可定制
可视化 React Flow + ELK.js 流程图交互完善 + 自动布局算法
状态管理 Zustand 轻量、简洁、TypeScript友好
搜索引擎 FlexSearch 高性能全文搜索,支持中文
路由 React Router v6 官方路由方案,功能完善
动画 Framer Motion 声明式动画,流畅交互
图表 Recharts 基于React的图表库学习统计使用
持久化 localStorage + IndexedDB 本地存储学习进度和用户数据

3.2 项目结构

src/
├── assets/                # 静态资源
│   ├── icons/
│   └── images/
├── components/            # 通用组件
│   ├── ui/               # 基础UI组件
│   ├── layout/           # 布局组件
│   └── shared/           # 共享业务组件
├── features/              # 功能模块
│   ├── browse/           # 知识浏览
│   ├── visualize/        # 可视化
│   ├── learn/            # 学习中心
│   └── search/           # 搜索功能
├── data/                  # 数据层
│   ├── itto.json         # ITTO核心数据
│   ├── models/           # 数据模型定义
│   └── index/            # 搜索索引
├── stores/                # 状态管理
│   ├── useAppStore.ts
│   ├── useLearnStore.ts
│   └── useSearchStore.ts
├── hooks/                 # 自定义Hooks
├── utils/                 # 工具函数
├── styles/                # 全局样式
├── types/                 # TypeScript类型
└── App.tsx

4. 数据模型

4.1 核心数据结构

4.1.1 知识领域 (KnowledgeArea)

interface KnowledgeArea {
  id: string;           // 如 "KA01"
  name: string;         // 如 "项目整合管理"
  nameEn: string;       // 如 "Project Integration Management"
  order: number;        // 排序序号 1-10
  color: string;        // 主题色 "#3B82F6"
  description: string;  // 简要描述
}

4.1.2 过程组 (ProcessGroup)

interface ProcessGroup {
  id: string;           // 如 "PG01"
  name: string;         // 如 "启动过程组"
  nameEn: string;       // 如 "Initiating Process Group"
  order: number;        // 排序序号 1-5
  color: string;        // 主题色
}

4.1.3 过程 (Process)

interface Process {
  id: string;              // 如 "P001"
  name: string;            // 如 "制定项目章程"
  nameEn: string;          // 如 "Develop Project Charter"
  knowledgeAreaId: string; // 所属知识领域
  processGroupId: string;  // 所属过程组
  order: number;           // 在知识领域内的序号
  inputs: ArtifactRef[];   // 输入列表
  tools: ToolRef[];        // 工具与技术列表
  outputs: ArtifactRef[];  // 输出列表
}

4.1.4 工件/文档 (Artifact)

interface Artifact {
  id: string;           // 如 "A0001"
  name: string;         // 如 "项目章程"
  nameEn: string;       // 如 "Project Charter"
  category: ArtifactCategory;
  description?: string;
}

type ArtifactCategory =
  | 'document'    // 文档
  | 'plan'        // 计划
  | 'baseline'    // 基准
  | 'report'      // 报告
  | 'register'    // 登记册
  | 'log'         // 日志
  | 'deliverable' // 可交付成果
  | 'other';      // 其他

4.1.5 工具与技术 (ToolTechnique)

interface ToolTechnique {
  id: string;           // 如 "TT0001"
  name: string;         // 如 "专家判断"
  nameEn: string;       // 如 "Expert Judgment"
  type: ToolType;
  description?: string;
}

type ToolType =
  | 'tool'       // 工具
  | 'technique'  // 技术
  | 'method'     // 方法
  | 'skill'      // 技能
  | 'meeting';   // 会议

4.2 学习数据结构

// 学习记录
interface LearningRecord {
  id: string;
  userId: string;
  processId: string;
  masteryLevel: 'familiar' | 'fuzzy' | 'unfamiliar';
  reviewCount: number;
  correctCount: number;
  lastReviewAt: Date;
  nextReviewAt: Date;  // 基于间隔重复算法计算
}

// 错题记录
interface WrongAnswer {
  id: string;
  questionId: string;
  questionType: 'choice' | 'fill' | 'match';
  userAnswer: string;
  correctAnswer: string;
  createdAt: Date;
  reviewed: boolean;
}

// 学习统计
interface LearningStats {
  totalStudyTime: number;      // 总学习时长(分钟)
  totalQuestions: number;      // 总答题数
  correctRate: number;         // 正确率
  masteredCount: number;       // 已掌握过程数
  streakDays: number;          // 连续学习天数
  lastStudyDate: Date;
}

5. 实施计划

5.1 里程碑规划

阶段 名称 主要产出 验收标准
M0 数据准备 ITTO数据JSON、数据校验 49个过程数据完整可用
M1 基础架构 项目骨架、路由、布局 可浏览10大领域和5大过程组
M2 核心浏览 过程详情页、ITTO表格、搜索 可搜索并查看任意过程详情
M3 可视化 ITTO流程图、数据流向图 图谱支持缩放/高亮/筛选
M4 学习系统 卡片、测评、错题、统计 完整学习闭环可用
M5 体验优化 动效、响应式、性能优化 流畅度达标、视觉统一

5.2 详细任务分解

M0: 数据准备

  • 从PDF提取49个过程的ITTO数据
  • 设计并实现数据JSON结构
  • 建立输入/输出的关联关系
  • 数据校验与完整性检查

M1: 基础架构

  • 初始化Vite + React + TypeScript项目
  • 配置Tailwind CSS和Radix UI
  • 实现基础布局组件Header、Sidebar、Content
  • 配置React Router路由
  • 实现知识领域列表页
  • 实现过程组列表页

M2: 核心浏览

  • 实现过程详情页
  • 实现ITTO表格组件
  • 集成FlexSearch搜索引擎
  • 实现全局搜索功能
  • 实现分类筛选功能

M3: 可视化

  • 集成React Flow
  • 实现ITTO流程图组件
  • 实现数据流向分析
  • 实现知识领域全景图
  • 优化图谱交互体验

M4: 学习系统

  • 实现记忆卡片组件
  • 实现间隔重复算法
  • 实现自测模式(多种题型)
  • 实现错题本功能
  • 实现学习统计页面
  • 实现数据持久化

M5: 体验优化

  • 添加页面过渡动画
  • 实现深色模式
  • 响应式布局适配
  • 性能优化(懒加载、虚拟化)
  • 用户体验细节打磨

6. UI设计规范

6.1 色彩系统

知识领域主题色

知识领域 主色 用途
整合管理 #6366F1 (Indigo) 统领全局
范围管理 #8B5CF6 (Violet) 边界定义
进度管理 #EC4899 (Pink) 时间紧迫
成本管理 #10B981 (Emerald) 财务绿色
质量管理 #F59E0B (Amber) 金牌品质
资源管理 #3B82F6 (Blue) 人力资源
沟通管理 #06B6D4 (Cyan) 信息流动
风险管理 #EF4444 (Red) 风险警示
采购管理 #84CC16 (Lime) 采购绿通
相关方管理 #F97316 (Orange) 人际温暖

过程组主题色

过程组 主色 含义
启动 #22C55E 绿灯启动
规划 #3B82F6 蓝图规划
执行 #F59E0B 黄金执行
监控 #8B5CF6 紫色监控
收尾 #6B7280 灰色收尾

6.2 组件设计原则

  1. 卡片化设计:信息以卡片形式呈现,层次分明
  2. 色彩编码:通过颜色快速识别知识领域和过程组
  3. 渐进式披露:先展示概要,点击展开详情
  4. 一致性交互:相同操作保持一致的交互反馈
  5. 无障碍设计:确保足够的对比度和可访问性

7. 附录

7.1 10大知识领域

  1. 项目整合管理 - 7个过程
  2. 项目范围管理 - 6个过程
  3. 项目进度管理 - 6个过程
  4. 项目成本管理 - 4个过程
  5. 项目质量管理 - 3个过程
  6. 项目资源管理 - 6个过程
  7. 项目沟通管理 - 3个过程
  8. 项目风险管理 - 7个过程
  9. 项目采购管理 - 3个过程
  10. 项目相关方管理 - 4个过程

7.2 5大过程组

  1. 启动过程组 - 2个过程
  2. 规划过程组 - 24个过程
  3. 执行过程组 - 10个过程
  4. 监控过程组 - 12个过程
  5. 收尾过程组 - 1个过程

7.3 参考资料

  • PMBOK第6版指南
  • ITTO输入输出工具手册本项目源PDF
  • React Flow官方文档
  • Tailwind CSS设计系统

文档版本: v1.0 创建日期: 2026-02-02 最后更新: 2026-02-02