首页 / 案例 / 某市安全教育平台

教育 / 网站 + 课程平台

某市安全教育平台

全市统一的安全教育入口,学习、考核、记录一体化。

背景

全市中小学的安全教育分散在各校,资源不统一,学习记录不互通。

教育主管部门需要一个统一入口,既能下发课程,又能看到各校落实情况。

同时要兼顾学校网络条件,不能要求每所学校都升级带宽。

方案

交付市级安全教育平台,包含课程学习、在线考核、学习记录与统计报表。

课程按学段与主题分类,学校可选择必修与选修。

学习记录自动汇总到个人档案,跨学年可追溯。

统计报表按区县、学校、年级多维度下钻,主管部门可直接导出。

技术构成

下表为本项目的技术要素,客户可据此自行验证。

技术栈

前端Next.js 服务端渲染
模块课程学习 · 在线考核 · 学习记录 · 统计报表
性能服务端渲染,弱网环境下可用
统计按区县 / 学校 / 年级多维下钻

成效

  • 全市有了统一的安全教育入口,资源不再分散。
  • 学习与考核记录可追溯,跨学年不断档。
  • 主管部门可按维度查看落实率,管理有据。
  • 服务端渲染,学校无需升级带宽即可使用。

用到的能力

聊类似场景

01 / 约束条件

项目在什么限制下做的

没有约束的项目故事都是编的。这一节把时间、场地、人员、合规四条限制列清楚。

这些限制直接决定了方案的形状 —— 下面「关键难点」里的每一个问题, 都是被其中某一条限制挤出来的。

四类约束

范围全市中小学统一入口,覆盖从城区到乡镇的所有学校。
账号学生与教师账号要和现有的学籍系统对接,不能重复建号。
使用日常使用高峰集中在开学季与安全月,瞬时并发是平时的几十倍。
留存学习记录要跨学年保存,不能每年清零。
02 / 关键难点

真正卡住的地方

不是「我们很努力」,是「问题长什么样、我们怎么解的、代价是什么」。

账号怎么和学籍系统对接

如果单独建号,学生转学、毕业、新生入学都要人工维护,几百所学校根本管不过来。
怎么解的:以学籍系统为主数据源:每日增量同步学籍变动,平台侧只做映射不做编辑。学生转学自动跟随,毕业生归档,新生自动建号。代价是要处理学籍系统里不规范的数据(缺学号、重名、班级为空)。

开学季并发扛不住

第一年开学第一周,平台在集中登录时段出现明显卡顿。
怎么解的:做了三层:一是把静态资源全部前置到本地与 CDN;二是登录与查询接口做缓存,减少数据库压力;三是把非关键的统计类查询放到离线批处理。第二年在同样的峰值下平稳。

跨学年的记录怎么留

原设计按学年归档,但主管部门要看「三年成长轨迹」,归档后查不到历史。
怎么解的:改成按人而不是按学年组织数据:每个学生一条主记录,学年的学习数据挂在下面。归档只标记不删除,查询时按需展开。
03 / 可复用点

其他项目能直接借鉴什么

这一节是给同行的。如果你正在做类似的事,这几条能省你一些弯路。

以学籍系统为主数据源

教育类平台不要自建用户体系,对接学籍是唯一可持续的做法。

峰值前做资源前置

教育平台的流量是脉冲式的,按平均并发设计一定崩。

按人组织数据,不按学年

跨学年查询是很常见的需求,数据结构要一开始就按人设计。

04 / 复盘

如果重做一次

只讲成功的地方很假。这一节写我们做错或做晚的地方。

如果重做,会在第一版就做数据质量校验。学籍系统里有大量不规范数据,同步进来后在前端表现为各种异常,这部分清洗工作比预期大三倍。

对峰值压力的估算不足。原以为按在校人数的比例估算并发,实际开学季是所有人同时上,比例远高于预期。

移动端适配偏晚。原设计以 PC 为主,实际大量学生用手机,后来又补了一版移动端。

← 全部案例 回到首页