Madrasati
LiveSchool and nursery management
From enrolment to the family statement, from the attendance register to the bus home. Built to run several schools on one platform, each in a completely separate database.
- 3
- schools on the platform
- 557
- pupils
- 274
- automated checks
Demo accounts
Password for all: password — each role sees only what it should.
- School manager
manager@alnokhba.test - Teacher
teacher1@alnokhba.test - Bus driver
driver1@alnokhba.test - Platform owner
super@madrasati.test
Inside the system
Screens of the system running — not illustrations. Captured automatically from the working build, so they stay true to it.

What it does
Pupils and guardians
A full record per child, linked to several guardians, with who may collect them and who receives the invoices.
Attendance
A daily register per class, and for nurseries a full day sheet that reaches the mother before the child does.
School transport
Buses, routes and stops, and a trip manifest recording who boarded and when, who got off and who took them.
Fees and invoices
Fee types, invoices, payments, and a family statement that reads line by line.
Exams and marks
Exams, marks and weighted averages — with absences excluded rather than counted as zero.
Parents' portal
A separate app for families: attendance, marks, fees and today's bus — and nobody sees another family's child.
Design decisions
Why it is built this way
Three decisions that cost us time — and each is the difference between a system that gets used and one that gets abandoned.
A database per school, not a column
Most systems put every school in one table and separate them with a tenant column. We open the school's own database at sign-in: another school's rows are not hidden from you — they are not in the open file at all. A forgotten `where` clause cannot leak anything.
The assistant drafts; it never signs
Four Claude-backed features write drafts: the daily note, early warning, announcements, the term summary. Every one produces text a teacher reviews and saves herself. A system that signs a teacher's name to words she never read is not a feature — it is a liability.
The child still on the bus
A whole screen for one question: whose trip has ended while they are still marked aboard, and who was never recorded at all. Finishing a run does not assume the unrecorded were absent — assuming is where the error starts.
Is Madrasati right for you?
Try it yourself first, then tell us what is missing.

