Home / Case studies / A municipal safety education platform
A unified city-wide safety education entry point integrating learning, assessment and records.
Safety education for the city's primary and secondary schools is scattered across individual schools: resources are inconsistent and learning records do not interoperate.
The education authority needs one entry point to push out courses and see how each school implements them.
School network conditions also have to be taken into account — you cannot require every school to upgrade its bandwidth.
Delivered a municipal safety education platform with course learning, online assessment, learning records and statistical reports.
Courses are classified by school stage and theme; schools can choose compulsory and elective courses.
Learning records are aggregated automatically into a personal file and traceable across academic years.
Statistical reports drill down by district, school and grade, and the responsible authority can export them directly.
The table below lists this project's technical elements so clients can verify them independently.
Project stories without constraints are fiction. This section sets out four constraints: time, site, staffing and compliance.
These constraints directly shape the solution; every problem under 'Key challenges' below is forced out by one of them.
It is not “we worked hard”; it is “what the problem looked like, how we solved it, and what it cost”.
This section is for peers. If you are doing something similar, these points will save you a few detours.
Education platforms should not build their own user system; integrating with student records is the only sustainable approach.
Traffic to education platforms is pulsed; sizing for average concurrency is guaranteed to collapse.
Cross-year queries are a very common requirement, so the data model must be designed around the person from the start.
Talking only about successes is unconvincing. This section covers what we got wrong or did too late.
Doing it again, we would add data-quality validation in version one. The student records system contains a lot of non-standard data, which surfaced as assorted anomalies in the front end after sync — the cleansing effort was three times what we expected.
We underestimated peak load. We sized concurrency as a share of enrolled students, but at the start of term everyone logs in at once, so the ratio was far higher than expected.
Mobile adaptation came late. The design was PC-first, but many students actually use phones, so a mobile version was added later.