Initial commit
This commit is contained in:
429
docs/需求设计文档.md
Normal file
429
docs/需求设计文档.md
Normal file
@@ -0,0 +1,429 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user