教学平台首期纵向闭环开发设计 V0.1
状态:开发工作稿
目标:先跑通一条真实课堂链路,不并行建设完整平台
日期:2026-08-02
后续说明:本文件记录已经完成的 P0 固定任务模板闭环,不再作为后续课程中心与智能课件编辑器的排除依据。2026-08-07 确认的下一阶段需求见《教学平台课程中心与智能课件产品需求 V0.1》。
一、首期只验证什么
首期只验证以下闭环:
总部教研配置固定任务模板
→ 教师向班级发布任务
→ 学生通过课堂码登录
→ 学生查看 HTML/资源并完成客观题或提交成果
→ 教师查看学生提交
→ 教师或学生将成果归入学生个人作品空间
首期不验证自由节点编辑、多校区批量运营、实时课堂监控、外部 AI 工具打通、Android 客户端或 Electron 客户端。
二、P0 角色与页面
| 角色 | P0 页面 | 只做什么 |
|---|---|---|
| 总部管理员 | 校区、教师、班级、学生管理 | 建立两家校区和试点班级的基础数据 |
| 总部教研 | 任务模板列表、新建/编辑模板 | 配置固定任务与节点 |
| 教师 | 我的班级、发布任务、提交查看 | 发布、补发、撤回、查看提交 |
| 学生 | 课堂登录、任务列表、任务页、作品空间 | 完成、提交、查看个人作品 |
校区负责人首期复用管理员的“本校区范围”页面,不单独设计复杂后台。
三、固定任务模板
首期不开发任意流程编辑器。教研创建任务时按固定表单配置:
任务名称
适用课次(可选)
教师说明
学生说明
是否可形成作品
节点列表
节点首期只支持以下类型:
| 节点 | 学生端行为 |
|---|---|
| 图文/图片 | 阅读或观看 |
| 外部网页 | 在新窗口打开 |
| HTML | 在隔离区域打开单个 HTML 或 ZIP 包 |
| 单选题 | 选择一个答案,自动判分 |
| 多选题 | 选择多个答案,自动判分 |
| 文字提交 | 输入简短文字 |
| 图片/文件提交 | 上传课堂成果 |
P0 中 HTML 先作为可运行内容节点;客观题和提交节点由平台记录结果。HTML 内部自动回传复杂结果的 SDK 协议保留接口,但不作为首期闭环的前置开发项。
四、登录与权限
学生课堂登录
打开课堂链接 / 输入课堂码
→ 选择本人头像(小学学生同时显示姓名)
→ 输入图片密码或简单密码
→ 进入自己的任务列表
课堂码只定位班级,不能直接进入某个学生的私人数据。学生完成验证后才可访问其任务提交和作品空间。
权限边界
- 总部管理员:全部校区数据;
- 总部教研:课程和任务模板,不读取无关学生作品;
- 教师:仅自己班级、已发布任务和本班学生提交;
- 学生:仅自己账号、任务和作品空间;
- 校区负责人:仅本校区数据。
五、关键页面流程
1. 教研配置
任务模板列表
→ 新建模板
→ 添加节点
→ 保存为可发布模板
首期节点按顺序排列,支持新增、删除、上下移动,不支持画布式拖拽、分支和协作编辑。
2. 教师发布
我的班级
→ 选择班级
→ 选择任务模板
→ 发布
发布后可:补发给单个学生、撤回任务、查看完成名单与提交内容。
3. 学生完成
课堂登录
→ 任务列表
→ 打开任务
→ 按顺序浏览节点
→ 回答客观题或上传成果
→ 提交
任务页不做课堂实时同步。学生可在一次任务内随时保存草稿,正式提交后允许按任务设置重做。
4. 作品归档
学生提交图片/文件/HTML
→ 教师查看
→ 标记为“归入作品空间”
→ 学生账号中的作品空间显示该作品
若教研将任务配置为“可形成作品”,学生完成后也可自行保存为草稿作品;教师确认后显示为已完成作品。
六、P0 数据模型
Campus(校区)
User(教师、管理人员账号)
StudentProfile(学生档案与头像/密码)
Classroom(班级)
Enrollment(学生—班级关系)
TaskTemplate(固定任务模板)
TaskNode(模板节点)
TaskRelease(教师发布记录)
TaskRecipient(任务接收学生)
Submission(一次学生提交)
Answer(客观题答案与得分)
Asset(图片、文件、HTML 包)
PortfolioItem(学生作品)
必须建立的关系:
TaskTemplate 不能被发布记录直接覆盖
TaskRelease 必须保存发布时的任务快照
Submission 必须归属到学生、任务发布和任务接收记录
PortfolioItem 必须归属学生,不归属班级
Asset 必须通过业务记录鉴权,不能只依赖公开文件地址
七、P0 API 清单
| 范围 | 接口示例 |
|---|---|
| 学生登录 | POST /api/v1/student-sessions |
| 班级与学生 | GET/POST /api/v1/classes、/students |
| 任务模板 | GET/POST /api/v1/task-templates |
| 任务发布 | POST /api/v1/task-releases、POST /reissue、POST /withdraw |
| 学生任务 | GET /api/v1/my/tasks、GET /api/v1/my/tasks/:id |
| 提交与答题 | POST /api/v1/submissions |
| 文件上传 | POST /api/v1/assets/upload-url |
| 作品空间 | GET /api/v1/my/portfolio、POST /api/v1/portfolio-items |
具体 URL 可在实现时调整,但接口边界不应混淆:教师发布、学生完成、文件上传和作品归档各自独立。
八、开发顺序
阶段 A:项目骨架
- 创建独立
AI教学平台代码仓库; - 初始化 Next.js、TypeScript、PostgreSQL、Prisma 和基础界面组件;
- 建立开发、测试、正式环境变量结构;
- 建立基础数据模型和种子数据。
阶段 B:组织与登录
- 校区、班级、学生、教师基础管理;
- 管理人员与教师登录;
- 课堂码、学生头像选择和简单密码登录;
- 最小权限校验。
阶段 C:教研与教师任务
- 固定任务模板编辑表单;
- 节点编辑、保存和模板列表;
- 教师选班级、选模板、发布、补发、撤回;
- 发布任务快照。
阶段 D:学生完成与提交
- 学生任务列表和任务页;
- 单选、多选自动判分;
- 文字、图片、文件上传;
- 教师提交查看页。
阶段 E:作品空间
- 学生个人作品列表;
- 教师将提交归档为作品;
- HTML/文件/图片作品访问;
- 基础作品标题、说明和状态。
九、P0 验收用例
用一名教研、一名教师、一个 6—8 人班级完成以下实测:
- 管理员建立校区、班级、教师与学生;
- 教研创建一个含图片、HTML、单选题、多选题和图片提交的固定任务;
- 教师将任务发布给班级,并向一名学生补发;
- 学生通过课堂码、头像和简单密码进入任务;
- 学生完成两类客观题并上传一张图片;
- 教师在班级任务中找到该学生提交;
- 教师将图片归档到该学生作品空间;
- 学生再次登录后,在个人作品空间看到该作品;
- 教师撤回任务,学生端不再显示任务,但教师端历史提交仍可查。
上述用例全部通过后,才开始扩展课件类型、校区运营能力和多端客户端。
本页由 Markdown 自动生成。更新内容时请先修改源 Markdown,再重新生成网站 HTML。