For evaluators
Documentation & Evaluator Guide
Everything you need to try EduData end to end: what it does, demo logins for each role, and a short walkthrough that shows the row-level security in action. Nothing here needs to be installed or configured. Accessible by design: full keyboard navigation, semantic HTML landmarks and ARIA labels, and colour contrast meeting WCAG 2.1 AA, so screen-reader and low-vision users can complete every task.
What the platform does
EduData is a business-intelligence platform for the education sector, serving the Ministry of Education and Sports under the Education (Pre-Primary, Primary and Post-Primary) Act 2008. It joins three national source systems - EMIS enrolment, UNEB examinations and NCDC curriculum - into governed analytical models and decision dashboards, scoped per user by administrative area. Six modules make that up. Server-rendered with a lightweight HTML payload and no heavy client-side framework, so it loads on low-bandwidth 2G and up-country connections.
Enrolment analytics (EMIS)
Enrolment trends by district and level across four academic years, the gender split for the latest year, and a district league table. CSS bar charts, no chart library.
Performance (UNEB)
PLE and UCE pass rates and division distribution, ranked by district, with school leaders and schools needing support surfaced side by side.
Curriculum coverage (NCDC)
Planned versus delivered curriculum topics per subject and district, banded on-track, behind or at-risk.
School register
Every school in scope with its EMIS code, level and ownership. Open a school for its full joined profile: enrolment history, exam results and curriculum coverage.
Data quality
The nightly ingestion monitor: per-source freshness, records ingested, and how many validation checks passed or were held before the data was published.
Row-level security
Scope is resolved from the signed-in user at the query layer, never from a request parameter. A district officer cannot widen their view by changing a URL.
Test credentials
Three demo accounts, one per role. The password is the same for all three.
EduData-2026!National planner
planner@edudata.go.ugSees the whole country. Every district and school is in scope across all modules, so this is the account for national roll-ups and cross-district comparison.
District education officer
district@edudata.go.ugBound to Wakiso district. Every module is filtered to Wakiso schools only; other districts are not visible and cannot be reached by editing a URL. This demonstrates row-level security.
Viewer
viewer@edudata.go.ugRead-only, national scope. Can browse every module but performs no administrative action.
How to use this system
Follow these in order to see the whole platform, and to watch the same screens narrow when you switch from a national to a district account.
- 1
Sign in as the national planner
Use planner@edudata.go.ug. You land on the planner overview with country-wide headline figures. Open Enrolment, Performance, Curriculum and Data quality from the module bar to see the full national picture.
Go to sign in - 2
Compare districts
On Enrolment you get a district league table and gender split; on Performance a pass-rate ranking; on Curriculum a coverage ranking. These are the cross-district views only the national planner can see in full.
Open enrolment analytics - 3
Sign in as the district officer
Sign out, then sign in as district@edudata.go.ug. Every module now shows Wakiso only. The same pages, the same code, a narrower dataset, because scope is enforced at the query layer.
- 4
Open a school profile
From Schools, open any school to see its joined profile: enrolment by year, UNEB results with pass rate, and NCDC curriculum coverage. As the district officer, schools outside Wakiso are not found even by direct link.
Open the school register
Data exchange & interoperability
EduData is built to publish as well as display. Two machine-readable endpoints let an uptime monitor or another government system consume its data directly, in line with Uganda's e-Government Interoperability Framework and the Government Enterprise Architecture maintained by NITA-U, which ask public systems to expose their data through documented, discoverable interfaces rather than screen-scraping or manual re-keying.
GET /api/health
An unauthenticated liveness probe returning the service status, name, server time and version as JSON. No data, no session required.
GET /api/export
An authenticated JSON export of enrolment, performance, curriculum and the school register. It runs through the same row-level scope as every page, so a district officer exports only their own district and cross-district rows never leak. Aggregate figures and the institutional register only, no personal data.
Team
Built and submitted by Piriso Consults Limited, a Uganda-based software consultancy delivering governed data-intelligence platforms for the public sector: source-system integration, row-level access control and decision dashboards.