EPA-015 Offline Class Zone
线下课专区用于把赵书华线下授课搬到 EAOS:每一次线下课都形成一个私密班级空间,承接 HTML 课件、手机号入班、现场跟做、答题提交、课前课后资料包、授课记录和老师端进度看板。
Positioning
服务对象是已经报名某一次线下课的学员和授课老师。它解决的不是公开获客,而是让线下课堂的学习过程被记录、被互动、被复访,并把学员留在网站后续继续登录学习。
Access Model
| Layer | MVP behavior | Production requirement |
|---|---|---|
| 班级入口 | /offline/?code=班级邀请码 | 邀请码只作为入口参数,不能作为唯一权限 |
| 登录身份 | 本地手机号演示 | 手机号验证码、会话、设备风控 |
| 成员校验 | localStorage 报名记录 | 服务端 OfflineEnrollment 校验 |
| 课件访问 | HTML 地址嵌入页面 | 对象存储签名 URL 或服务端鉴权 |
| 老师看板 | 后台运营面板 + 本地表格 | RBAC、审计日志、导出权限 |
生产版不得依赖前端隐藏实现私密。任何 HTML 课件、资料包、成果提交和手机号都必须走服务端权限校验。
Core Workflow
- 老师或运营在后台创建线下课专区,填写标题、授课时间、地点、HTML 课件地址和班级邀请码。
- 系统生成班级链接,例如
/offline/?code=ZSH-AI-0712。 - 学员打开链接,用手机号进入本班。
- 平台校验入班状态后签发 HTML 课件、课前包和课后包的限时访问链接。
- 学员查看课前大礼包,现场打开 HTML 课件。
- 学员按步骤标记完成,并提交答题、提示词、截图链接、在线文档或课后迁移计划。
- 系统把完成步骤和提交成果写入进度与提交记录,并给学员发放积分。
- 老师在后台运营面板查看本班链接、入班人数、近 2 小时活跃、平均完成率、成果数量和最近提交,再进入明细表查看单人进度、提交内容和授课记录。
- 课后大礼包、论坛、社群和学习产品继续承接复访。
日常批量建班流程:赵书华只需要给出日期、讲座名称和班级名称,运营后台即可自动生成启用状态的私密班级、邀请码、班级链接、讲授版 HTML 资源位和跟做版 HTML 资源位。学员拿到链接后使用手机号和邀请码进入。
Data Objects
| Object | Purpose | Key fields |
|---|---|---|
OfflineClass | 一次线下课私密专区 | title, inviteCode, status, privacy, teacherName, startsAt, venue, htmlCoursewareUrl, followAlongCoursewareUrl, lectureSeriesId, lectureNo, package JSON, steps JSON, activities JSON |
OfflineEnrollment | 某手机号或用户加入某班 | offlineClassId, userId, phoneHash, role, status, inviteCode, enrolledAt, lastSeenAt |
OfflineProgress | 学员完成 HTML 课件步骤 | offlineClassId, userId, phoneHash, stepId, status, completedAt |
OfflineSubmission | 答题、跟做和成果提交 | offlineClassId, userId, phoneHash, activityId, response, evidenceUrl, pointsAwarded, status, submittedAt |
手机号在生产数据库中应优先存 phoneHash 和加密联系方式,不在普通后台表格中裸露。
Student Experience
学员端必须在手机和电脑都能完成:
- 输入手机号和班级邀请码。
- 查看当前班级、授课时间、老师、地点和完成率。
- 打开 HTML 课件。
- 查看课前大礼包和课后大礼包。
- 按现场节奏完成步骤。
- 提交答题、跟做说明、成果链接和迁移计划。
- 通过同一手机号下次继续登录。
- 完成有效任务后进入统一积分流水。
Teacher Experience
老师端必须支持:
- 新建线下课专区。
- 复制本班链接发给学员。
- 在“线下课运营面板”查看班级状态、入班人数、近 2 小时活跃、提交数量、平均完成率、最近提交和证据链接。
- 从班级卡片直接打开本班链接,或复制链接发给学员。
- 查看脱敏手机号、单人完成进度、最后进入时间。
- 查看每个活动的提交内容、证据链接和积分发放。
- 查看每次授课记录。
- 归档已经结束的线下课,但保留数据和审计。
Package Rules
每个线下课专区都必须有课前和课后大礼包。
课前大礼包建议包含:
- 入班说明和设备准备清单。
- 本节课预习材料。
- 基础提示词或模板。
- 需要提前准备的账号和工具说明。
课后大礼包建议包含:
- 课件回看或精简版讲义。
- 复盘模板、行动清单和成果样例。
- 论坛答疑入口和社群入口。
- 后续线上课程或产品推荐。
Class Setup Template
后台创建线下课专区时,运营老师必须同时配置四类结构化内容:
| Field | Format | Example | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 课前大礼包 | `标题 | 类型 | 链接 | 状态` | `课前准备清单 | checklist | /docs/012-content-operations/ | ready` | ||
| 课后大礼包 | `标题 | 类型 | 链接 | 状态` | `课后复盘模板包 | template | /docs/006-operations/ | ready` | ||
| 现场课件步骤 | `标题 | 分钟 | 说明` | `现场跟做任务 | 30 | 完成老师布置的第一轮操作。` | ||||
| 答题与跟做任务 | `标题 | 类型 | 积分 | 说明 | 占位提示` | `现场跟做成果 | artifact | 25 | 提交一份现场成果。 | 粘贴成果链接。` |
当前静态原型使用“已上传 HTML 课件地址”来模拟上传流程。生产版应把 HTML 课件、课前包、课后包上传到对象存储,生成带权限的资源记录,再写入 OfflineClass。
默认任务模板包含四段:
- 课前诊断:真实教学问题。
- 现场跟做:可执行提示词。
- 成果生成:课堂活动方案。
- 课后迁移:一周行动清单。
Batch Lecture Setup
批量建讲座班级用于“多场线下讲座连续开课”的场景。后台支持每行一场讲座:
2026-08-01 09:00 | AI备课实战 | 一班
2026-08-02 09:00 | AI作业评价 | 二班
系统自动生成:
- 每场讲座一个默认启用的
OfflineClass。 - 每个班级一个唯一邀请码,例如
ZSH-AI-SUMMER-01。 - 每个班级一个入口链接,例如
/offline/?code=ZSH-AI-SUMMER-01。 - 每个班级一张投屏入班卡,包含扫码入班二维码、超大邀请码和手机号入班提示。
- 讲授版 HTML 课件资源位
htmlCoursewareUrl。 - 跟做版 HTML 资源位
followAlongCoursewareUrl。 - 默认课前包、课后包、四段现场步骤和四项成果提交任务。
后续生产版上传流程应把 HTML 课件上传到对象存储后,把返回的资源地址写入对应班级;当前原型先用站内 HTML 路径模拟。
Resource Access
公开的 /api/offline/classes?inviteCode=... 只返回班级预览和资料存在状态,不返回原始课件 URL 或礼包 URL。学员完成手机号入班后,前端应调用 /api/offline/resource-access 领取限时访问链接。
资源访问签发规则:
- 必须先存在有效
OfflineEnrollment。 - 返回 HTML 互动课件、课前大礼包、课后大礼包的
accessUrl。 accessUrl带offlineClassId、resourceId、expiresAt和eaosAccessToken。- 当前原型用哈希签名模拟对象存储签名 URL;生产版应替换为对象存储签名 URL 或后端文件代理。
- 每次签发都写入审计日志
offline.resource.access.issued。
Acceptance
当前原型完成标准:
/offline/可从主导航进入。- 学员可用手机号和示范邀请码进入私密线下课专区。
- 页面显示 HTML 课件、课前大礼包、课后大礼包、现场步骤和互动提交表单。
- 完成步骤或提交成果后,积分中心出现统一积分流水。
/admin/显示线下课专区、学员进度、成果提交和授课记录。- 后台可新建线下课专区,邀请码可手填或自动生成,并立即给出班级链接、投屏二维码、讲授版 HTML 和跟做版 HTML 资源位。
- 后台可按多行讲座清单批量生成讲座班级、邀请码、班级链接、讲授版和跟做版 HTML 资源位。
- API 模式下,学员入班、完成步骤和提交成果写入后端,后台运营面板可看到入班人数、完成率、成果、脱敏手机号和证据链接。
- 文档说明生产版必须使用手机号验证码、服务端成员校验、文件访问权限和审计日志。
API 原型完成标准:
- 增加
/api/offline/classes、/api/offline/enrollments、/api/offline/resource-access、/api/offline/my-classes、/api/offline/progress、/api/offline/submissions。 - 增加
/api/admin/offline-classes、/api/admin/offline-classes/batch、/api/admin/offline-classes/status、/api/admin/offline-enrollments、/api/admin/offline-progress、/api/admin/offline-submissions。 - 后台页面在 API 模式下可读取线下课、报名、进度和成果,并通过 API 新建/归档线下课。
- API 测试覆盖未入班不可访问、未入班不可签发资源、公开班级预览不暴露原始 URL、重复提交不重复发积分、观察员不可新建线下课、运营可新建、批量生成和归档班级。
- OpenAPI 与 Prisma schema 同步。