南京某教育培训架构学生测评小程序开发
摘要:学生测评小程序手记:题库管理与答题状态机是技术重点,成绩报告的可信度决定产品价值。
教育培训机构要做学生测评,让学生在线上答题、出报告、看分析。听着是个常规功能,真做起来坑一个接一个。最要命的是答题状态机:中途退出、断网重连、时间到了自动交卷,这些边界情况只要有一个处理不好,学生的成绩就错了。教育产品里成绩错一次,信任基本就崩了,家长能追着你问一星期。所以这个项目一开始我就跟团队说,先把正确性做到位,别的都往后排。
我们把答题进度实时存到服务端,每答一题就同步一次。学生中途退出去接个电话、断个网,回来还能接着做。交卷以服务端时间戳做裁判,本地改时间根本没用。这些设计都是为了一个目标:不管客户端发生什么,成绩必须是准的。宁可多存几次,也不能丢一道题的答案。断网重连后,客户端先从服务端拉最新进度,再接着往下答。
倒计时这块也做了不少细节。考试时间到了,哪怕客户端没收到交卷指令,服务端也会按时间自动结算,防止有人拖时间。前端显示的是倒计时,实际以服务端为准,两者偶尔差个一两秒,我们也做了容差,不让考生因为网络延迟吃暗亏。边界情况想全了,出事的概率才低。我们还做了断线后的答案保护,网络抖动也不会丢作答。
题库管理上我们支持了单选、多选、判断和主观题,老师在后台能自己传题、组卷。这里要处理的东西比想象多:题目配图、选项顺序、答案解析、分值设置,还有组卷时的知识点覆盖。我们把题库做成了按知识点打标签的结构,后面出报告全靠它,所以标签打得越细,报告越有价值。
成绩报告才是整个产品的价值所在。光给个分数没用,家长要的是“孩子哪块弱、跟同龄人比怎么样、建议怎么补”。我们做了一套分析逻辑,把错题按知识点归类,算出每个知识点的掌握度,再生成可视化的报告。柱状图、雷达图一上,家长一眼就能看懂孩子的问题在哪,比光看一个总分有用多了。报告里还带了错题回顾,孩子错哪道、为什么错,都能点开看。
报告的准确性我们盯得特别紧。归错类、算错分,家长第一个找你。上线前我们拿历史考试数据反复对,报告里的每个数字都要能和原始答题记录对上。这块没有捷径,就是一条条验。我们甚至做了一份对照脚本,自动比对报告数值和答题明细,有对不上的立马查。上线头几天,我们每天人工抽几份报告核对,确认没问题才敢放量。
主观题这块我们暂时没有做自动批改,老师在线阅卷打分,分数回传后统一算总评。虽然自动化程度低一点,但胜在可控,教学上主观题的评判本来也需要老师来把关,硬上机器评分反而容易出争议。这块我们留了口子,以后老师想上辅助批改再迭代。阅卷进度我们也做了展示,老师批到哪、还有几份没批,一眼清楚。
家长端和机构端我们也做了区分,家长看到的是自己孩子的报告和建议,机构老师看到的是全班的整体情况和薄弱点分布。两边要的东西不一样,展示自然不能一样。老师拿着班里的数据,能很快知道该补哪块、怎么排课。家长看到进步曲线,机构看到整体短板,两边都满意。
做完这个项目我最大的感受是:教育类产品对“正确性”是零容忍的。多花时间在边界和校验上,比加什么花哨功能都实在。一个功能再炫,成绩错一次就没人用了;反过来,功能朴素点,但数据永远准,家长反而认你。教育的信任,是靠一个题一个题算对攒出来的。