# 小书童伴学 **Repository Path**: Yurlix/LittleScholar ## Basic Information - **Project Name**: 小书童伴学 - **Description**: 小书童伴学,服务中小学生的智能学习小程序。集成英语单词本、AI 作文批注修改、英语口语对话练习能力,可查单词音标释义例句,AI 辅助批改作文,轻松完成日常学习巩固。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-06 - **Last Updated**: 2026-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小书童伴学 · 工作区 > 全学龄段(3-22 岁)成长与学习记录小程序 · 产品管理工作区 ## 一句话定位 **家长付费、孩子使用**的工具型小程序,聚焦「学习习惯养成 + 成长记录」两大场景。 刻意避开"学科培训/辅导"定位,规避 K12 合规风险。 | 项 | 内容 | | --- | --- | | 中文名 | 小书童伴学(暂定,待小程序名称查重 + 商标可行性查询) | | 英文名 | LittleScholar | | Slogan | 小书童伴学,记下成长的每一步 / Grow, learn, and remember together. | | 品牌 IP | Q 版书童(双髻 + 朱红发绳 + 竹青袍 + 捧书) | | 商业模式 | 免费基础版 + 会员订阅(AI 能力、深度报告、多孩、不限量提醒) | | 载体 | 微信小程序,家长端 / 孩子端双端 | | 技术栈 | 小程序原生 + 后端 Java Spring Boot + MySQL / Redis + OSS;提醒引擎 Spring Schedule / XXL-Job;AI 调用第三方已备案大模型 API | ## 目录约定 ``` LittleScholar/ ├── PRD/ 产品需求文档(唯一需求源,V1.2 决策已收口) ├── LOGO/ 品牌视觉素材(含可行性分析图) ├── docs/ 过程文档:评审记录、研发计划、开发指南 ├── prototypes/ 原型产物:index.html 全量页面原型站(70 个设计对象,静态存档) ├── tests/ 测试代码(Java / JUnit5,顶层专设,见 tests/README.md) ├── server/ 【代码】后端 Spring Boot 3.2 + MyBatis-Plus(JDK 17) │ Maven 多模块(按业务域拆分,2026-09-12;2026-09-13 auth→framework、拆出 system、framework 去接口化、接口出入参迁 system、会员权益门控骨架): │ common 通用基建 · ai AI 能力 · third 第三方对接(微信登录/企微/COS)· │ framework 鉴权底座 + 账号孩子领域能力 + 权益门控契约(@RequireEntitlement + EntitlementPort,**不暴露任何 HTTP 接口、不持有 VO/请求体,出入参用实体**)· │ system 系统支撑 + **对外接口层(全站 /api/** 唯一出口:账号/孩子/会员/反馈)** · message 站内信 · │ record 成长记录 · reminder 提醒备忘 · practice 学科练习 · study 学情 · │ library 育心知库 · admin 启动装配(产物 little-scholar-server.jar) ├── miniprogram/ 【代码】微信小程序原生(含设计系统) └── .workbuddy/ 工作区记忆(勿手动删除) ``` > **写代码前先读** `docs/开发指南.md`:启动方式、接口清单、业务规则、工程约定。 ## 需求规模速查 - **58 个功能编号 / 55 项独立功能**,8 大功能线:A 成长记录 / B 学习习惯 / C 智能提醒 / D 家庭账户 / E 商业化 / F AI 能力 / G 知识库 / H 备忘录 (B 线为产品功能、F 线为其依赖的 AI 技术能力,一一对应不重复计数) - **63 个页面**:家长端 P01-P50、孩子端 K01-K08、全局组件 G01-G12 - **MVP 首批 19 项**:A1 A2 A3 A4 A5(疫苗+体检) A8 B1 B2 B3 C1 C3 D1 D3 D4 D5 E1 E2 G1 H1 H2 → 目标:跑通「成长记录 + 打卡习惯 + 疫苗提醒」核心闭环,验证家长付费意愿 (V1.2 已将 C6 生长曲线预警移出 MVP,原因见合规与资质) - **MVP 设计对象 39 个**:家长端页面 22 + 孩子端页面 6 + 全局组件 11(明细见 PRD 6.4) - **Phase 1**:生活记录、专注、计划、学习工具类,提留存与频次 - **Phase 2**:AI 批注 / 口语 / 薄弱点 + 内容库 + 深度预警,构成会员付费核心 - **远期**:家庭共享、家庭套餐、AI 成长建议、升学政策 ## 合规红线(任何文档与文案都要遵守) 1. 全站禁用「学科培训 / 辅导 / 提分 / 补习」等表述,定位为工具型 2. 14 岁以下儿童信息须监护人授权,注册即视为监护人同意 3. 作文批注**只批不改**,规避 AI 文本生成监管风险 4. AI 生成内容必须标注「AI 生成」 5. 疫苗数据引用国家免疫规划官方程序,标注「以接种机构为准、不构成医疗建议」 6. 智能预警仅为提示性信息,必须标注「仅供参考」 ## 当前进度 - [x] PRD V1.1 编制完成(2026-09-01) - [x] PRD 评审完成,输出问题清单(22 项) - [x] PRD V1.2 修订完成(2026-09-02,状态:决策已收口) - [x] **全量页面原型图完成(2026-09-01)**:`prototypes/index.html`,70 个设计对象 (P50 + K8 + G12),MVP 42 个。左侧导航按版本筛选,右侧手机线框 + 设计要点面板 - [x] **提醒架构收口为站内信-only(2026-09-02)**:不再依赖微信订阅 / 服务号外部推送;B1 降级为暂缓,D-1 定单通道站内信、D-6 拍板分层切换 - [x] 评审会 6 项待拍板全部收口(D-1/D-6 提前收口 + D-2~D-5 于 2026-09-02 拍板) - [x] 研发计划输出(2026-09-02):`docs/研发计划-MVP-V1.md`,5 里程碑 + 工作量估算 - [x] **工程骨架搭建完成(2026-09-02)**:后端 Spring Boot + 小程序 + 设计系统 + 数据库表(覆盖 M0–M4) - [x] **M0 里程碑完成(2026-09-02)**:登录、孩子档案 CRUD、多孩切换、监护人授权;13 项接口冒烟全通过 - [x] **M1 里程碑完成(2026-09-02)**:成长记录(曲线 canvas + 录入)、疫苗本(22 剂程序表 + 接种推算)、体检记录;后端 21 项冒烟全通过,前后端字段契约校验 24 项全通过。小程序 10 个页面 - [x] **M2 后端完成(2026-09-02)**:习惯打卡引擎(连续天数/积分/满7天+10)、勋章 7 类自动授予(打卡/成长/疫苗驱动全闭环)、打卡中心概览;后端 13 项接口冒烟 + 2 个 Java 集成测试全通过(tests/ 目录) - [x] **M2 小程序端完成(2026-09-02)**:打卡中心 P20(概览+今日习惯+打卡+勋章跳转)、习惯编辑页(实时预览+8 模板+图标 12/颜色 5+频率每天/工作日/自定义星期+提醒开关)、勋章墙(解锁进度+三列网格);首页「习惯打卡」「成就」入口接真实页 + 今日打卡卡常驻空态;后端补 `freq_days` 字段支撑自定义频率,前后端字段契约逐一对齐,12/12 单测通过 - [x] **M3 提醒中心(C 线)+ 站内信引擎完成(2026-09-02)**:后端新增 `module/message`(push 引擎含 P0 child_id 硬约束 + list/unreadCount/markRead/markAllRead)与 `module/reminder`(疫苗/体检/生日/备忘 CRUD,越权拦截);疫苗录入 done 时自动推送带称谓站内信;ResultCode 增补 60010/60011/61010/61011;前端新建消息中心页、重写提醒中心页、首页铃铛接真实未读角标,9 个 message/reminder 接口接入;后端 12/12 单测通过、前端全量 JS 语法校验通过 - **端到端冒烟已闭环(2026-09-02 23:5x)**:java -jar 起 8080 实测,疫苗录入→站内信 push 链路验证通过(未读 0→1、消息含 childId+称谓「小宇·乙肝疫苗 第3剂 已记录」、标记已读归零);**冒烟抓到并修复 2 个单测遗漏的运行时 bug**:①`reminder.remind_time` DATETIME→VARCHAR(8)(实体存 "HH:mm" 无法 cast);②`ReminderController` 补 `@Valid`(非法 type 原被接受,现返回 PARAM_ERROR 不落库)。回归 `mvn test` 仍 12/12 通过 - [x] **M4 后端地基完成(2026-09-03):会员模块 + 权益校验 + 首孩免费付费钩子**。后端新增 `module/membership`(Membership 实体/Mapper/Service/Controller `/api/membership`:GET /current、POST /open(mock 支付,月卡+30d/年卡+365d)、EntitlementService 落实 PRD 5.E 权益矩阵 11 项);`ChildService.createChild` 集成「首孩免费、第2孩起会员」硬钩子(免费第2孩抛 70010、会员上限 5 抛 20011,落实 D-2);ResultCode 增补 70010/70011;`tests/` 新增 `MembershipServiceTest`(3 用例)。`mvn test` 15/15 通过;HTTP 冒烟实测全链路通过(含付费钩子拦截/放行、权益快照、非法类型校验) - **待续 M4**:① 微信支付真实接入(商户号到位后替换 mock,当前先 mock);② **前端 P46 会员中心 + G06 引导弹窗已完成**(pages/membership/index 四件套 + api 增补 membershipCurrent/membershipOpen + 我的页会员中心入口 online + 免费用户加第2孩被 70010 拦截后跳 P46 即 G06 引导;月18/年168 内部测试价;全量 JS `node --check` 通过);③ 孩子端 6 页(K01/K02/K03/K04/K07/K08)含 4 位口令回家长端;④ **H2 孩子便签日记 + 12 岁+隐私分级服务端过滤(P41/K07)已完成**(新增 child_note 表 + AgeUtil.isTwelvePlus(12) + NoteService 服务端强制过滤 private + resolveVisibility 按年龄/author/diary_visibility 归一化 + share/remove + NoteController `/api/child-notes` 5 接口 + 前端 P41 四件套 + NoteServiceTest 7 用例;`mvn test` 22/22、HTTP 冒烟 11/11 验证 12+ 隐私硬门槛);⑤ 定价待定(MONTHLY_PRICE/YEARLY_PRICE 常量占位,MVP 后校准);⑥ 成长相册/作品集 OSS 容量分层(免费 200/50、会员不限)需对应上传接口接权益校验 ## 前置阻塞项(经评估均不阻塞首版上线) | 编号 | 阻塞项 | 时限 | | --- | --- | --- | | B1 | 微信外部推送(订阅消息 / 服务号)未来是否启用及主体资质评估(当前站内信-only,**已降级为暂缓,不阻塞 MVP**) | 待产品验证后 | | B2 | 小程序名称查重 + 商标可行性查询(**不阻塞首版,上线后处理**) | 上线后 | | B3 | 个体户经营范围核验 + 教育类目资质核实(**MVP 以普通工具类目上线、不自报教育类目,不阻塞首版**) | 上线后 / 付费验证后 | ## 评审会待拍板决策(6 项,已全部清零) > **全部已收口**: > - **D-1 订阅消息架构**:已定**单通道站内信**(仅 L3 站内信),不启用微信订阅 / 服务号外部推送 > - **D-6 站内信落地切换**:已拍板**分层方案**(打卡自动切换+可切回,疫苗体检弹窗确认) > - **D-2 多孩定性**:首孩免费、第 2 孩起会员专享 > - **D-3 C6 是否留 MVP**:移出 MVP,MVP 仅做百分位展示 > - **D-4 教育类目资质路径**:MVP 不含敏感功能,Phase1 前完成主体核验 > - **D-5 MVP 页面量**:39 个不压缩 完整分析见 `docs/PRD-V1.1-评审问题清单-20260901.md`,修订结果见 `PRD/小书童伴学-产品需求文档-PRD-V1.2.docx`。