kindergarten_java/docs/design/99-决策记录.md
2026-02-28 16:41:39 +08:00

647 lines
20 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 决策记录
> 记录每次讨论的结论和决策
---
## 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` | ✅ 添加资源库开发策略决策 |
### 下一步任务
- [ ] 完成课程包编辑功能测试
- [ ] 完成教师端端到端测试
- [ ] 开发资源库管理(第二阶段)
- [ ] 开发数据统计看板