让每一次干预
都被完整记录

学员档案 → 排课 → 销课扣课时 → 课堂记录与影像 → IEP → 家长查看。微信小程序(员工端 + 家长端)+ PC 管理后台三端原型,配套需求规格、领域模型、权限矩阵、接口契约与研发计划。技术选型:微信原生小程序 + Go 单体服务 + PostgreSQL + Redis + MinIO。

PC 后台 26 页 员工端 12 页 家长端 8 页 8 份设计文档 工期 10~14 周
312人在读学员课时预警 48 人
108个接口定义含 6 类异步任务
60项权限点 × 5 角色RBAC + 行级隔离
46页可点击原型三端全覆盖

核心业务闭环

学员入档→ 排课(自动通知家长)→ 上课→ 老师销课扣课时→ 课堂记录 + IEP 目标达成→ 上传课堂影像→ 家长端查看→ 留言 / 请假申请→ 教务处理

一、PC 管理后台

26 个页面 · 桌面浏览器

使用者:超级管理员 / 教务 / 评估师。承接批量录入、批量排课、报表导出、撤销销课、权限配置与合规审计。从 登录页 进入。

📊

工作台

数据看板与待办中心。看板数据 T+5 分钟缓存,避免实时聚合压库。

🧒

学员管理

档案 CRUD、批量导入(字段映射 + 校验 + 错误报告)、家长多子女绑定与审核。

🗓️

教务排课

周历排课、批量排课(>200 节转异步)、冲突校验:老师时段、教室占用、学员日上限。

✅

课时与销课

销课幂等(一课次一销课,数据库唯一索引兜底);撤销销课自动返还课时并留痕。

📚

档案与影像

IEP 历史版本永久归档只读(方案 A);文件私有桶 + 15 分钟签名 URL + 学员级权限隔离。

📈

运营与报表

6 张核心报表;导出 >5 万行拒绝、>30 秒转异步,文件 24 小时过期。

🔐

账号与权限

5 角色 × 60 权限点 + 数据范围;前端隐藏入口、后端二次校验,绕过前端也无法越权取数。

🕵️

审计合规

日志只增不改删,保留 ≥ 365 天,数据库层禁止 UPDATE / DELETE;含字段级变更对比。

⚙️

系统与运维

五类系统配置;数据库每日全量备份、异地保留 30 天、每季度恢复演练。

二、员工端小程序(老师)

12 个页面 · 移动优先

现场作业工具:看今日课表 → 上课 → 销课 → 写课堂记录 → 上传影像。只处理自己名下学员,跨学员访问返回 403 并告警。从 微信授权登录 进入。

🏠

工作台与登录

今日课次概览、待办提醒、快捷入口与最近上传的课堂影像。

🔍

学员

按姓名 / 编号 / 手机号搜索,按「我的学员 / 课时预警 / 今日有课」筛选。

🗓️

课表

周日期条 + 当日课程卡片 + 月历视图,状态覆盖待上课 / 待销课 / 已销课 / 请假。

✅

销课

单条与批量销课,二次确认展示扣减前后余额;请求带幂等键,连点三次只扣一次。

📝

课堂记录与影像

IEP 目标达成等级 + 课堂表现 + 下节课计划;影像上传含大小校验与转码进度。

📚

IEP 与消息

查看当前版本与历史归档版本;新建版本会复制内容,旧版自动归档为只读。

三、家长端小程序

8 个页面 · 只读为主

定位「看得见、看得懂、不打扰」:只看自己孩子的课表、课时、影像与 IEP,不做任何档案写操作。家长必须主动授权订阅才能收到微信服务通知,未授权时消息仍保留在消息中心。

💬

登录与绑定

微信一键登录,提交孩子姓名 + 学员编号 + 手机号后 4 位,经教务审核后获得查看权限。

🏠

首页概览

今日课程、剩余课时与可用周数估算、多子女一键切换、最新影像与动态。

⏱️

课时明细

余额圆环 + 每一笔销课与返还流水。撤销销课自动返还课时并在此留痕。

🖼️

课堂相册

按日期与课程分组浏览图片与短视频;默认仅在线查看,不提供下载。

📚

IEP 只读

当前版本与历史版本均可回看;目标是达成率进度条,配老师撰写的小结。

📨

消息与订阅

排课 / 销课 / 影像 / IEP / 课时不足 / 撤销返还六类通知,可按需开关订阅。

四、设计系统

品牌色取自官网 hejicn.com

官网品牌色为 #a0c511(黄绿 / chartreuse),全站唯一品牌色。该色亮度极高——白底上白字对比度仅 2.00:1,无法承载白字。 因此采用亮底深字策略:主按钮用亮黄绿渐变 #b1d333 → #a0c511 做底、深绿 #22380a 做字,对比度 4.98:1 ✅; 需要白字的场景(hero 横幅、状态栏)才退到 #44770e(白字 5.88:1 ✅)。这样整屏以明亮黄绿为主,而不是被深色压暗。

#fbfdf2g-25 底色
#f2f8dcg-50 卡片底
#e4f2b4g-100 浅底
#d3e88ag-200 描边
#c2de5cg-300 渐变起
#b1d333g-400 按钮底
#a0c511g-500 品牌色
#92b30eg-600 边框
#44770eg-700 深绿·白字
#3b660cg-800 文字绿
#2f4a0ag-900 深文字
#22380ag-950 亮底上的字
#24401a侧边栏
语义色独立于品牌绿,避免与「品牌绿 = 正常 / 可点」的语义混淆:成功 #2f7d5f、警示 #8f5a06、危险 #b3261e、信息 #2563a8。 中性色带极淡绿灰调(正文 #1a2016、辅助文字 #6b7263),使整套界面与品牌色协调而不显脏。

五、阶段 0 设计文档

8 份 · Markdown

需求与研发的正式依据,可直接用于需求评审、开发对接与合同附件。

文档主要内容用途
01 概念设计 系统定位与边界、三端职责、技术架构与 6 条关键架构决策(ADR)、领域模型、4 个关键流程时序、非功能设计(合规 / 成本 / 性能 / 降级) 架构对齐
02 需求规格说明书 一期范围、13 个模块的 FR 功能项与 BR 业务规则(含销课撤销、课时账本、IEP 版本、审计合规)、非功能硬性要求、验收口径(AC-01~AC-15) 需求冻结
03 领域模型与数据库设计 枚举字典、全部表结构 DDL、索引与分区策略、IEP 保护触发器、课时对账 SQL、审计表权限收敛、数据保留策略 开发输入
04 权限矩阵 5 角色数据范围、60 权限点清单、矩阵总表、字段级权限(敏感字段)、前端可见性、越权拦截与告警阈值、14 条越权测试用例 安全验收
05 接口契约 统一响应与 40+ 错误码、幂等与限流规范、108 个接口清单、29 个核心接口完整定义(含销课 / 撤销 / IEP 发布 / 预签名 URL)、异步任务、微信对接 联调依据
06 研发计划 阶段 0~6 排期与甘特图、WBS 任务分解、资源与 292 人天汇总、14 条风险登记册、修正后的成本测算、35 条测试用例、上线检查清单、变更单模板 项目管理
07 媒体容量与保留策略 实测参数(ffmpeg/Pillow)、四档拍摄强度容量模型、分级保留策略(精选永久 / 常规图片 24 个月 / 常规视频 90 天)、MinIO 分层前提、14 项容量控制措施、对象键结构与成本修正 成本关键
08 ADR·媒体存储与出网路径 「企业内网自建主机存媒体」方案的成本论证:出网单价对比(CDN ¥0.175 vs 云主机出口 ¥0.80)、实际带宽需求推算、盈亏平衡分析、本地主机的正确定位(归档灾备)、7 条复核清单 架构决策

六、合规与关键约束(已写入需求)

🔐

敏感信息保护

诊断信息、手机号列级加密(AES-256-GCM);家长端永不返回诊断原文;图片上传剥离 EXIF 定位信息;越权访问 403 并告警。

🕵️

全量审计留痕

覆盖敏感字段读取、文件下载、导出、销课与撤销、档案与 IEP 修改、权限变更、登录失败、越权尝试;只增不改删,保留 ≥ 1 年。

⏱️

课时账本不可变

流水只增不改;撤销生成反向流水;余额 = 流水汇总,每日对账任务校验,不一致立即冻结账户并告警。

📚

IEP 永不覆盖

新增版本时旧版永久归档只读;数据库触发器禁止对已生效 / 已归档版本执行 UPDATE 或 DELETE。

💰

存储与流量成本

实测年增量 281~2,650 GB(视拍摄频次,原估算偏低 3~6 倍)。分级保留可省 40% 存储费:常规视频 90 天删、常规图片 24 个月归档、精选永久。云资源年费约 ¥1.5~1.8 万,需与开发费分列。

📨

推送受限的应对

家长须主动授权订阅;未授权时消息仍保留在消息中心;频次上限每人每日 5 条、静默时段 21:00–08:00;失败降级站内消息。

原型使用说明
  • 纯静态 HTML + CSS + 极少量原生 JS,无构建步骤、无外部依赖(图标全部为 emoji,未引用任何图片或 CDN)。直接用浏览器打开即可。
  • PC 后台页面通过 assets/app.js 注入统一的侧边栏与顶栏,侧边栏可点击跳转到对应页面。
  • 小程序页面用手机外壳容器模拟,375 × 760 视口,可直接看到真机上的信息密度与滚动效果。
  • 页面中的弹窗、Tab 切换、勾选、开关等交互已可用;但所有数据均为静态示例,提交操作不会产生真实结果。
  • 全部学员姓名、家长信息、诊断描述、教师姓名与联系方式均为虚构演示数据,不含任何真实儿童信息。
  • 本原型对应阶段 0 交付物;评审通过后进入阶段 1(后端 API 与权限体系,3 周)。