260 lines
11 KiB
Markdown
260 lines
11 KiB
Markdown
# 04 C 端正式业务能力树
|
||
|
||
> 基于 iOS 页面地图和功能总表,按业务领域→业务能力→子能力的三层结构整理。
|
||
> 不按代码目录组织,不写代码文件路径、类名。
|
||
|
||
---
|
||
|
||
## 1. 账号与用户
|
||
|
||
**能力说明:** 用户注册登录、会话管理、账号状态处理、个人资料维护。
|
||
|
||
```
|
||
账号与用户
|
||
├── 注册与登录
|
||
│ ├── Apple ID 登录(含 nonce 验证)
|
||
│ ├── 自动会话恢复(Keychain Token → API 校验)
|
||
│ └── Token 刷新(401 自动重试)
|
||
├── 账号状态管理
|
||
│ ├── 账号禁用展示
|
||
│ └── 账号注销展示
|
||
├── 个人资料维护
|
||
│ ├── 头像上传与裁剪
|
||
│ ├── 昵称编辑
|
||
│ ├── 学习身份/方向/目标编辑
|
||
│ └── 个人简介编辑
|
||
└── 账号安全与设备
|
||
├── 登录设备查看(API 已就绪,C 端入口未实现)
|
||
├── 移除登录设备(API 已就绪,C 端入口未实现)
|
||
└── 账号注销(API 已就绪,C 端入口未实现)
|
||
```
|
||
|
||
**当前完成度:** 部分完成
|
||
|
||
- 已完成:Apple ID 登录、会话恢复、Token 刷新、账号禁用/注销展示、个人资料查看与编辑
|
||
- 未完成:登录设备查看/移除无 C 端入口(API 已就绪)、账号注销无 C 端入口(API 已就绪)、隐私政策和用户协议页面未接入
|
||
|
||
---
|
||
|
||
## 2. 内容获取与管理
|
||
|
||
**能力说明:** 用户构建和管理个人学习知识库的完整能力,包括知识库的创建浏览、知识点的增删改查、外部资料的导入。
|
||
|
||
```
|
||
内容获取与管理
|
||
├── 知识库管理
|
||
│ ├── 创建知识库(封面、名称、描述)
|
||
│ ├── 浏览知识库列表(无限滚动分页)
|
||
│ ├── 筛选知识库(全部/我的/已订阅/官方)
|
||
│ ├── 搜索知识库(搜索逻辑未实现)
|
||
│ ├── 查看知识库详情(双 Tab:知识点 + 来源文件)
|
||
│ ├── 删除知识库
|
||
│ ├── 订阅/取消订阅公开知识库
|
||
│ └── 发现公开知识库
|
||
├── 知识点管理
|
||
│ ├── 手动添加知识点(标题 + 内容)
|
||
│ ├── 文件添加知识点(PDF/文本/图片,自动上传 COS)
|
||
│ ├── 查看知识点详情(多格式渲染:文本/Markdown/文件)
|
||
│ ├── 编辑知识点(标题 + 内容)
|
||
│ ├── 删除知识点(单个 + 批量)
|
||
│ ├── 排序知识点(默认/大小/创建时间/更新时间)
|
||
│ ├── 收藏知识点(UI 已实现,后端 API 未支持)
|
||
│ ├── 重命名知识点(TODO)
|
||
│ └── 移动知识点到文件夹(TODO)
|
||
├── 资料上传
|
||
│ ├── 文件导入(PDF/纯文本 → COS 上传)
|
||
│ ├── 相册导入(图片 → 压缩 → COS 上传)
|
||
│ ├── 链接导入(输入 URL)
|
||
│ └── 导入候选审核(AI 提取知识点 → 接受/拒绝/批量接受)
|
||
└── 文件夹管理
|
||
├── 创建文件夹
|
||
├── 重命名文件夹
|
||
└── 删除文件夹
|
||
```
|
||
|
||
**当前完成度:** 部分完成
|
||
|
||
- 已完成:创建知识库、列表浏览、详情查看、知识点增删改查、批量操作、资料导入(三种方式)、导入候选审核、文件夹管理、公开库订阅
|
||
- 未完成:搜索逻辑、官方筛选、收藏 API、重命名、移动到文件夹、知识库管理页
|
||
|
||
---
|
||
|
||
## 3. 学习执行
|
||
|
||
**能力说明:** 用户执行学习行为本身的能力,包括阅读资料、收集学习行为数据、做笔记。
|
||
|
||
```
|
||
学习执行
|
||
├── 文档阅读
|
||
│ ├── 多格式渲染(Markdown/文本/图片/EPUB/PDF/Word/Excel/PPT)
|
||
│ ├── 系统预览(QuickLook,PDF/Word/Excel)
|
||
│ ├── 外部打开(ShareLink,PPT)
|
||
│ ├── 标记已读/取消标记
|
||
│ ├── 阅读位置记录与恢复(API → 本地 → 会话三级优先级)
|
||
│ ├── 阅读会话管理(打开/暂停/恢复/关闭,前后台自动切换)
|
||
│ ├── 资料详情查看(AI 处理状态、文件元数据、阅读进度)
|
||
│ └── 触发知识提取(解析,60×2s 轮询)
|
||
├── 学习信息收集
|
||
│ ├── 阅读行为采集(Rust FFI V2:material_opened/closed/position_changed/heartbeat/marked_as_read)
|
||
│ ├── 专注学习会话(计时器、暂停/继续/结束、庆祝动画)
|
||
│ ├── 本地上传队列(事件暂存、去重、崩溃恢复)
|
||
│ └── 上传与重试(批量上传、网络恢复自动重试、401 暂停)
|
||
└── 阅读笔记
|
||
├── 创建笔记(自动记录锚点位置)
|
||
└── 查看笔记(知识点详情页笔记入口)
|
||
```
|
||
|
||
**当前完成度:** 部分完成
|
||
|
||
- 已完成:文档多格式渲染、阅读位置记录恢复、阅读会话管理、阅读行为采集(Rust FFI V2 + 上传队列)、阅读笔记
|
||
- 暂未确认:专注学习会话的 API 持久化(LearningSessionView 本地计时完成,服务端保存待确认)
|
||
- 待优化:解析触发使用硬编码 60×2s 轮询
|
||
|
||
---
|
||
|
||
## 4. AI 学习辅助
|
||
|
||
**能力说明:** AI 作为学习伙伴,通过对话、主动回忆、分析反馈等方式辅助用户学习。
|
||
|
||
```
|
||
AI 学习辅助
|
||
├── AI 对话
|
||
│ ├── 发送学习问题(流式接收 AI 回复)
|
||
│ ├── 查看 AI 思考过程(可折叠,含流式动画)
|
||
│ ├── 复制/重新生成 AI 回复
|
||
│ ├── 多会话管理(新建、切换、搜索、删除、归档、置顶)
|
||
│ └── 对话范围限定(知识库/资料/全局)
|
||
└── 主动回忆与 AI 反馈
|
||
├── 主动回忆(文字作答、语音作答占位)
|
||
├── 每日思考(查看思考题、提交回答)
|
||
├── 回忆测试(代码存在但无导航入口)
|
||
├── AI 分析反馈(评分、答对/答错拆解、参考答案、加入待巩固)
|
||
└── 薄弱知识点展示(掌握度分数、优先级标签)
|
||
```
|
||
|
||
**当前完成度:** 部分完成
|
||
|
||
- 已完成:AI 对话全部功能(流式对话、思考过程、会话管理、范围限定)
|
||
- 占位实现:主动回忆(硬编码问题)、AI 反馈(得分 78/100 硬编码)、每日思考(硬编码题目)、薄弱知识点(硬编码数据)、回忆测试(无入口 + 硬编码)
|
||
|
||
---
|
||
|
||
## 5. 测验与复习
|
||
|
||
**能力说明:** 通过 AI 生成测验和基于间隔重复的复习,帮助用户巩固知识。
|
||
|
||
```
|
||
测验与复习
|
||
├── 题目与测验
|
||
│ ├── AI 生成测验(基于知识库内容)
|
||
│ ├── 测验作答(选择题/判断题/填空题)
|
||
│ ├── 测验结果(得分、逐题详情与解析)
|
||
│ └── 重新测验
|
||
└── 间隔复习
|
||
├── 闪卡翻转(正面问题 → 反面答案)
|
||
├── 自评掌握度(四个等级)
|
||
└── 完成庆祝
|
||
```
|
||
|
||
**当前完成度:** 测验已完成;间隔复习为占位实现
|
||
|
||
- 已完成:测验生成、作答(三种题型)、结果展示、重新测验
|
||
- 占位实现:间隔复习(硬编码卡片,未接通 API)
|
||
- 注:ReviewViewModel 和 ReviewPlanViewModel 代码已就绪,但未与 View 连接
|
||
|
||
---
|
||
|
||
## 6. 学习结果与分析
|
||
|
||
**能力说明:** 展示学习数据分析结果,并提供智能的下一步学习推荐。
|
||
|
||
```
|
||
学习结果与分析
|
||
├── 学习分析
|
||
│ ├── 统计徽章(掌握度/总分钟/复习卡片/活跃天/阅读统计)
|
||
│ ├── 趋势图表(掌握度趋势、阅读时长趋势、每周活跃)
|
||
│ ├── 连续学习统计(当前连续/最长连续/最后活跃)
|
||
│ ├── 学习记录列表(最近 5 条)
|
||
│ ├── AI 综合分析(文字摘要)
|
||
│ └── 学习推荐(优先级标签)
|
||
└── 继续学习
|
||
└── 优先级算法(继续学习 > 未完成会话 > 今日复习 > 自我测试 > 开始学习 > 空状态引导)
|
||
```
|
||
|
||
**当前完成度:** 部分完成
|
||
|
||
- 已完成:统计徽章、阅读时长趋势图、连续统计、学习记录、学习推荐、继续学习算法、AI 综合分析文字
|
||
- 占位实现:掌握度趋势折线图(硬编码数据)、每周活跃柱状图(硬编码数据)
|
||
|
||
---
|
||
|
||
## 7. 消息与设置
|
||
|
||
**能力说明:** 管理应用全局设置、通知偏好和系统通知查看。
|
||
|
||
```
|
||
消息与设置
|
||
├── 设置与应用偏好
|
||
│ ├── 外观切换(深色/浅色/跟随系统,即时生效 API 保存)
|
||
│ ├── 复习提醒设置(提醒时间 + 间隔天数)
|
||
│ ├── 通知开关(复习提醒/导入完成/系统通知)
|
||
│ ├── 存储空间展示
|
||
│ ├── iCloud 同步开关(待确认)
|
||
│ └── 退出登录
|
||
├── 消息与通知
|
||
│ ├── 通知列表(按日期分组:今天/本周/更早)
|
||
│ ├── 标记已读(单条 + 全部)
|
||
│ └── 按类型显示图标颜色(10+ 种类型)
|
||
└── 学习偏好配置
|
||
├── 学习目标设置(4 选 1,API 保存)
|
||
├── 每日学习时长(4 选 1,仅本地 @State,不持久化)
|
||
└── 学习方法偏好(多选,API 保存)
|
||
```
|
||
|
||
**当前完成度:** 部分完成
|
||
|
||
- 已完成:外观切换、复习提醒设置、通知列表与已读标记、学习目标保存、方法偏好保存、退出登录
|
||
- 存在 bug:三个通知开关绑定到同一状态变量
|
||
- 待确认:iCloud 同步实际后端能力
|
||
- 部分完成:每日学习时长不持久化
|
||
|
||
---
|
||
|
||
## 8. 合规与支持
|
||
|
||
**能力说明:** 用户反馈提交和合规相关页面入口。
|
||
|
||
```
|
||
合规与支持
|
||
├── 帮助与反馈
|
||
│ ├── 选择反馈类型(Bug/建议/内容/其他)
|
||
│ ├── 输入反馈内容
|
||
│ └── 提交反馈
|
||
├── 隐私政策(入口未接入)
|
||
└── 用户协议(入口未接入)
|
||
```
|
||
|
||
**当前完成度:** 部分完成
|
||
|
||
- 已完成:帮助与反馈
|
||
- 未完成:隐私政策页面、用户协议页面
|
||
|
||
---
|
||
|
||
## 业务能力汇总表
|
||
|
||
| 序号 | 业务领域 | 业务能力数 | 完成度 | 关键缺失 |
|
||
|------|---------|-----------|--------|---------|
|
||
| 1 | 账号与用户 | 4 | 部分完成 | 设备管理无入口、账号注销无入口、合规页面未接入 |
|
||
| 2 | 内容获取与管理 | 4 | 部分完成 | 搜索逻辑、官方库筛选、KB管理页、收藏API、重命名、移动到文件夹 |
|
||
| 3 | 学习执行 | 3 | 部分完成 | LearningSessionView API持久化暂未确认 |
|
||
| 4 | AI 学习辅助 | 2 | 部分完成 | 主动回忆与AI反馈全部硬编码 |
|
||
| 5 | 测验与复习 | 2 | 部分完成 | 间隔复习硬编码未接API |
|
||
| 6 | 学习结果与分析 | 2 | 部分完成 | 图表数据为占位实现 |
|
||
| 7 | 消息与设置 | 3 | 部分完成 | 通知开关bug、合规入口缺失、每日时长不持久化 |
|
||
| 8 | 合规与支持 | 1(+2) | 部分完成 | 隐私政策、用户协议入口未接入 |
|
||
|
||
---
|
||
|
||
> **阶段划分说明:** 本能力树为 C 端视角。跨项目的完整能力展开仅对"文档阅读"和"学习信息收集"两个能力进行了试点分析(见 capabilities/ 目录)。
|