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

## 需求设计文档 v1.0

---

## 1. 项目概述

### 1.1 项目背景

PMP（Project Management Professional）认证考试中，ITTO（Input-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)

```typescript
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)

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

#### 4.1.3 过程 (Process)

```typescript
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)

```typescript
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)

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

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

### 4.2 学习数据结构

```typescript
// 学习记录
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
