缘起
一位教数学的老师,微信里存着十几个家长的对话,备忘录里是手写的出勤和分数。到月底要花一整天对账:谁上了几节课、该收多少、哪次测验退步了。她找我时的大意是,想有个东西替她记住这些,别再让她翻聊天记录。
「别再翻聊天记录」这一条,后来变成了这个系统半个功能列表。
背景
一个老师带几个学生还撑得住,学生多到要请第二个老师就撑不住了。缺的从来不是记录本身,而是这几件事:试听现场学生不带试卷,当场做不出学情诊断,只能聊几句凭感觉判断;想给某个学生定制一张练习卷,得人工一道一道凑;错题散在各次卷子上,没人能回答「这学期哪一类题一直在错」;家长要看进步,得有人把分数变化整理成一份能转发的东西。多老师之后再加一条硬约束:每个人的学生数据不能互相看见。所以系统要覆盖的是一条完整链路:试听摸底 → 建档 → 组卷测评 → 学情报告 → 家校沟通 → 财务对账。
方案
从试听摸底到月底对账,中间要经过建档、组卷测评、学情报告、家校沟通这几步——系统按这条线串起来:
- 试听摸底:选择学段、年级、科目与考试时长现场生成诊断卷,线上作答自动判分,输出薄弱知识点定位与补习节奏建议;报名转正式时档案数据继承,未报名可一键清空访客数据
- 日常录入:试卷拍照上传,AI 识别题目与对错,上传前自动屏蔽姓名、学号、学校等隐私信息;也可走简易记账只录总分,自动生成成绩趋势;判错题目自动归入错题本,支持导出练习卷与配套答案页
- 学情备课:识别掌握度低于 60 的薄弱知识点,按薄弱点自动生成补课计划(讲课 + 例题 + 练习 + 课堂小结),并按遗忘曲线推送复习提醒
- 测评组卷:按补课教学进度自动生成试卷,老师人工审核修改后下发到学生手机端作答;客观题自动判卷,主观题 AI 判卷,低置信度题目推送人工复核
- AI 额度策略:额度有余时调用 AI 生成全新题目,额度耗尽自动切换历史题库抽题组卷不消耗额度,科目不匹配给出明确提示而不是错误出题
- 家校输出:家长通过链接 + 6 位访问码查看知识点掌握度、考试记录与补习建议;学情报告可导出 PDF 与长图,按需转发给家长
- 电子合同:教师/管理端发起签署,机构侧用「乙方签名库」一键签署,家长走免登录链接或移动端手写签名;正文快照 + 哈希防篡改,签后服务端自动生成 A4 PDF 存档(含双签名、页码、哈希与经手账号),缴费可挂靠合同
- 教务财务:排课与出勤记录、课时与时薪核算、预付款抵扣、月度对账
- 多账号权限:每位老师一个独立账号,只看得见自己名下的学生与班级;账号可设登录有效期与锁定,AI 额度按老师单独配置;学科覆盖初中与高中主流科目,出题带入年级信息控制不超纲
技术架构
| 模块 | 技术选型 |
|---|---|
| PC 前端 | Vue3 + Element Plus + Pinia |
| 移动端 | Vue3 + Vant + Pinia(后端托管在 /m/) |
| 后端 | Go + Gin + GORM |
| 数据库 | SQLite(纯 Go 驱动,开箱即用)/ MySQL(生产)双驱动 |
| AI | DeepSeek 出题与主观题判卷 + 智谱 GLM-4V 试卷识别 |
| 鉴权 | JWT + RBAC 权限码两级中间件 + 学生数据隔离 |
| 工程 | 架构护栏测试 + make gen 模块骨架 + deps.yaml 依赖登记制 |
采用 controller → service → model 三层分层与统一响应协议({code, message, data}),默认值 → YAML → 环境变量三层配置,打包为单进程可部署形态:一套服务同时托管电脑端与手机端产物,默认数据库模式下零外部依赖起服务。
成果
现在两三位老师共用这一套系统,上百名学生的档案、排课、试卷与课时费都在里面,各自只看得见自己名下的学生。月底对账从过去的一整天压到半天:谁上了几节课、该收多少、预付款抵掉多少,都由系统算出来,不用再翻聊天记录核对。
试听现场十分钟出诊断结论,学生不必带试卷;错题与掌握度自动沉淀成数据,「这学期哪一类题一直在错」点开就有;家长看到的进步是一份带图表的学情报告,不再依赖老师的主观描述;合同签署有哈希与 A4 PDF 存档,签过什么、谁经手都查得到。
缘起里那位老师当年说过,想有个东西替她记住这些、别再让她翻聊天记录——这件事现在成立了。
体验
- PC 端(老师/管理端):tutor.bennywen.xyz
- 移动端(推荐手机打开):tutor.bennywen.xyz/m/

