Piriso EduData PlatformRepublic of Uganda · Ministry of Education & Sports

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.

Password for all accountsEduData-2026!

National planner

planner@edudata.go.ug

Sees 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.ug

Bound 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.ug

Read-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. 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. 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. 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. 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.