Product Requirement Document · v1.1

Talent Sparkz 口才培训 · 学生报名与课堂管理 App

8 分校统一系统:报名意向 → 试听 → 注册 → 排课点名 / 补课 → 出勤评语 → 收费收据 → 库存 → 转班 → 学期评估报告。已并入 2026-11-02 五项决策。

版本
v1.1(决策已并入)
负责人
Celes
更新日期
2026-11-02
状态
待评审

版本沿革

决策记录 · Decision Log(2026-11-02 已确认)

议题决定落点
转化口径已定 以首次缴费完成(payment_status 首次变为 Paid)为准,不是 Active 状态。Active 但未缴费者单列「待缴费」群体。§06 / F-13 / §15
转班审批已定 要双方 Admin 会签(原分校 + 目标分校),再由 Principal 终审。§02 / F-22 / §11
已缴费用归属已定 学生若在 A 分校上了 5 节课后转班,本学期已缴费用与已开收据永久留在 A 分校,不转移、不退、不自动分账;新分校自下一学期起才计费。系统只在转班通过时发一条结算提醒通知(提醒相关分校向原分校确认结算),不改账单金额。F-22 / §10 / §11
评语审批代理人已定 可设代理人:Principal 可指定代理人并设有效期,代理期间拥有评语 / 评估报告 / 转班审批权,审批记录须标注「代 Principal〈姓名〉审批」并留痕。仍不设超时自动通过。F-25 / §02 / §07 / §12 / §14
收据合规栏位已定 收据需含 SST 注册号 / 税号 / 公司注册号(具体数值与抬头由甲方提供)。F-20 / §10.3 / §16

01产品概述

1.1 一句话定位

为 Talent Sparkz 口才培训中心(全马 8 分校)打造一套统一的运营管理系统:家长端 App + 老师端 + 分校 Admin 后台 + 院长看板 + 一个无需下载 App 的报名意向网页,覆盖从招生线索到学期评估报告的完整闭环。

1.2 背景与问题

1.3 产品目标

1.4 明确不做(Non-goals,本期)

02用户与角色 · 审批矩阵

角色数据可见范围核心职责
家长 主要用户仅自己子女(跨分校也可见)填报名表、看课表/出勤/评语、选补课、看账单收据、申请转班、收通知
老师 内部用户自己任教的班级点名、写周出勤备注、课程进度与评语(署名留存)、学期评估报告
Admin 分校行政 运营后台仅所属分校线索跟进、排课、补课审批、收费录入、库存发放与补货、转班发起与会签
Principal 院长 审批 + 全局全部 8 分校看数据看板、审批评语/评估报告/转班、查看全部分校待付款、指定审批代理人

审批矩阵(Approval Matrix)

强烈建议做成一个统一的「审批队列」,而不是三套独立流程,开发量与维护成本都最低。

事项发起审批人通过后动作
学生评语推给家长(好/坏评语)老师Principal(可由 F-25 代理人代批)写入学生档案 + 推送家长 App
学期评估报告推给家长老师Principal(可由代理人代批)报告存档 + 推送家长 App
转班(跨分校)家长 / Admin原分校 Admin + 目标分校 Admin 会签 → Principal 终审(已定)迁移分校与课表 + 结算提醒通知 + 通知双方分校及家长
补课申请家长Admin占用时段名额 + 通知家长
试听确认Admin—WhatsApp 联系家长、更新状态
代理人规则(F-25,已定):Principal 可指定代理人并设有效期;代理期间评语 / 评估报告 / 转班的审批权移交代理人;所有代理审批须标注「代 Principal〈姓名〉审批」并留痕,可追溯。规则不变:未获审批的内容家长一律不可见、驳回须填意见并退回、不设超时自动通过。

03学生状态生命周期

Pending已提交报名意向
待联系
→
Trial Scheduled已约试听课
(WhatsApp 确认)
→
Trial Done试听完成
待家长决定
→
✔ 家长愿意继续
Active正式学员
排课 / 点名 / 评语 / 收费
✘ 暂缓(记录原因)
Pending暂缓
附原因 + 可重新激活

每条学生记录除主状态外,还有 4 个独立维度:

维度取值说明
status 主状态Pending / Trial Scheduled / Trial Done / Active仅 Admin 可改,全部留痕。注意:Active ≠ 转化
branch_id 分校BR01 ~ BR08转班只改这个字段,不改主状态;见 §11
payment_statusPending / Paid / Receipt IssuedAdmin 手动更新;首次变为 Paid = 转化(F-13 口径);见 §10
stock_issuedT-shirt / Notebook 是否已发 + 日期 + 经办人写在学生个人资料里,发放即扣库存;见 §09
口径提醒:学生可以「已 Active、已上第 5 节课、但尚未缴费」,此时不计入转化数,只计入「已注册待缴费」。看板两个数字要分开显示,避免院长误读。

04功能需求清单(F-01 ~ F-25)

P0 上线必需 · P1 首版应有 · P2 可延后 | NEW = v1.0 新增 | v1.1 = 本次决策 / 新增

编号模块 / 需求描述(含验收标准)优先级
A · 报名与试听
F-01报名意向链接(Web,无需下载 App):字段见 §05,中英双语;提交后生成学生记录(状态 Pending)并通知学校管理员组;同手机号重复提交自动关联;成功页提示「我们会尽快联系您」。验收:手机浏览器 2 分钟内完成提交,管理员 10 秒内收到通知。P0
F-02管理员试听确认:新线索列表、一键 wa.me 跳转 WhatsApp(预填模板)、记录试听日期、试听后「继续注册」或「暂缓 Pending(必填原因)」。验收:收到通知到状态变更 ≤ 2 分钟,全程留痕。P0
F-03学生资料库:姓名(英/中)、年龄、学校、家长姓名与电话、时段偏好、上课期望、备注;搜索/筛选/编辑/软删除;家长按手机号绑定;含 T-shirt / Notebook 发放栏位(F-17);资料变更留审计日志。P0
F-04正式注册 → Active + 排课:分配班级/时段,系统生成 10 节课课表,家长端立即可见。此为 Active,不等于转化(转化以首次缴费为准)。P0
B · 排课 · 点名 · 补课
F-05学期课表:管理员建学期、设每周时段,自动排 10 课次(Lesson 1–10 + 日期),支持手动顺延;调整时通知受影响家长。P0
F-06老师手动点名:按「今日课程」列名单,逐个勾选出席 / 缺席 / 迟到;支持课后补改;离线暂存联网上传。P0
F-07出勤查看:家长与老师随时查看课次编号、日期、状态(含补课状态)。P0
F-08补课申请与审批:缺席课次出现入口 → 家长选可补时段(含剩余名额)→ 通知 Admin 审批 → 批准占名额 / 拒绝填原因重选;同一缺席课次只允许一个待审申请。P0
F-09通知中心:新报名→Admin;补课申请→Admin;审批结果→家长;课表变更→家长;转班结算提醒→双方 Admin;未读角标 + 历史列表。P0
F-10家长账号与多孩:手机号登录,一个账号绑定多名子女,首页切换。P1
F-11管理报表:出勤率、时段人数、转化率(首次缴费口径)、收款、库存;CSV 导出。P2
F-12学费 / 缴费记录(原 P2) → 已由 F-18 ~ F-20 取代,转为本期 P0。—
C · 院长看板 · 出勤评语 · 课程进度 · 审批代理
NEWF-13试听池数据看板(Trial Pool Dashboard):院长可看 询问数 / 试听数 / 转化数 / 转化率;v1.1转化以「首次缴费完成」为准(非 Active),Active 未缴费单列「已注册待缴费」群体;按 8 分校、周/月/学期、时段偏好筛选;可导出。详见 §06。P0
NEWF-14周出勤记录(Weekly Attendance):在点名基础上扩展 —— 上课日期、课次、出席状态、本节课备注 Remark、Concern 关注标记;可按周导出给院长。详见 §07。P0
NEWF-15学生评语 → 家长通知(需院长审批):老师写好/坏评语 → 自动关联学生档案 → 提交 Principal 或 F-25 代理人审批 → 通过才推送家长 App;驳回退回修改。未审批内容家长不可见。P0
NEWF-16课程进度更新与评语(组 / 个人):老师可选择「整组 Group」或「单个学生 Individual」录入进度与评语;自动带入老师姓名作为记录用途(不可编辑)+ 时间戳;关联学期与课次。详见 §08。P0
v1.1F-25审批代理人(Approval Delegate):Principal 可指定 1 名或多名代理人并设生效 / 失效日期;代理期间可审批评语、评估报告、转班;所有代理审批记录标注「代 Principal〈姓名〉审批」并留痕;不设超时自动通过;代理人权限变更全程可追溯。验收:Principal 设代理人后,评语审批队列自动转派;审批记录可见代理标识与原委托人。P0
D · 库存 · 收费 · 收据
NEWF-17物资库存(T-shirt / Notebook):学生个人资料新增「是否已发」栏位;勾选发放 → 系统自动从该分校库存扣减;每分校每品项设最低水位,低于水位通知 Admin;补货/更正需填原因留痕。详见 §09。P0
NEWF-18收费记录(Admin 人工核对银行后录入):金额、Course fees、付款方式、付款日期、Remark;Pending Payment 列表 Admin 与 Principal 均可见;首次缴费事件须写入转化统计(F-13)。无在线支付。P0
NEWF-19账单模板(Admin 生成给家长):固定品项 Registration fees / Course fees / T-shirt / Notebook / Extra class / Total / Due by (date),可增删行、系统自动算合计、必填到期日;生成后推送家长 App。详见 §10。P0
NEWF-20收据自动生成:Admin 标记为 Paid 后,系统自动生成带唯一编号的收据(PDF + 站内),推送到家长 App 并通知;含学生、分校、品项、总额、付款方式、日期、经办人,v1.1以及 SST 注册号 / 税号 / 公司注册号。P0
E · 多分校 · 转班 · 评估报告
NEWF-218 分校架构:所有业务数据带 branch_id;Admin/老师按分校隔离,Principal 看全部;同一个 App、同一数据库,不做数据复制导入导出。详见 §11。P0
NEWF-22转班(Transfer Class):家长或 Admin 发起(选目标分校 + 原因 + 生效日)→ v1.1原分校 Admin + 目标分校 Admin 会签 → Principal 终审 → 通过后学生资料与课表迁到目标分校;已缴费用/收据留原分校、新分校自下学期起计费,系统只发结算提醒通知(不自动分账、不改账单);通知双方分校 Admin 与家长。详见 §10.4 / §11。P0
NEWF-23评估报告提醒:第 10 节课点名完成后,系统自动通知该班老师(+ Admin)为每位学生填写学期评估报告。P0
NEWF-24评估报告审批与发送:老师提交 → Principal 或 F-25 代理人审批 → 通过后推送家长 App + 通知;驳回退回修改;报告存入学生档案、可导出 PDF。详见 §12。P0

05报名表字段定义(Registration of Interest)

字段控件校验 / 说明
Student's Name (英)文本必填
学生姓名 (中)文本必填
Age / 年龄数字必填,4–17
School / 学校文本必填
Preferred Public Speaking session / 选择口才班时段下拉必填,选项由 Admin 维护(建议带「余位」)
Parent's Contact Number / 家长联络电话电话必填,+60 格式;作为家长账号匹配键
Expectation for this course / 上课期望多行文本必填,同步给 Admin 与授课老师
建议补充:家长称谓、拟报名分校(8 选 1)、隐私同意勾选(PDPA)。转班需求(F-22)与分校维度(F-21)都要求报名时就确定归属分校。

06试听池数据看板(Principal)

给院长看的招生漏斗,数据全部由 F-01~F-04、F-18 自动汇总,不需要任何人手工统计。

指标定义(口径)来源 / 维度
No. of Enquiry 询问数提交报名意向的去重学生数(按家长手机号去重)F-01;按分校 / 周 / 月 / 学期 / 时段偏好
No. of Trial 试听数状态到达 Trial Scheduled 或 Trial Done 的学生数F-02;含「已约」与「已完成」两个子数
No. of Converted 转化数 v1.1 已定首次缴费完成(payment_status 首次变为 Paid)的学生数。不以 Active 状态为准F-18 / F-20;按首次缴费日期归入对应周/月/学期,不回溯
已注册待缴费 Pending Payment状态为 Active、但尚未首次缴费的学生数F-18;供院长追收,与转化数分开显示
整体转化率 / 试听转化率首次缴费数 ÷ Enquiry / 首次缴费数 ÷ Trial自动计算,可看趋势
暂缓原因分布试听后 Pending 的原因统计F-02 的原因字段
已定案(2026-11-02):「转化」= 首次缴费完成。开发注意:学生可能先 Active、上了几节课后才缴费 —— 转化计入缴费当天,不得回溯到 Active 当天。

07周出勤 · 评语 · 家长通知审批

7.1 周出勤记录字段

字段说明
Date / 上课日期该节课实际日期,自动带出课表日期
Lesson No. / 课次Lesson 1–10
Attendance / 出席状态出席 / 缺席 / 迟到 / 已补课
Remark for this class / 本节课备注老师填写,描述这节课整体情况
Concern 标记 / 需关注可针对某些学生打标,便于院长与 Admin 追踪
Individual comment / 学生评语好 / 坏评语,自动关联到学生个人档案;走 F-15 审批后才推家长
Teacher / 记录老师自动带入老师姓名 + 时间戳,不可编辑

7.2 评语 → 家长通知的审批流程

老师点名 + 写评语好 / 坏、关联学生档案
→
提交审批Principal 或 F-25 代理人
→
✔ 通过
写入档案 + 推送家长 App家长收到通知
✘ 驳回
退回老师修改附驳回意见

08课程进度与评语(组 / 个人)

老师录入时先选范围,系统据范围决定评语落在哪里:

范围落库方式适用场景
Group 整组1 条组记录,关联该班该课次全班名单全班进度、整体课堂表现
Individual 个人1 条记录 / 学生,写入学生档案个别学生的进度、优点、需加强

09库存管理(T-shirt / Notebook)

9.1 学生个人资料里新增的栏位

栏位说明
T-shirt given是/否 + 发放日期 + 尺码 + 经办 Admin
Notebook given是/否 + 发放日期 + 经办 Admin

9.2 扣减与低水位规则

建议:T-shirt 按尺码(XS/S/M/L…)各自设最低水位,否则「总数够但没尺码」会误报安全。

10收费 · 账单模板 · 收据

10.1 付款状态流

Pending PaymentAdmin 生成账单后
→
Admin 线下查银行确认到账
→
Paid手动录入金额/方式/日期/Remark
首次 Paid = 转化计数
→
Receipt Issued系统自动生成收据 + 推家长

10.2 账单模板(Admin 生成 → 推给家长)

TALENT SPARKZPUBLIC SPEAKING · STUDENT INVOICE
分校:____________
学生:____________
账单编号:自动生成
Item 品项金额 (RM)备注
Registration fees / 报名费____可留空
Course fees / 课程费____对应学期
T-shirt____尺码可注记
Notebook____—
Extra class / 加课____节数
TOTAL 合计自动求和—
Due by(到期日):__________ | Admin 可增删品项行,合计自动重算;到期日必填。
SST 注册号:________ | 公司注册号(SSM):________ | 税号:________(v1.1 已定,需印于收据;账单可选显示)

生成后推送家长 App + 通知;家长可在 App 内查看账单明细与状态。

10.3 收据(F-20)

10.4 v1.1 转班结算规则(已定)

情境:学生在 A 分校上了 5 节课后转到 B 分校。
规则:① 本学期已缴费用与已开收据永久留在 A 分校,不转移、不退、不自动分账;② B 分校自下一学期起才产生账单(本学期不向家长重复收费);③ 系统只在转班审批通过时发一条 结算提醒通知,提醒相关分校向 A 分校确认结算,不修改任何账单金额。
项目处理方式说明
本学期已缴费用留在 A 分校已消耗 5 节课的成本归 A
本学期未结账单留在 A 分校由 A 分校 Admin 继续追收
已开收据留在 A 分校编号含 BR01,不改写
B 分校新账单下一学期起才生成不在转班当下立即计费
结算提醒通知系统自动发(纯通知)收件人:原分校 Admin + 目标分校 Admin(可抄送 Principal);内容含学生姓名、原分校已上课次数、费用归属原分校、新分校下学期起计费
待甲方确认一句文案:提醒对象与措辞(「请 B 分校向 A 分校结算」还是「请 A 分校保留本学期收款」)—— 逻辑不变,只改通知文字即可,见 §18。

118 分校与转班(Transfer Class)

11.1 多分校数据模型

所有业务表带 branch_id(BR01~BR08):学生、班级/课表、出勤、评语、课程进度、库存、账单、收据、评估报告。权限按分校隔离,同一个 App、同一数据库,切换分校只是筛选维度,不做数据复制。

角色可见范围
Principal(含代理人)全部 8 分校(可下钻单分校)
Admin仅所属分校(可配置是否允许跨分校)
Teacher自己任教的班级
Parent自己子女,跨分校也可见

11.2 转班流程 v1.1 会签已定

发起申请家长 / Admin 选目标分校
+ 原因 + 生效日
→
双方 Admin 会签原分校 Admin + 目标分校 Admin
确认名额
→
Principal 终审或 F-25 代理人
→
数据迁移branch_id 更新
课表转到目标分校
→
通知结果双方 Admin + 家长
+ 结算提醒
关键工程提示:branch_id 必须在 MVP 阶段就写进数据模型与权限层。等系统上线后再补多分校,几乎等于重写一遍(见 §17)。

12学期评估报告(第 10 节课后)

Lesson 10 点名完成系统自动触发
→
通知老师 + Admin提醒为每位学生写报告
→
老师填报告出勤 / 进度 / 优缺点 / 建议 / 署名
→
Principal / 代理人审批通过 / 驳回附意见
→
推送家长 App+ 通知、存入学生档案
报告字段来源
学期 / 分校 / 班级系统自动带入
出勤统计(10 节:出席 / 缺席 / 补课)自动从 F-06/F-07 汇总
课程进度完成度自动预填自 F-16,老师可改
优点 / 强项、需改进、下阶段建议老师填写(可带入已审批评语)
老师姓名、提交日期自动带入、不可编辑(记录用途)
审批人 / 审批日期 / 审批意见系统记录;若为代理审批,标注代理人 + 原委托人(F-25)

13页面与信息架构

家长端 App

  • 首页(孩子切换、下节课卡)
  • 课表 Lesson 1–10
  • 出勤记录
  • 补课申请与审批状态
  • 评语 / 评估报告
  • 账单 / 收据
  • 转班申请
  • 通知中心 / 我的

老师端

  • 今日课程 + 点名
  • 周出勤备注 / Concern
  • 课程进度与评语(组/个人)
  • 学期评估报告(提醒 + 填写)
  • 学生详情(出勤历史、上课期望)

Admin 后台(分校)

  • 线索看板 / 试听跟进
  • 学生资料库(含物资发放)
  • 学期 / 班级 / 时段
  • 补课审批队列
  • 收费录入 / 账单 / 收据
  • 库存与低水位
  • 转班发起 / 会签 / 报表

Principal 后台(全 8 分校)

① 试听池数据看板(询问 / 试听 / 首次缴费转化 / 待缴费) ② 统一审批队列(评语 / 评估报告 / 转班终审) ③ Pending Payment 总览 ④ 库存低水位总览 ⑤ 报表与导出 ⑥ 审批代理人设置(F-25)

Web 公开页:报名意向表单(移动端优先)+ 提交成功页;校长/院长建议用 Web 后台而非手机 App(看板表格多)。

14非功能需求

平台

iOS + Android App(建议 Flutter 跨端);报名表为响应式 Web;Admin / Principal 为 Web 后台。最低 iOS 14 / Android 8。

语言

中文 + English 双语切换;报名表与账单收据双语并列。

性能

报名提交 < 2s;点名保存 < 1s;推送到达 < 30s;App 冷启动 < 2.5s。

数据与合规

未成年人资料:PDPA 2010 家长同意勾选;数据存马来西亚/新加坡区域;家长可申请删除;财务记录与含 SST / 税号 / 公司注册号的收据依当地税务要求留存;所有资料/状态/金额变更留审计日志。

权限与审批

branch_id 行级隔离(8 分校);未审批内容家长不可见;审批代理人(F-25)可设有效期、代理审批须标注身份;审批动作不可篡改、可追溯;驳回必填意见;不设超时自动通过。

一致性

库存扣减原子操作、不可为负;收据编号全局唯一且转班后不改写;首次 Paid 事件只计一次转化;金额 RM 两位小数;弱网时点名离线暂存、联网自动上传。

15数据指标与埋点

16技术依赖

17版本范围与里程碑

阶段包含内容交付物
MVPF-21 分校数据模型(第一天就要做) + F-01 报名表 + F-02 试听确认 + F-03 学生资料库 + F-13 试听池看板(首次缴费口径须先定义好事件)报名链接 + Admin/Principal 后台,替代人工登记,院长看得到漏斗
v1.0F-04~F-09 排课 / 点名 / 补课 / 通知 + 家长端 App 上架iOS / Android 上架版本
v1.1F-14 周出勤备注 + F-15 评语审批 + F-25 审批代理人 + F-16 课程进度 + F-17 库存 + F-10 多孩教学与物资模块上线,代理人可代批
v1.2F-18 收费 + F-19 账单模板 + F-20 收据(含税务栏位)+ F-22 转班(双方会签 + 结算提醒)财务与多分校流转
v1.3F-23 / F-24 学期评估报告 + F-11 报表完整闭环
排期提醒:「首次缴费 = 转化」这个口径虽然 MVP 看板就要用,但真正的缴费功能在 v1.2。做法:MVP 先在数据模型里预留 first_paid_at 字段与转化事件,v1.2 接上 F-18 即可,避免返工。

18风险与待决问题

已决 5 项见文首「决策记录」:转化口径、转班会签、已缴费用归属、审批代理人、收据税务栏位。以下为仍需确认的事项。
问题影响建议 / 决策时间
转班课次衔接:上了 5 节后转班,剩余 5 节在新分校怎么排?(跟班插入 / 从 Lesson 1 重上 / 原课表保留到期末)高v1.2 前定;用户尚未指定
税务栏位具体数值:SST 注册号、公司注册号(SSM)、税号、收据抬头与 Logo 由甲方提供高v1.2 前提供,影响收据 PDF 模板
结算提醒通知的收件人与措辞(「请 B 分校向 A 分校结算」还是「请 A 分校保留本学期收款」)中v1.2 前确认文案;逻辑不变,只改文字
代理人人数上限、有效期上限、可否跨分校指定低v1.1 前定;默认 1–2 名、最长 30 天
T-shirt 是否分尺码?各品项最低水位数值?中建议按尺码分别设水位;数值由甲方给
付款方式枚举(Bank transfer / Cash / QR / Cheque / 分期?)中v1.2 前定
「通知管理员组」是只用 App 推送,还是要自动发进 WhatsApp 群(需 Business API、有费用)?中MVP 前定;默认 App 推送 + 邮件兜底
补课政策上限(每学期最多补几节、名额满了怎么办)?中建议每缺席 1 节补 1 节、每学期上限 2 次
评估报告是否需要家长签收 / 回执?低建议先做「已读」即可,v1.3 评估
8 分校 Admin 是否允许跨分校操作?老师是否共用设备点名?低影响权限与账号体系,开发前确认
家长端是否需要「主动请假」(区别于缺席)?低建议 v1.1 加入,与补课流程打通
未来是否接入在线支付?低本期 Non-goal,数据结构预留即可