Skip to content
Schoolhouse

Product tour

Seven minutes inside a real school.

Every screen in this recording is the running product against a live database. It approves a request and undoes it, provokes a real timetable clash, cuts the network to save a register offline, and flips the whole app into Arabic.

Schoolhouse00:00 · 1/32

32 chapters · 7 min 11 s

Recorded in the demonstration school “St. Brendan’s College” with sample data. Choose a chapter to jump to it.

Transcript

Read the whole tour.

The full narration, chapter by chapter — for reading, searching and screen readers.

Show the transcript (32 chapters)
  1. 00:00Schoolhouse

    This is Schoolhouse, a school management system. One backend serves a web app and a phone app, with the same rules imported by both. Everything you are about to see is the running product against a live database.

  2. 00:15The sign-in screen

    The sign-in screen already carries the school's name and colours. A parent landing here should recognise their child's school, not a software vendor.

  3. 00:27A principal's morning

    Signed in as the principal. The dashboard opens on decisions waiting to be made — approvals, attendance that has slipped, fees outstanding — because the question a principal arrives with is what needs me today.

  4. 00:42Approve, with undo

    Approving takes one press, and offers an undo. Anything reversible simply happens. Confirmation dialogs are saved for the things that genuinely cannot be taken back.

  5. 00:56Undo

    That undo put it back. The request returns to the queue with no trace of a mistake a principal would otherwise have to explain, which is why a confirmation dialog would be the wrong tool here.

  6. 01:09Students

    Every list is paginated by cursor and scoped on the server. A principal sees the whole school. In a moment you will see a parent, who sees two children and nothing else.

  7. 01:23A student record

    Opening a pupil shows attendance, balance and guardians together. Notice the reference beside the name: this school has four children called Aoife Ryan, and staff need to know which one they are looking at.

  8. 01:37Report cards

    Report cards start from the work already marked that term, so a teacher edits evidence rather than inventing it. Teachers may only comment on subjects they teach.

  9. 01:49One card

    There are no cards for this term yet, so the school creates a draft for every pupil — each starting from that pupil's marked work. A card cannot be published until every subject carries a comment, and the count is shown plainly so nobody has to guess what is missing before a deadline.

  10. 02:07The timetable

    The timetable can be read by class, by teacher or by room — the three questions people actually ask of it.

  11. 02:16A clash, refused

    Adding a lesson where the teacher is already busy is refused by the server, and the refusal says which class is in the way. The check is not in the browser, so it holds for the phone and for anything else that calls the API.

  12. 02:31Certificates

    Certificates are numbered and recorded, so one can be reprinted or cancelled later.

  13. 02:38Issuing one

    The document is rendered by the server as a printable page. Everything a person types is escaped on the way in, so a name can never become code in a document that gets printed and handed to a child.

  14. 02:52Student ID cards

    ID cards carry a signed code rather than a student's id, so a card on a lanyard is not a lasting key to a child's record. Printing new cards cancels the previous ones, which is what makes a lost card stop working.

  15. 03:08Branding

    A school chooses its colour. The server generates the palette and tests it for contrast. A colour that cannot meet the standard is refused, with the nearest one that passes. A customer setting can never quietly switch accessibility off.

  16. 03:26Notifications

    Each person chooses their channels. Quiet hours hold anything that is not urgent until morning — held, not dropped — and a digest can collect the quiet updates into one message a day. Emergencies ignore all of it, which the screen says out loud.

  17. 03:45Command palette

    Control K opens a palette over the whole app: pages, workspaces, students and actions, reachable without a mouse.

  18. 03:56Arabic, right to left

    The app ships in English, Irish and Arabic. Choosing Arabic mirrors the entire layout, because the stylesheet is written in logical properties rather than left and right.

  19. 04:09Back to English

    And back again, without a reload.

  20. 04:13A teacher's day

    Now a teacher. Taking the register is the thing done every single day, so it is the first thing on the screen and it takes two taps on a normal morning.

  21. 04:24Taking it

    Everyone starts present, because that is the common case. The teacher marks the exceptions — an absence here — and the count updates as they go.

  22. 04:36The network drops

    Now watch what happens with no connection. I am cutting the network for real, not simulating it. The teacher saves anyway: the register is queued on the device, with the key that lets the server record it exactly once.

  23. 04:53And comes back

    When the signal returns, the queued register sends itself. Nothing was lost, nothing was written twice, and the teacher never had to think about it.

  24. 05:04Marking

    Work handed in can include a file — a document, or a photograph of a page. Only the student, their guardians and the teacher who marks the class can open it.

  25. 05:17A parent

    Now a parent. This account sees two children. That is decided by the server on every request, not by hiding things in the interface.

  26. 05:29Attendance

    Attendance day by day, banded by the school's own policy — the same function the dashboards and report cards use, so there are never two numbers to reconcile.

  27. 05:40The school bus

    The bus. Scans come from an attendant's phone, often with no signal, and each carries an id made on the device — so a scan sent twice tells the family once.

  28. 05:52Fees

    Fees. Paying opens the provider's own hosted page, which is the only honest way to keep card details out of this system entirely.

  29. 06:03Library

    A family can renew a book online. The lending rules live in one shared package, so the desk and the server refuse in exactly the same words.

  30. 06:14Admissions

    The office. Admissions run from a public application form, with a spam trap and a rate limit, through review to enrolment — which creates the pupil and the guardian account in one step.

  31. 06:28Payroll

    And payroll. Draft a month, check every payslip, then finalise. Finalising cannot be undone, so it asks you to type the month rather than offering a button to press by accident. The deduction rates are flat placeholders, and every screen says so.

  32. 06:48Built to be checked

    All of it is checked: two hundred and seventy seven end to end checks, thirty two unit tests over the shared rules, every response held to a published contract, and an accessibility scan across twenty four screens. The database schema belongs to Flyway, and the server refuses to start against one it does not recognise.

Want to click around yourself?

Book a live demo and we'll walk you through a fully populated sample school, answering your questions as we go.

Prefer email? aqbutt05@gmail.com