一、立项背景和目标
本项目属 K12 教育科技 / AI 智慧教育 / 家校共育赛道。在"教育数字化""AI 赋能教育"趋势下,教育平台由"卖课"转向"数据驱动的个性化学习服务"。"华研慧学"即在此背景下构建的 AI 学习平台,本项目是其面向学生家长的微信小程序端。
立项旨在解决家长对孩子学习「**看不见、看不懂、跟不上**」的痛点:学情不透明、报告黑盒化、错题难沉淀、缺乏规划闭环、触达门槛高。目标是让家长实时、清晰、可执行地掌握孩子学习情况,打通"学生学→平台诊断→家长监督"的家校协同闭环,提升平台用户粘性与付费转化。
服务对象:K12 学生家长,覆盖小学/初中/高中全学段(一至高三 12 个年级)及语文、数学、英语、物理、化学等全学科。
二、软件功能与核心模块
共 7 大核心模块,采用主包 + 分包架构:
1. 首页(学习情况):以「周对比/周环比」呈现数据采集、规划练习、新增错题、学习视频四项指标,并提供四大分析入口。
2. 学生管理:学生列表、扫码添加、绑定/解绑/切换学生。
3. 诊断报告:列表 + 详情,含个人情况、能力总评、答题情况、掌握状态、提升建议五维度。
4. 学习报告:列表 + 详情,含学习总评、学情诊断、发展追踪三维度。
5. 学习规划:列表 + 新旧两版详情,结合错题/试卷生成个性化规划。
6. 错题集:按来源/题型/难度/时间多维筛选,解析页支持数学公式(TeX/MathML)渲染。
7. 个人信息:家长信息查看修改、头像上传。
三、业务流程与功能路径
主流程:学生完成学校作业/试卷、平台练习 → 平台 AI 诊断与知识图谱分析(待下载→待提交→待批改→已批改)→ 家长微信登录、扫码绑定学生 → 查看学情数据与报告 → 依提升建议规划练习 → 形成"诊断→规划→练习→批改→再诊断"闭环。
典型路径:首页 → 选择学生 → 点选模块入口 → 报告/规划/错题集列表 → 详情页(筛选、公式解析)→ 返回总览。
登录路径:微信 `uni.login` 获取 code → 请求 `/parent-login/quick/register` → 缓存 token;接口返回 9/11/12 时自动重登。
一、整体架构与设计思路
分层架构:`pages`(视图)→ `api`(业务接口)→ `api/fetch.ts`(统一请求层)→ `config`(环境/错误码),视图层不直接调用网络,接口可复用、易维护。
分包设计:主包(首页/我的)承载首屏;`package-sub`(报告/规划/学生管理)、`package-mistakes`(错题集)按业务拆分;首页通过 `preloadRule` 预加载 `package-sub`。核心思路是**控制主包体积、加快首屏。
各模块技术栈:
| 模块 | 技术 |
| --- | --- |
| 全局 | uni-app(Vue3.5)+ TS + Vite5 + Pinia + Sass |
| UI / 图表 | uv-ui、u-charts(qiun-data-charts) |
| 错题解析 | mathjax-full + marked(`RenderMathJax`) |
| 构建 | 自研 Vite 插件(ES2017 转译 + mathjax 拆包) |
二、我的负责模块与结果(量化占位)
- 负责模块:〔如:请求层封装 / 错题集 / 报告模块 / 构建优化〕
- 量化结果:〔如:封装 N 个接口、覆盖 X 个页面;分包后主包体积减少 □KB / □%;公式渲染支持 TeX+MathML 两类输入、覆盖 □ 道题〕
- 交付:〔完成 X 个页面、Y 个组件,按期上线 / 缺陷率 □%〕
三、难点、坑与解决方案
1. 小程序不支持可选链等新语法:构建产物报错。→ 自研 `sanitizeMiniProgramOutputPlugin`,`esbuild` 转译至 ES2017 并正则替换 `?.`、`require:` 等。
2. mathjax-full 体积过大挤占主包:→ `splitMathJaxToSubpackagePlugin` 将其 `manualChunks` 单独打到 `package-mistakes`。
3. `rich-text` 渲染数学公式兼容差:SVG 不显示、公式换行错乱。→ SVG 转 data URI、提供可读文本回退、处理换行与降级。
4. 登录态失效导致请求中断:→ `fetch.ts` 统一拦截错误码 9/11/12 并自动重登。