Al-Tafawuq School System
One school, four repositories, and a parent who only ever sees a WhatsApp link.

The interface above is a presentation mockup of the product, not a screenshot captured from a running system. The interface compositions further down this page are built from the platform’s real module structure — these are private client and commercial platforms.
- Role
- Full-stack engineer
- Year
- 2025
- Status
- Delivered · Deployed
- Category
- Dashboard
A centralised, Arabic-first school management platform covering students, classes, attendance, academic records, reports and notifications, built for administrators, teachers and authorised staff across a .NET backend, a Next.js dashboard and a static bilingual landing site.
The problem
School operations run on paper registers, personal phones and memory. The information a parent wants — attendance, marks, fees — exists, but it is scattered across staff who each hold one piece of it.
The outcome
A deployed platform where all business rules live in one API, verified end to end with seed data and prepared sample accounts before handover.
Stack
- .NET 8
- ASP.NET Core
- EF Core
- PostgreSQL 16
- Redis
- Next.js 15
- TypeScript
- Tailwind CSS
- Railway
One product, four repositories
The platform is split into four independent repositories that behave as one product — and the split only works because of a single rule about where business logic is allowed to live.
Landing
Public, static, bilingual
- Next.js static export
Dashboard
Admin, teacher, accountant, parent, student views
- Next.js 15
- TypeScript
- Tailwind CSS
Backend
All business rules live here
- .NET 8
- EF Core
- PostgreSQL 16
- Redis
Docs
Traceability, RBAC matrix, run and release guides
- Specs
- QA reports
- Deployment guides
Roles and daily operations
A school is a permission problem wearing a timetable. A teacher records attendance for their own classes; an accountant sees fees but not academic records; an administrator sees everything; a parent sees exactly one child. The modules are ordinary — the access model is where the work is.
- Students, classes, attendance and academic records form the operational core.
- Reports and notifications read from that core rather than maintaining their own copies.
- An RBAC permission matrix is maintained as documentation, so access can be reviewed without reading source code.
Delivery and verification
Handover is where school software usually fails: it works on the developer’s machine and nowhere else. The platform ships with a single run script, seed data, prepared sample accounts, an environment-variable matrix and a QA report, so someone who has never seen the project can bring it up and sign in.
- Deployment
Railway, configured environments
- Verification
Auth, permissions and major workflows with seed data
- Default language
Arabic
Next case study
Building something in this space?
I am available for a limited number of projects. Tell me what you are working on.