The child, not the class, is the core data entity — individual learning paths, with teacher/district/city/country as aggregation layers on top, natively supporting different paces, pauses, and reassignment.
Offline-first tablet app (Flutter, Android) — schedule, addresses, materials, and progress all work with no connection; data syncs only once Wi-Fi is found.
Geolocation-verified visit reports — every session is bound to place and time, restoring trust in the primary data the entire reporting hierarchy depends on.
A permission hierarchy mirroring the ministry's real structure — ministry sees the nation, district heads manage enrolment and schedules, teachers see only their own route.
Centrally managed, centrally distributed curriculum materials — one source of truth so district-level teaching doesn't drift.
End-to-end aggregation with zero manual re-entry — session → child → teacher → district → province → national dashboard, all reading the same underlying data.
A stack chosen for handover, not for the demo — Django, Vue, Flutter, PostgreSQL: mature, well-supported across Latin America, built to be owned by a government team.