BUILD
A full school platform with five roles, protected student data, literacy screening and automated permission tests — deployed and in use.
- Client
- Jaafar Al-Tayyar Basic School for Boys
- Sector
- Education — basic school, Amman
- Status
- Delivered — in use
Before · The problem
A school moving from paper and scattered chat groups to one digital environment — grades, attendance, schedule, communication, and support for students who need help with reading and writing — under one non-negotiable rule: minors’ data is protected and every user sees only what is theirs, with a path to hand the platform to the Ministry of Education one day.
The build · What was built
- 01
Five roles, precise permissions
System owner · school admin · teacher · counsellor · student — each scope derived from real assignments (subject/grade/section/year).
- 02
Administration
Students, teachers, users, schedule, attendance, promotion, penalties, alerts, reports, audit log.
- 03
Academics
Grades (hidden from students until published), curricula and textbooks, library, skills, achievements.
- 04
Literacy screening
Individual and bulk assessment, support plans, a sensitive classification visible only to authorised teachers.
- 05
Counselling
Appointments and notes under a dedicated permission.
- 06
AI layer with written governance
Server-side only, runs with the user’s own permissions, never receives un-anonymised student data — “a servant of the educational process, not a chat page”.
Anonymised screenshots are being added.
How we worked · How it was built
- Documentation before code: vision, requirements, roles and permissions, database schema, user flows, security and privacy, AI governance, MVP roadmap — all approved in Arabic.
- Tests as the judge: acceptance criteria per feature and an automated permission matrix (role × resource × action) that runs on every change — Vitest for logic, Playwright for flows.
- Security by design: row-level security in the database, a restricted application role separate from the admin role, files stored in the database, unauthorised access attempts logged.
- Near-zero running cost on free tiers (Vercel + Supabase) with a clear upgrade path.
Today · Results
Numbers are published once the client approves them — we never invent figures.