# 决策记录

> 记录每次讨论的结论和决策

---

## 2025-01-29 第一次讨论

### 讨论主题
项目背景、商业模式、角色分析、课程体系、教学场景

### 已确认的结论

#### 1. 项目定位
- 面向幼儿园的B2B2C阅读教学服务平台
- 将优质绘本资源包装成教学课程
- 帮助幼儿园老师更好地完成教学工作

#### 2. 平台架构
- 超管端：管理所有租户、内容、数据
- 租户端：学校端、教师端、家长端

#### 3. 盈利模式
- 按年/学期向幼儿园收费
- 不同课程套餐包（基础/标准/高级）
- 根据课程开展频次和地区需求定制

#### 4. 竞争优势
- 独家版权绘本资源
- 专业教研团队
- 强大的研发能力

#### 5. 角色核心诉求
| 角色 | 核心诉求 |
|-----|---------|
| 超管端 | 租户管理、内容管理、数据统计、运营监控 |
| 学校端 | 教师管理、教学监督、数据报表、套餐管理 |
| 教师端 | 备课、上课、活动开展、测评记录、家校沟通 |
| 家长端 | 了解情况、配合教育、查看成长、亲子共读 |

#### 6. 课程体系
- 课程构成：电子绘本 + 教学教案 + 教学课件 + 互动练习
- 分级：小班、中班、大班
- 标签：五大领域（健康/语言/社会/科学/艺术）+ 子主题

#### 7. 教学场景
- 一日活动：绘本教学 → 五大领域延伸活动
- 延伸活动形式：动手、交流、游戏等，丰富多样

#### 8. 测评功能
- 过程化展示，非简单打分
- 展示：阅读数量、内容覆盖、成长情况、成长轨迹
- 支持角色：教师端记录、家长端查看

### 待继续讨论

- [ ] 教师端一节课的完整流程
- [ ] 五大领域延伸活动的平台支持方式
- [ ] 测评数据的具体来源和记录方式
- [ ] 《3-6岁儿童学习与发展指南》文档

---

## 下次讨论重点

1. 教师端核心流程详解
2. 延伸活动的素材准备和支持方式
3. 测评/成长档案的详细设计

---

## 2025-01-29 第二次讨论（下午）

### 讨论主题
《3-6岁儿童学习与发展指南》解读与应用

### 已确认的结论

#### 1. 指南文档已获取
- 来源：教育部《3-6岁儿童学习与发展指南》（2012年9月）
- 位置：已复制到项目文件夹作为参考资料

#### 2. 五大领域官方结构确认

| 领域 | 子领域数量 | 目标数量 |
|-----|-----------|---------|
| 健康 | 3个 | 9个 |
| 语言 | 2个 | 6个 |
| 社会 | 2个 | 6个 |
| 科学 | 2个 | 6个 |
| 艺术 | 2个 | 4个 |
| **合计** | **11个** | **31个** |

#### 3. 标签体系层级设计

```
一级：五大领域（5个）
  └─ 二级：子领域（11个）
      └─ 三级：发展目标（31个）
          └─ 四级：年龄段指标（93个）
```

#### 4. 测评维度设计方向
- 基于指南的31个目标设计测评维度
- 过程化展示：阅读数量、领域覆盖、能力发展、成长轨迹
- 五大领域可视化呈现（星级或进度条）

#### 5. 项目文档更新
- ✅ 创建《06-指南解读与应用.md》
- ✅ 更新《03-课程体系.md》标签体系部分
- ✅ 复制指南文档到项目文件夹

### 待继续讨论

- [ ] 教师端一节课的完整流程
- [ ] 五大领域延伸活动的平台支持方式
- [ ] 测评数据的具体来源和记录方式
- [ ] 完整的标签体系编码方案
- [ ] 教案模板的标准化设计

---

## 2025-01-29 第三次讨论（下午续）

### 讨论主题
课程包详细设计与教师端功能设计

### 已确认的结论

#### 1. 课程包定位明确
- **核心价值**："傻瓜式"完整教学解决方案
- **覆盖范围**："一日活动"全流程（课前-课中-课后）
- **设计理念**：老师只需熟悉内容，跟着指引执行

#### 2. 课程包内容结构
| 组成部分 | 具体内容 |
|---------|---------|
| 绘本数字资源 | 电子绘本、配套音频、配套视频 |
| 教学课件 | 互动PPT、动画组件、互动组件 |
| 课堂计划 | 导入/引导/共读/活动/结束的完整脚本 |
| 延伸活动 | 线上多媒体素材+线下素材说明+活动指引 |
| 测评工具 | 观察记录表、参与情况记录、掌握情况评估 |

#### 3. 教师权限
| 可做 | 不可做 |
|-----|--------|
| 浏览预览全部内容 | 修改课程包内容 |
| 熟悉课程流程 | 下载课程包内容 |
| 调整执行步骤 | 分享给非授权用户 |
| 记录反馈 | - |

#### 4. 更新迭代机制
- 教研团队制作课程包
- 提供反馈渠道给老师
- 根据反馈优化更新

#### 5. 测评维度
比之前更丰富，包括：
- 一日活动参与情况
- 孩子掌握情况
- 月度成长情况
- 阶段性测试结果

### 项目文档更新

| 文档 | 更新内容 |
|-----|---------|
| `07-课程包设计.md` | ✅ 新建，完整记录课程包设计 |
| `08-教师端功能设计.md` | ✅ 新建，教师端完整功能设计 |

### 待继续讨论

- [ ] 超管端功能设计
- [ ] 学校端功能设计
- [ ] 家长端功能设计
- [ ] 技术形态选择（Web/App/小程序）
- [ ] MVP阶段功能优先级

---

---

## 2025-02-04 第四次讨论

### 讨论主题
超管端功能设计、教师端课程包使用流程

### 已确认的结论

#### 1. 超管端核心功能明确
| 模块 | 功能 |
|-----|------|
| 课程包制作工作台 | 6步完整流程：基础信息→数字资源→教学课件→课堂计划→延伸活动→测评工具 |
| 课程包管理 | 列表、筛选、状态流转（草稿→审核→发布→下架/迭代） |
| 课程包数据统计 | 使用学校数、教师数、授课次数、教师反馈汇总 |
| 租户管理 | 开通学校、套餐配置、课程授权、账号管理 |
| 资源库管理 | 绘本库、多媒体素材、模板库 |
| 数据统计看板 | 平台整体数据、课程排行、学校排行、反馈汇总 |
| 系统配置 | 标签体系、年级配置、权限角色、参数配置 |

#### 2. 课程包制作流程
```
新建课程包 → 上传数字资源 → 配置教学课件 → 编辑教学脚本（核心）
→ 配置延伸活动 → 配置测评工具 → 预览测试 → 提交审核 → 审核发布 → 发布后监控
```

#### 3. 课程包审核机制
- 审核检查项：内容完整性、教学科学性、素材质量、标签准确性、版权合规
- 审核通过后发布，不通过返回修改
- 支持版本迭代和历史记录

#### 4. 教师端使用流程
```
浏览课程包 → 查看详情 → 备课模式（熟悉内容/准备素材）
→ 上课模式（按脚本执行）→ 结束上课 → 快速记录 → 详细反馈 → 测评记录
```

#### 5. 教师端核心模式
| 模式 | 功能 |
|-----|------|
| 浏览模式 | 筛选、搜索、查看课程包详情 |
| 备课模式 | 左侧导航+右侧预览+备课笔记+素材清单 |
| 上课模式 | 大屏展示+环节导航+互动组件+工具栏（暂停/音频/课件/笔记/计时器） |
| 反馈模式 | 快速记录+详细反馈表+测评记录 |

#### 6. 教师端权限边界
- ✅ 可以：浏览、预览、使用、记录、反馈、添加笔记、管理班级
- ❌ 不能：修改课程包、下载课程包、分享给他人、访问未授权课程

#### 7. 数据闭环
```
超管端发布 → 教师端使用 → 反馈数据回流 → 超管端迭代优化
```

### 项目文档更新

| 文档 | 更新内容 |
|-----|---------|
| `10-超管端功能设计.md` | ✅ 新建，完整超管端功能设计 |
| `08-教师端功能设计-补充.md` | ✅ 新建，详细课程包查看与使用流程 |

### 待继续讨论

- [ ] 课程包是否支持版本历史记录？
- [ ] 课程包下架后，已使用该课程的学校是否仍能查看？
- [ ] 上课模式是否需要支持离线使用？
- [ ] 教师笔记是否支持导出？
- [ ] 待上清单是否支持周期性自动排课？

---

## 后续讨论方向（待继续）

### 按优先级排序

**高优先级（必须完成）：**
1. ✅ 超管端功能设计（管理课程包、租户、数据）
2. ✅ 教师端课程包使用流程
3. 技术形态决策（Web/App/小程序）
4. MVP阶段功能范围确定

**中优先级（重要）：**
5. 学校端功能设计（园长/管理员视角）
6. 数据统计与报表设计

**低优先级（可后续）：**
7. 家长端功能设计（MVP阶段可不做）
8. 详细的原型设计

---

## 2025-02-04 第五次讨论

### 讨论主题
技术形态决策、MVP功能范围

### 已确认的结论

#### 1. 技术形态决策
| 端 | 技术形态 | 说明 | 实现版本 |
|---|---------|------|---------|
| 超管端 | Web端 | PC浏览器访问，复杂内容管理操作 | ✅ MVP |
| 学校端 | Web端 | PC浏览器访问，数据查看和管理 | ✅ MVP |
| 教师端 | Web端 | PC/平板浏览器访问，支持投屏上课 | ✅ MVP |
| 家长端 | H5响应式 | 手机/平板访问，支持微信内打开 | ⬜ V2 |

#### 2. MVP第一版范围
**目标：验证商业模式和课程包价值**

| 端 | 核心功能 |
|---|---------|
| 超管端 | 课程包制作、课程包管理、租户管理、资源库、基础数据统计 |
| 学校端 | 教师管理、课程授权查看、基础数据看板 |
| 教师端 | 课程中心、备课模式、上课模式、班级管理、反馈记录 |

**不包含：**
- 家长端（V2版本实现）
- 复杂的数据分析（MVP仅基础统计）
- AI相关功能（后续版本）

#### 3. MVP验证指标
- 内容完成度：≥10个课程包（覆盖小/中/大班）
- 试点学校：≥5所幼儿园
- 活跃教师：≥20人
- 使用次数：≥100次授课
- 反馈收集：≥50条反馈
- 付费意愿：≥2所续费意向

#### 4. 开发顺序（预计12-14周）
1. Phase 1：基础框架（2周）- 架构、认证、权限、标签体系
2. Phase 2：超管端核心（3-4周）- 课程包制作、管理、租户
3. Phase 3：教师端核心（3-4周）- 课程中心、备课、上课
4. Phase 4：学校端（2周）- 教师管理、数据看板
5. Phase 5：反馈与数据（2周）- 反馈收集、测评、统计

### 项目文档更新

| 文档 | 更新内容 |
|-----|---------|
| `11-技术形态与MVP范围.md` | ✅ 新建，技术选型、MVP功能清单、开发计划 |

### 待继续讨论

- [ ] 前端技术栈选择（Vue vs React）
- [ ] 后端技术栈选择（Node.js vs Java vs Go）
- [ ] 是否需要支持离线使用（教师端上课模式）
- [ ] 数据模型设计
- [ ] API接口设计

---

## 后续讨论方向（待继续）

### 按优先级排序

**已完成：**
1. ✅ 超管端功能设计（管理课程包、租户、数据）
2. ✅ 教师端课程包使用流程
3. ✅ 技术形态决策（Web端 vs App vs 小程序）
4. ✅ MVP阶段功能范围确定

**下一步：**
5. 学校端功能设计（园长/管理员视角）
6. 数据统计与报表设计
7. 数据模型设计
8. API接口设计

---

## 2025-02-04 第六次讨论

### 讨论主题
学校端功能设计、数据模型与API设计

### 已确认的结论

#### 1. 学校端功能设计完成
| 模块 | 功能 |
|-----|------|
| 首页看板 | 学校数据概览、授课趋势、活跃教师/课程排行、套餐状态 |
| 教师管理 | 教师列表、新增/编辑教师、教师详情、数据查看 |
| 课程管理 | 已授权课程包、课程包使用数据、教师反馈汇总 |
| 学生管理 | 学生列表、班级管理、学生成长档案 |
| 套餐管理 | 套餐详情、使用情况、到期信息、套餐对比 |
| 数据报表 | 授课统计、教师活跃度、课程包排行、班级数据、学生阅读统计 |
| 系统设置 | 学校信息、年级班级配置、通知设置 |

#### 2. 数据模型设计完成
- **15张核心表**：租户、教师、学生、班级、课程包、课程资源、课程脚本、逐页配置、延伸活动、授课记录、课程反馈、学生测评、标签、租户课程授权
- **实体关系**：租户 → 教师 → 班级 → 学生，课程包 → 授课记录
- **数据权限**：超管端（全部数据）→ 学校端（本校数据）→ 教师端（自己班级数据）

#### 3. API接口设计完成
- **接口规范**：HTTPS + JSON + JWT认证
- **超管端API**：课程包CRUD、资源管理、脚本管理、租户管理
- **学校端API**：教师管理、学生管理、班级管理、数据统计
- **教师端API**：课程包浏览、备课、上课、反馈、测评
- **公共API**：标签体系、年级配置、文件上传

### 项目文档更新

| 文档 | 更新内容 |
|-----|---------|
| `12-学校端功能设计.md` | ✅ 新建，学校端完整功能设计 |
| `13-数据模型与API设计.md` | ✅ 新建，15张核心表设计、API接口规范 |

### 待继续讨论

- [ ] 前端技术栈选择（Vue vs React）
- [ ] 后端技术栈选择（Node.js vs Java vs Go）
- [ ] 数据库选型确认
- [ ] 开发环境搭建

---

## 后续讨论方向（待继续）

### 按优先级排序

**已完成：**
1. ✅ 超管端功能设计（管理课程包、租户、数据）
2. ✅ 教师端课程包使用流程
3. ✅ 技术形态决策（Web端 vs App vs 小程序）
4. ✅ MVP阶段功能范围确定
5. ✅ 学校端功能设计（园长/管理员视角）
6. ✅ 数据模型设计
7. ✅ API接口设计

**下一步（技术选型）：**
8. 前端技术栈确认
9. 后端技术栈确认
10. 数据库选型确认
11. 开发环境搭建

**后续版本：**
12. 家长端功能设计（V2版本实现）
13. 详细的原型设计
14. UI/UX设计

---

## 2025-02-04 第七次讨论

### 讨论主题
项目开发启动 - 技术选型确认与项目初始化

### 已确认的结论

#### 1. 技术栈最终确认
| 层级 | 技术选择 | 版本 |
|-----|---------|------|
| 前端框架 | Vue 3 | ^3.4.0 |
| 构建工具 | Vite | ^5.0.0 |
| UI组件库 | Ant Design Vue | ^4.0.0 |
| 状态管理 | Pinia | ^2.1.0 |
| 后端框架 | NestJS | ^10.0.0 |
| ORM | Prisma | ^5.0.0 |
| 数据库 | PostgreSQL | ^15.0.0 |
| 认证 | JWT + Passport | - |

#### 2. 项目初始化完成
- ✅ 前端项目结构创建（Vue3 + Vite + Ant Design Vue）
- ✅ 后端项目结构创建（NestJS + Prisma）
- ✅ 数据库模型定义（15张核心表）
- ✅ 路由配置（三端路由分离）
- ✅ 认证系统框架
- ✅ API请求封装

#### 3. 已创建的文件
**前端核心文件：**
- package.json - 依赖配置
- vite.config.ts - Vite配置
- src/router/index.ts - 路由配置
- src/stores/user.ts - 用户状态管理
- src/api/index.ts - API封装
- src/api/auth.ts - 认证API
- src/views/auth/LoginView.vue - 登录页
- src/views/admin/LayoutView.vue - 超管端布局
- src/views/admin/DashboardView.vue - 超管端首页
- src/views/admin/courses/CourseListView.vue - 课程包列表

**后端核心文件：**
- package.json - 依赖配置
- prisma/schema.prisma - 数据库模型（15张表）
- src/main.ts - 应用入口
- src/app.module.ts - 根模块

#### 4. 项目已就绪
| 项目 | 状态 | 目录 |
|-----|------|-----|
| 前端项目 | ✅ 结构已完成 | `/Users/retirado/ccProgram/reading-platform-frontend/` |
| 后端项目 | ✅ 结构已完成 | `/Users/retirado/ccProgram/reading-platform-backend/` |
| 文档 | ✅ 开发指南已创建 | `/Users/retirado/ccProgram/reading-platform/README.md` |

### 项目文档更新

| 文档 | 更新内容 |
|-----|---------|
| `14-技术选型与项目初始化.md` | ✅ 新建，技术栈确认、项目结构、开发计划 |
| `reading-platform/README.md` | ✅ 新建，完整开发指南 |
| 前端项目 | ✅ 多个核心文件已创建 |
| 后端项目 | ✅ 多个核心文件已创建 |

### 下一步开发任务

- [x] 安装项目依赖（前端、后端）
- [x] 启动数据库（SQLite，开发阶段）
- [x] 配置环境变量
- [x] 运行Prisma迁移
- [x] 实现认证系统完整功能
- [x] 实现权限管理（角色守卫）
- [ ] 开发超管端课程包CRUD（进行中）
- [ ] 开发教师端课程中心
- [ ] 开发学校端基础功能

---

## 2025-02-12 第八次讨论

### 讨论主题
超管端课程包管理模块开发与测试

### 已完成的工作

#### 1. 代码审查与问题修复

| 问题 | 修复内容 |
|-----|---------|
| 认证守卫缺失 | course.controller.ts 添加 JwtAuthGuard 和 RolesGuard |
| 角色守卫未实现 | 创建 roles.decorator.ts 和 roles.guard.ts |
| 冗余文件 | 删除 course 模块下的 .js 文件 |
| 字段清除错误 | course.service.ts 中 fieldsToClear 数组修复 |
| 测试代码残留 | CourseEditView.vue 中移除测试注释 |

#### 2. Bug 修复

| Bug | 修复方案 |
|-----|---------|
| 其他素材不回显 | CourseEditView.vue 中字段名从 `data.otherPaths` 改为 `data.otherResources` |
| 文件大小限制过小 | 从 50MB 更新到 300MB（前后端同步修改） |
| 电子绘本不支持 pptx | file-upload.service.ts 中 ebook 类型添加 ppt/pptx MIME 类型支持 |

#### 3. 文件大小限制配置

| 文件类型 | 最大大小 |
|---------|---------|
| 封面图 (COVER) | 10MB |
| 电子书 (EBOOK) | 300MB |
| 音频 (AUDIO) | 300MB |
| 视频 (VIDEO) | 300MB |
| PPT | 300MB |
| 海报 (POSTER) | 10MB |
| 其他 (OTHER) | 300MB |

#### 4. 电子书支持的文件格式

- PDF (`application/pdf`)
- PPT (`application/vnd.ms-powerpoint`)
- PPTX (`application/vnd.openxmlformats-officedocument.presentationml.presentation`)

### 修改的文件

**后端：**
- `src/modules/course/course.controller.ts` - 添加认证守卫
- `src/modules/course/course.service.ts` - 修复字段清除逻辑
- `src/modules/file-upload/file-upload.controller.ts` - 更新文件大小限制
- `src/modules/file-upload/file-upload.service.ts` - 更新文件大小限制、添加 pptx 支持
- `src/modules/common/decorators/roles.decorator.ts` - 新建
- `src/modules/common/guards/roles.guard.ts` - 新建

**前端：**
- `src/views/admin/courses/CourseEditView.vue` - 修复其他素材回显、移除测试代码
- `src/api/file.ts` - 更新文件大小限制

### 当前开发状态

**超管端课程包管理模块：**
- [x] 课程包列表页面
- [x] 课程包创建页面（6步表单）
- [x] 课程包编辑页面
- [x] 课程包详情页面
- [x] 文件上传功能
- [x] 草稿保存功能
- [x] 数据回显功能
- [ ] 测试完成，待继续开发

### 下一步任务

- [ ] 继续测试课程包创建流程
- [ ] 开发课程包审核功能
- [ ] 开发课程包发布/下架功能
- [ ] 开发教师端课程中心

---

## 2026-02-13 第九次讨论

### 讨论主题
资源库开发策略确认与文档统一更新

### 已确认的结论

#### 1. 资源库开发策略（三阶段）

根据 `11-技术形态与MVP范围.md` 文档，MVP阶段P0优先级为课程包制作和管理核心功能，资源库（P1）可在核心功能完成后再开发。

**第一阶段（当前）：完成课程包核心功能**
- 课程包创建/编辑 - 直接上传资源到课程包
- 课程包审核/发布流程
- 课程包列表管理
- 关联绘本：使用简单的文本输入框（手动输入绘本名称）

**第二阶段（后续）：完善资源库**
- 开发资源库的完整管理功能
  - 绘本库：绘本资源管理（名称、作者、适切年级、封面、授权状态）
  - 多媒体素材库：音频、视频、图片、互动组件管理
  - 模板库：教学脚本模板、记录表模板、评估表模板
- 课程包中已上传的资源可选择性同步到资源库

**第三阶段（整合优化）：重构资源选择逻辑**
- 课程包编辑时提供两种选择方式：
  1. **从资源库选择** - 引用已有资源
  2. **上传新资源** - 同时添加到资源库和课程包
- 关联绘本：改为从绘本库选择 + 支持新增绘本

#### 2. 当前开发状态确认

**已完成**:
- ✅ 项目架构搭建
- ✅ 用户认证系统
- ✅ 权限管理系统
- ✅ 标签体系初始化
- ✅ 课程包制作工作台（6步流程）
- ✅ 课程包管理（草稿/发布/审核）
- ✅ 课程包审核流程
- ✅ 教师端课程中心
- ✅ 教师端备课模式
- ✅ 教师端上课模式

**进行中**:
- 🔄 租户管理
- 🔄 班级管理
- 🔄 学校端框架

**待开发（第二阶段）**:
- ⬜ 资源库管理
- ⬜ 数据统计看板

#### 3. 文档更新要求

所有文档需要与当前开发情况和目标保持一致，确保后续开发过程中回溯文档寻找依据时查询到的依据都是正确的。

### 项目文档更新

| 文档 | 更新内容 |
|-----|---------|
| `开发进展记录.md` | ✅ 添加资源库开发策略部分 |
| `README.md` | ✅ 更新项目状态、技术栈、开发进度 |
| `99-决策记录.md` | ✅ 添加资源库开发策略决策 |

### 下一步任务

- [ ] 完成课程包编辑功能测试
- [ ] 完成教师端端到端测试
- [ ] 开发资源库管理（第二阶段）
- [ ] 开发数据统计看板
