Tour for schools
Every door, every button, in the order of a school day.
This page is the script for a visit. It names each screen, who is allowed through the door, and what every field, menu, and button does when it is pressed. The demo school is already filled. Nothing here is a second product. It is the same schoolground.ai a teacher opens in the morning.




A fifteen-minute walk

Sit with the principal, the class teacher, the accountant, and one parent login. Use the school slug riverside and the password DemoSchool#2026.
- Open the front door. Read the three cards: safety, money, and today. Press Lab screens.
- Press Open owner. Priya Menon lands on Home. Read the four numbers aloud. They are the day.
- Press the rose card, Absent today. On Attendance, leave the section and the date, press Show, mark one child absent, and press Save attendance. The pill turns rose.
- Open Notices. Write a short title and a plain sentence. Leave Section on Whole school. Press Publish notice.
- Press Lab at the foot of the rail, then Open parent. Today opens on the children linked to Rohan Shah. Attendance, the notice, the fee balance, the latest receipts, the bus, and the marks are on one screen.
- Open Notes. The class name is already chosen. Open a tab, then press Open PDF on a note. The sheet is the message the teacher filed.
- Press Lab, then Open teacher. Home counts only Arjun Das’s section. Attendance has no section menu, because there is only one class.
- Press Lab, then Open accounts. Open Fees, open an invoice title, and press Print receipt. The paper is the payment rows. There is no online checkout on this page.
Five doors

One school. Five logins. The dark rail shows only the doors that role may open. Typing another address by hand sends a parent to Today and everyone else to Home.
Owner
The person who opened the school. Demo: Priya Menon, admin@riverside.demo.
- Home
- Students
- Classes
- Attendance
- Fees
- Notices
- Notes
- Transport
- Admissions
- Exams
- Staff
- Audit
Admin
Same doors as the owner. Created from Staff, role Admin.
The rail matches the owner, item for item.
Teacher
Demo: Arjun Das, teacher@riverside.demo. One section, Class 4 A.
- Home
- Students
- Attendance
- Notices
- Notes
- Transport
- Exams
Accountant
Demo: accountant@riverside.demo. Money, and the student list needed to find a child.
- Home
- Students
- Fees
Parent
Demo: parent@riverside.demo. Linked to two children in Class 4 A.
- Today
- Notes
| Screen | Owner | Admin | Teacher | Accountant | Parent |
|---|---|---|---|---|---|
| Home | Yes | Yes | Yes | Yes | |
| Today | Yes | ||||
| Students | Yes | Yes | Read | Read | |
| Add a student | Yes | Yes | |||
| Guardians, pickup, consent | Yes | Yes | Read | Read | |
| Classes | Yes | Yes | |||
| Attendance | Yes | Yes | Own section | ||
| Fees and receipts | Yes | Yes | Yes | ||
| Notices | Yes | Yes | Own section | ||
| Class notes | Yes | Yes | Own section | Own class | |
| Transport setup | Yes | Yes | Boarding only | ||
| Admissions | Yes | Yes | |||
| Exams structure | Yes | Yes | Marks only | ||
| Staff | Yes | Yes | |||
| Audit | Yes | Yes |
A parent login is not created on Staff. It is created on the student page, with an email and a password of at least ten characters, so the login is tied to a child. A school cannot see another school. The clock on every screen follows the school timezone, which starts as Asia/Kolkata. There is no timezone menu.
The frame on every screen
After sign-in, the school sits in a dark green rail and a sunlit page. On a phone the rail becomes a sticky bar: the gem stays, the wordmark is tucked away, the doors scroll sideways, and Sign out stays at the end.
schoolground.ai
Everyone signed inThe gem and the name at the top of the rail. A parent press goes to Today. Any other role goes to Home. It does not open a new tab.
Slug and role
Everyone signed inUnder the wordmark, in pale green: the school slug, a dot, and the role. Demo reads riverside · owner, or teacher, accountant, or parent. On a phone this line is hidden so the doors fit.
The rail
Filtered by roleEach door has a small icon and a colour. The open door is a lighter wash and is marked as the current page. Doors do not download the next page in advance, so a slow connection is not asked to fetch the whole school.
Home and Today · mint · a houseStudents and Staff · sky · a personClasses · violet · a buildingAttendance · mint · linesFees · amber · a cardNotices · rose · a speech bubbleNotes · violet · a pageTransport · sky · a busAdmissions · violet · a plusExams · amber · a pageAudit · rose · a clock
Lab
Riverside onlyOutline button at the foot of the rail, beside Sign out. It is drawn only when the school slug is riverside. It opens the lab picker without ending the session. Choosing another person replaces the session and opens that person’s home.
Sign out
Everyone signed inAn outline button at the foot of the rail. It ends the session at once and returns to Sign in. The label stays Sign out while it works. It does not change to Saving. The cookie is removed and the session row is revoked. The cookie name is schoolground_session. It lasts fourteen days, is not readable by page scripts, and is sent only to this site.
Top bar
Everyone signed inA white band. On the left, the school name in the serif face, for example Riverside Public School. On the right, a round letter taken from the person’s name, then the full name. This bar is not a menu. It does not contain search, notifications, or a profile button.
Green save buttons share one behaviour. While the save is in flight the label becomes Saving… and the button will not take a second press. Search, Show, Update, Sign out, and Print receipt are not that kind of button. Their labels stay put.
Front door

The school day, proved in one screen.
The address is the site root. A person who is already signed in never sees this page: a parent is sent to Today, and everyone else to Home.
schoolground.ai
Signed outThe wordmark at the top. It reloads this same front door.
Safety
Signed outMint card. The heading is Safety. The text is attendance, boarding, an authorised pickup, and a bus that says when it has stopped reporting.
Money
Signed outAmber card. The heading is Money. The text names UPI, cash, NEFT, and cheque, and says the receipt is a ledger row.
Today
Signed outSky card. The heading is Today. The text is one notice in plain text, including Hindi as typed.
Lab screens
Signed outGreen button. Opens the riverside picker, where one press signs in as the owner, the teacher, the accountant, or the parent.
Sign in
Signed outOutline button. Opens the sign-in card.
Open a school
Signed outOutline button. Opens the registration card.
Tour for schools
Signed outOutline button. Opens this page.
Sign in

Sign in
A person who is already signed in is sent onward and does not see the form. The wordmark returns to the front door. Under the button, the card prints the demo school, the shared password, and the four demo emails.
School slug
RequiredPlaceholder riverside. The browser may offer an organisation autofill. The value is trimmed and lowercased. It must be letters and digits, with hyphens only between words, such as riverside or green-valley. A blank, a space, or a leading hyphen fails as a mismatch.
Must look like an email. It is trimmed and lowercased before it is checked. The browser may offer a username autofill.
Password
RequiredHidden as it is typed. Any length is accepted at the door. A wrong password and a missing user produce the same sentence, so the form does not reveal which of the three fields was wrong.
Sign in
Green save buttonBecomes Saving… and ignores a second press. A match opens Today for a parent and Home for every other role. Eight tries are allowed for the same school and email inside ten minutes. The ninth shows the wait message, even if the password is then correct. A successful sign-in clears that count.
Lab screens
Signed outText link under the demo line. Opens the riverside picker. Four buttons sign in as Priya Menon, Arjun Das, Neha Kapoor, or Rohan Shah, using the same password check as this form. A parent press opens Today. The other three open Home. On the riverside rail, the Lab button returns to that picker so the room can switch without typing.
Register a school
Signed outText link under the demo line. Opens Open a school.
Open a school

Creates the school, the current April–March year, and the owner login.
There is no board menu anywhere else. The choice made here is stored with the school. The new owner is signed in and lands on Home. The academic year is the current April-to-March year and is marked current. Later classes and exams attach to that year. There is no screen to add a second year.
School name
Required2 to 120 characters. This is the name in the top bar.
Slug
RequiredPlaceholder riverside. 3 to 40 characters, lowercased, letters and digits with hyphens between words. It must be unique across every school on the service. A taken slug shows the already-used message. Autofill is off.
Board
Required, default CBSECBSE · the menu opens hereICSEState boardIBIGCSE
These five are the only values the form will save.
City
OptionalUp to 80 characters. It may be left blank. It is stored and is not shown on Home.
Your name
RequiredThe owner’s name, 2 to 80 characters. The browser may offer a name autofill. The first word of this name is used in the Home greeting.
The owner’s sign-in email. It is lowercased. It must be unique inside the new school.
Password
Required10 to 72 characters. Shorter than 10 shows the weak-password message. The browser may offer a new-password autofill.
Create school
Green save buttonBecomes Saving…. On success the owner is inside the new school, on Home, with an empty register.
Already have a login
Signed outText link back to Sign in.
Home

Here is the day, ready when you are. Open a number to deal with it.
Staff only. The heading is a greeting from the school clock plus the first name: Good morning before noon, Good afternoon before 5 pm, and Good evening after that. A teacher’s absent count, marked rows, and student count cover only the sections that teacher is assigned. Fees still due, buses not live, new enquiries, and the notice titles are the whole school for every staff role. The page is one read.
Absent today
Rose. Links for owner, admin, and teacherThe count of children marked absent on the school’s today. An accountant sees the number and cannot press it. A press opens Attendance.
Fees still due
Amber. Links for owner, admin, and accountantThe rupee sum of every open and partial invoice, shown as Indian rupees with two decimals. Void and paid invoices are outside the sum. A teacher sees the number and cannot press it. A press opens Fees.
Buses not live
Sky. Links for owner, admin, and teacherBuses with no location in the last three minutes, including a bus that has never reported. An accountant sees the number and cannot press it. A press opens Transport.
New enquiries
Violet. Links for owner and adminEnquiries whose status is still New. Teacher and accountant see the number and cannot press it. A press opens Admissions.
Latest notices
Everyone on HomeUp to five titles, newest first, with the time. The body is not on this card. If the school has published nothing, the card says No notices yet. Under the list, one quiet line gives the attendance rows saved today and the active students in view.
Mark attendance
Owner, admin, teacherOutline button inside Open a register. Opens Attendance. Hidden from the accountant.
Record a payment
Owner, admin, accountantOutline button. Opens Fees. Hidden from the teacher.
Check the buses
Owner, admin, teacherOutline button. Opens Transport. Hidden from the accountant.
Today

The day for each child, in one place.
This is the parent home, and it is the only home in that rail. The heading greets the parent by first name. Each linked child is a block: a round letter, the child’s name, then class, section, and admission number. The demo parent sees two children. A login with no child shows one panel: No child is linked to this login. A school admin can add a guardian password from the student page. There are no buttons on this page. It is a reading screen, loaded as one read.
Attendance
Mint, amber, or roseThe word for today in the school timezone: present, absent, late, or not marked. Present is mint. Late is amber. Absent is rose. Not marked stays mint, because the child has not been marked absent.
Announcement
RoseThe newest notice that is for the whole school or for this child’s section. The title is strong, and the body is the full text, including Hindi. Up to four older notices follow as title and time only. Five is the cap. If none exist, the tile says No notice for this class yet.
Fee
Amber when money is open, mint when clearThe open balance across open and partial invoices, or the word Clear. Under it, up to ten open invoices: title, due date, and the rupees left on that invoice. If nothing is open, No open fee. When payments exist, a small heading Received lists up to three newest receipts: rupees, the method in capitals, the reference, and the time. A parent cannot press through to the office receipt, and there is no Pay button.
Bus
Mint, amber, rose, or skyThe bus label, or No bus with Not assigned on a sky tile. A reporting bus is mint and says Live when the last location is three minutes old or newer. Older than that, the tile is amber and says Stale. A bus with no location at all is rose and says Not reporting. The age reads in seconds under a minute and a half, then minutes, then hours. If the gate has a boarding row, a last line says boarded or alighted and the time.
Results
VioletThe latest exam name, then each subject as score and maximum, such as 18/20. Whole numbers drop the decimal. If the child has no marks, No marks yet.
Students

Search by admission number first. The list stays at 50 rows so the page stays quick.
Owner, admin, teacher, and accountant. Teacher and accountant can search and open a child. They do not see Add student.
Search
OptionalPlaceholder ADM001 or Aanya. Blank shows the first 50 children by first name. A value matches an admission number that starts with it, or a first or last name that contains it. Matching ignores case. The address keeps the search, so a refresh shows the same list.
Search
OutlineThe label stays Search. It does not become Saving. It reloads this page with the query.
Add student
Owner and adminGreen button. Opens Add student. Hidden from teacher and accountant.
Admission, Name, Class, Status
Up to 50 rowsAdmission number is the link to that child. Name is first and last. Class is the class name and the section name. Status is the stored word, active or withdrawn. This screen has no button to withdraw a child. An empty list says Nothing here yet.
One student

The heading is the child’s name. The line under it is admission number, class, and section. Owner and admin see the three forms. Teacher and accountant see the facts and no forms. A missing id shows the ordinary missing page.
Open balance
Amber if due, mint if clearRupees still open on this child. It is not a link.
Authorised pickups
SkyHow many pickup people are on the list.
Record
VioletThe status word, active or withdrawn.
Bus
Mint, amber, rose, or skyThe bus label, or None. The second line is Live, Stale, or Not reporting, plus the age, using the same three-minute rule as Today. No assignment says No bus assigned on a sky card.
Guardians
Everyone who can open the childEach guardian shows name, relation, phone or No phone, and email or No email. Consent chips sit under the name. A granted purpose reads photos yes, transport_share yes, or marketing yes. A withdrawal reads the purpose and no. Chips are not buttons.
Authorised pickup
Everyone who can open the childName, relation, and phone. If the list is empty: No pickup person yet. The gate then has only the guardian list.
Add guardian · Name
Owner and admin, requiredAt least two characters.
Add guardian · Relation
OptionalPlaceholder mother. Left blank, the saved relation is the word guardian.
Add guardian · Phone
OptionalStored as typed. There is no format check on this field.
Add guardian · Email
Needed only when a password is setLowercased. A password without a real email is rejected. The email must be unused in this school.
Add guardian · Login password
OptionalPlaceholder Optional, 10+ characters. Leave it blank and the guardian is a name on the child, with no login. Fill it with at least ten characters and a parent user is created, role parent, and linked to this guardian. Shorter than ten shows the weak-password message.
Save guardian
Green save buttonBecomes Saving…. The page returns to this child. The new guardian is marked primary.
Add pickup · Name
RequiredAt least two characters.
Add pickup · Relation
OptionalLeft blank, the saved relation is the word relative.
Add pickup · Phone
OptionalStored as typed.
Save pickup
Green save buttonBecomes Saving…. Returns to this child. There is no button to remove a pickup person.
Consent · Guardian
Shown only after the first guardian existsLists every guardian on this child by name. It opens on the first guardian.
Consent · Purpose
Default PhotosPhotos · opens hereShare transport locationMarketing
Those three purposes are the whole list. A new choice for the same purpose is added. Older chips remain, so the history of the choice stays visible.
Consent · Choice
Default GrantGrant · opens hereWithdraw
Record consent
Green save buttonBecomes Saving…. Writes an audit row named grant or withdraw. Returns to this child.
Gender is asked when the child is added and is not printed on this page. Last name may be blank.
Classes

Classes belong to the current academic year, April to March.
Owner and admin. The table lists class, section, and teacher. A class with no section yet does not take a table row. An empty table says Nothing here yet. A teacher cell with nobody assigned says Unassigned.
Add class · Name
RequiredPlaceholder Class 6. 1 to 40 characters. The name must be unique inside the current year. A repeat shows the already-used message. The new class sorts after the ones already there.
Add class
Green save buttonBecomes Saving…. Returns to Classes. The class has no section until the next form is used.
Add section · Class
RequiredEvery class in the current year, by name. It opens on the first class. If the school has no class, the menu is empty and the save fails the field check.
Add section · Section
RequiredPlaceholder A. 1 to 20 characters. Unique inside that class, so Class 4 can have one A.
Add section · Teacher
Default UnassignedThe first option is Unassigned, and it is selected. After it, every user whose role is teacher, by name. Admin and accountant do not appear. Choosing a teacher is what lets that teacher mark attendance, publish a notice, and file a note for this section only.
Add section
Green save buttonBecomes Saving…. Returns to Classes.
Attendance

One section, one save. The whole sheet is a single database statement.
Owner, admin, and teacher. A teacher with one section sees the class and section as a sentence, and the section menu is absent. A teacher with several sections, and every owner or admin, gets the menu. A teacher with no section sees No section is assigned to you yet. and no sheet.
Section
Hidden when a teacher has exactly one sectionClass name and section name. It opens on the section in the address, or the first section the person may see. A teacher’s list is only their own sections.
Date
A date controlOpens on the school’s today, or on the date already in the address if that date is a real calendar day. The browser draws the calendar. There is no separate term menu.
Show
OutlineThe label stays Show. It loads that section and that date. It does not save marks.
present, absent, late
One row per active childEach row shows the child’s name and admission number, then three pills. The words are lowercase: present, absent, late. Present lights mint, absent lights rose, late lights amber. If the day is already saved, the saved pill is the one filled. If the day is empty, present is filled, so an untouched sheet means everyone present only after a save. A section with no active children says No active students in this section. and hides both save buttons. A sheet longer than 80 children is rejected.
Save attendance
Green save buttonBecomes Saving…. Writes one row per child for that date. Saving again updates the same day. It does not add a second row. The page comes back to the same section and date. The audit action is mark.
Mark everyone present
Green save button, under the sheetA separate form. It sets every active child in the section to present for that date, including children who were already absent or late. It becomes Saving…. The audit action is mark_all. It is hidden when the section has no active children.
Fees

Record the UPI reference from the bank alert. The same row is what a payment gateway will insert later. Receipts cannot be edited.
Owner, admin, and accountant. The list is the 50 newest invoices. There is no search box on this page. Find a child from the student name in the row, or create the invoice with the admission number.
Student, Invoice, Due, Balance, Status
50 newestStudent is the name. Invoice is a link to that receipt. Due is the date. Balance is billed minus received, in rupees. Status is a chip: open and partial are amber, paid is green, void is quiet. An empty table says Nothing here yet.
New invoice · Admission number
RequiredPlaceholder ADM001. It must match an active child in this school. A missing or withdrawn child fails the check.
New invoice · Title
RequiredPlaceholder Term 2 tuition. At least two characters. This title is what the parent sees on Today.
New invoice · Amount in rupees
RequiredPlaceholder 45000. Whole rupees, or rupees and one or two paise, such as 45000.50. Up to eight digits before the dot. Zero, a minus, a comma, and a rupee sign are rejected. The books store paise. The screen shows rupees.
New invoice · Due on
Required dateA calendar date. The new invoice starts as open, with nothing received.
Create invoice
Green save buttonBecomes Saving…. Returns to the fee list. It does not open the receipt. The audit action is create, on an invoice.
Fee heads
Read onlyName and rupee amount of each template. If the school has none, No templates yet. This card has no add button and no edit button. Enrol, on Admissions, can raise the first invoice from one of these names.
One receipt

The page title in the browser tab is Receipt. The heading is the invoice title. The line under it is the child, the admission number, and the due date. Owner, admin, and accountant. A missing invoice shows the ordinary missing page.
Billed
SkyThe invoice total in rupees.
Received
MintThe sum of payment rows. It moves only when a new payment is saved. A payment cannot be edited or deleted.
Balance
Amber while money remains, mint at zeroBilled minus received.
Status
On the fourth cardopen before any payment. partial after a payment that does not clear the bill. paid when the balance is zero. void after an unpaid invoice is voided. The chip is amber for open and partial, green for paid, and quiet for void. The status is written by the payment itself. There is no status menu.
When, Method, Reference, Amount
Newest payment firstWhen is the school-timezone time. Method is UPI, NEFT, CHEQUE, or CASH. A blank reference prints as a dash. Amount is rupees.
Record payment · Amount in rupees
Shown while the invoice is open and a balance remainsRequired. The placeholder is the balance, so a bill of ₹24,000.00 offers 24000. The same rupee rules as a new invoice. An amount above the balance shows That amount is more than the balance due. A void invoice shows This invoice is void.
Record payment · Method
Default UPIUPI · opens hereNEFTChequeCash
Those four are the only methods. There is no card, no wallet, and no payment-gateway button.
Record payment · Reference
Optional, and permanentPlaceholder UPI transaction id. If it is filled, the same reference cannot be used again in this school, on any invoice. A repeat shows the already-used message. An empty reference is allowed, and empty references are not treated as duplicates. Cash often has no reference. UPI should have the bank alert id.
Save receipt
Green save buttonBecomes Saving…. Adds one payment row and returns to this receipt. The audit action is pay. When the balance is zero, or the invoice is void, this form is gone. In its place a panel titled Receipt closed says paid and void invoices do not take new payments, and a repeat UPI reference is rejected.
Print receipt
Outline, only after the first paymentThe label stays Print receipt. It opens the browser’s print dialog. It does not save a file by itself. On paper the rail, the top bar, and every form disappear. The school name is printed in green at the top. The title, the child, the three money figures, the status, and the payment table remain. A receipt with no payments hides this button, because there is nothing yet to hand to a parent.
Void unpaid invoice
Green save button, only when nothing has been receivedShown only while status is not void and received is zero. It becomes Saving…. The invoice is marked void and will not take a payment afterwards. The audit action is void. Once a single rupee is received, this button disappears. There is no undo.
Notices

Plain text, so a parent can read it on a slow phone. Leave the section empty to send it to the whole school.
Owner, admin, and teacher. The left column is the 50 newest notices. Each card is a title, then either Whole school or the class and section, then the time, then the body in full. Hindi stays Hindi. There is no edit button and no delete button.
Publish · Title
Required2 to 140 characters.
Publish · Message
RequiredA tall box, four rows, up to 2000 characters. This is the body the parent reads on Today.
Publish · Section
Default depends on the roleOwner and admin open on Whole school, then every section they can see, as class and section. A teacher does not see Whole school. The menu opens on that teacher’s first section, and the list is only their sections. A teacher who posts without a section is rejected. A teacher cannot publish into another teacher’s class.
Publish notice
Green save buttonBecomes Saving…. The notice appears at the top of the list and on Today for the right children. The audit action is publish, on a notice.
Class notes

Paste the message you sent on WhatsApp. It is filed under the tab you name, for that class, and turned into a formatted sheet.
Owner, admin, teacher, and parent. The app does not sign into WhatsApp and does not read the phone. The teacher pastes the message they already sent. Parents see the notes for the classes of their own children, including a class that has no note yet. Accountants have no Notes door. A login with no class says No class is linked to this login yet. The list keeps the 50 newest notes the person is allowed to see.
Class
Owner, admin, or a teacher with more than one sectionClass and section. It opens on the class in the address, or the first class. A teacher with one section, and a parent with one class, sees the class name as a sentence and no menu. A parent with children in two classes gets the menu and the Show button, and does not get the filing form.
Show
Outline, beside the class menuThe label stays Show. It loads that class. Hidden when there is no menu.
Tabs
One link per tab nameIf the class has notes, each distinct tab is a link. The open tab is marked. If the class has no notes, a single tab reads Homework. Pressing a tab changes the address and does not save anything. Tabs wrap onto extra lines on a narrow screen.
A note
Everyone who can see the classA small line in capitals: class, section, and tab. Then the title, the author name or the word Teacher, and the time. The body keeps the line breaks of the message. An empty tab says No note in this tab yet.
Open PDF
Outline button on each noteOpens the sheet in the browser. An English note is a small PDF. A note typed in any of the 22 scheduled languages, or in French, Spanish, or German, opens as a page in that same writing, so the letters are not replaced. A note the person may not see returns a not-found response. Parents, teachers of the class, owners, and admins may open it.
File a message · Tab
Owner, admin, teacher. Hidden from parentsRequired. 1 to 40 characters. It opens already filled with the tab on screen. As the teacher types, the browser can suggest tab names that already exist on this class. A new name creates a new tab. Extra spaces collapse to one space.
File a message · WhatsApp message
RequiredEight rows, up to 4000 characters. The placeholder is a short homework list. The first line becomes the title when it is 2 to 80 characters, more text follows it, and the first line does not end with a full stop. Otherwise the tab name is the title and the whole message is the body.
Make the note
Green save buttonBecomes Saving…. Files the note on the class that is open, under the tab that was typed, and returns to that tab. A teacher can file only on a section they teach. The audit action is publish, on a class note. There is no edit button and no delete button.
Transport

A location older than three minutes is stale. The screen says so instead of showing a pin that is no longer true.
Owner, admin, and teacher. The teacher may record boarding. Routes, buses, assignment, and location are owner and admin only. There is no map on the page. The truth is the word Live, Stale, or Not reporting.
Bus, Route, Riders, Location, Age
Every busBus is the label, a dot, and the registration. Route is the route name. Riders is how many children are assigned, not how many boarded today. Location is a chip: Live green, Stale amber, Not reporting rose. Age is the same seconds, minutes, and hours as Today, or No location yet.
Boarding · Admission number
Owner, admin, teacher. RequiredMust match a child. An unknown number fails the check.
Boarding · Bus
RequiredEvery bus by its label. It opens on the first bus. The same menu shape is used on Assign a student and on Record a location.
Boarding · Event
Default BoardedBoarded · opens hereAlighted
This is the line the parent sees as Last gate on Today.
Save boarding
Green save buttonBecomes Saving…. Adds an event. It does not remove the previous one. The audit action is the event word, boarded or alighted.
Assign a student · Admission number
Owner and adminThe child moves onto this bus. A child already on a bus is moved, not duplicated. One child, one bus.
Assign
Green save buttonBecomes Saving…. The audit action is assign, on a bus.
Record a location · Latitude
Owner and adminPlaceholder 12.9352. From −90 to 90.
Record a location · Longitude
Owner and adminPlaceholder 77.6245. From −180 to 180. A fresh ping makes that bus Live for three minutes.
Save ping
Green save buttonBecomes Saving…. This write is not copied into the audit list, so a bus that reports often does not flood the register.
Route · Name
Owner and adminPlaceholder East. At least two characters.
Add route
Green save buttonBecomes Saving…. The audit action is create, on a route.
Bus · Route
RequiredEvery route by name. It opens on the first route. A school with no route cannot add a bus until a route exists.
Bus · Label
RequiredPlaceholder Bus 3. At least one character. This is the name parents see.
Bus · Registration
RequiredPlaceholder KA-01-AB-1000. At least four characters. It is stored in capitals.
Add bus
Green save buttonBecomes Saving…. The audit action is create, on a vehicle. There is no button to retire a bus.
Admissions

Enrol creates the student in a class of the same name, and can raise the first invoice from a fee head.
Owner and admin. The table is the 50 newest enquiries. The note typed on the form is stored and is not shown in the table.
Child, Guardian, Class, Status, Move
50 newestGuardian is the name, a dot, and the phone. Status is a chip: new is amber, contacted is quiet, enrolled is green, closed is quiet. An enrolled row stops offering menus. It says Student record created.
Move · status
On every enquiry that is not enrolledNewContactedClosed
It opens on the enquiry’s current status. Enrolled is not in this menu. The only way to enrol is the Enrol button. Posting an enrolled status by hand shows Use Enrol to create the student.
Update
Outline, beside the status menuThe label stays Update. It saves the status and returns to the list. The audit action is the status word itself: new, contacted, or closed.
Move · first invoice
Default No first invoiceThe first option is No first invoice. After it, every fee-head name. Choosing one raises an invoice titled with that name, for that template’s amount, due fourteen days from the school’s today.
Enrol
Green save buttonBecomes Saving…. It finds a class whose name matches the enquiry, ignoring case, or whose name is Class plus the enquiry text. It uses the first section of that class. No class shows Add a class with that name, then enrol. A class with no section shows That class needs a section before a student can join it. A second press on an enrolled enquiry shows This enquiry is already enrolled.
The child is created active. The first word of the child’s name is the first name, and the rest is the last name. The admission number is the next ADM number, padded to three digits, such as ADM004. The guardian is saved with the relation guardian and is primary. There is no parent password yet. That is added later on the student page. The browser then opens the new child.
New enquiry · Child
RequiredAt least two characters.
New enquiry · Guardian
RequiredAt least two characters.
New enquiry · Phone
RequiredAt least eight characters. Digits are expected, and the check is the length.
New enquiry · Class
OptionalPlaceholder Class 1. Left blank, the stored class is the word Unspecified, which will not match a real class until it is corrected. Enrol matches this text to a class name.
New enquiry · Note
OptionalUp to 2000 characters. Kept on the enquiry. Not printed in the table and not copied onto the student.
Save enquiry
Green save buttonBecomes Saving…. The new row starts as new. The audit action is create, on an enquiry.
Exams

Enter marks for one section. Empty cells are left unchanged.
Owner, admin, and teacher. Teachers enter marks for their own sections. Only owner and admin see the Subject and Exam forms. A school with no exam or no section shows Add an exam and a subject to start a mark sheet. and hides the grid.
Exam
Everyone on this pageExam names, in name order. It opens on the exam in the address, or the first exam.
Section
Everyone on this pageClass and section. A teacher sees only their sections. It opens on the section in the address, or the first allowed section.
Show
OutlineThe label stays Show. It loads the grid. It does not save.
The mark grid
One row per child, one column per subjectThe first column is the child’s name. Each subject is a small box. A saved mark is already filled. A blank box is skipped, so clearing the screen does not wipe a mark that was left untouched. Typing a mark replaces that subject for that child on the next save. The box accepts decimals.
Out of
Default 100The maximum stored with every mark in this save. It must be greater than zero and at most 1000. A typed mark below zero, or above this maximum, is rejected and nothing in that save is written.
Save marks
Green save buttonBecomes Saving…. If every box that was edited is blank, the page simply returns and writes nothing. Otherwise the filled boxes are saved and the page returns to the same exam and section. Saving again updates those subjects. The audit action is save, on marks. A teacher cannot save marks for another teacher’s section.
Subject · Name
Owner and adminAt least two characters. Subjects are for the whole school, not for one class. A repeated name is rejected.
Add subject
Green save buttonBecomes Saving…. The new subject becomes a column on the grid.
Exam · Name
Owner and adminPlaceholder Term 2. At least two characters. The exam belongs to the current academic year.
Add exam
Green save buttonBecomes Saving…. The new exam appears in the Exam menu. Parents see the latest exam that has marks, on the Results tile.
Staff

Parents are created from a student page so the login is tied to a child. Password hashes are not readable from this screen.
Owner and admin. The table is up to 100 people: name, email, and role, ordered by role then name. Roles you will see include owner, admin, teacher, accountant, and parent, because a parent user lives in the same list once a password has been set. The table does not show the phone, and it does not show a password.
Add staff · Name
Required2 to 80 characters.
Add staff · Email
RequiredA real email, lowercased, unique in this school.
Add staff · Phone
OptionalUp to 15 characters.
Add staff · Role
Default TeacherTeacher · opens hereAccountantAdmin
Owner is not in the menu. A second owner is not created here. Parent is not in the menu. A parent is created from the student page.
Add staff · Password
Required10 to 72 characters. Shorter than 10 shows the weak-password message. It is stored as a one-way scrypt hash. The screen never shows it again.
Create login
Green save buttonBecomes Saving…. Returns to Staff. The audit action is create, on staff. There is no button on this page to disable a login or to change a role.
Audit

Writes only. Opening a page is not logged, so the register stays small and fast.
Owner and admin. There is no filter, no search, and no button. The table is the 50 newest writes: When, Who, Action, and Record. Who is the person’s name, or System when the row has no actor. When uses the school timezone.
| When you press | Action | Record |
|---|---|---|
| Add class | create | class |
| Add section | create | section |
| Create login | create | staff |
| Save student | create | student |
| Save guardian | create | guardian |
| Save pickup | create | pickup |
| Record consent | grant or withdraw | consent |
| Save attendance | mark | attendance |
| Mark everyone present | mark_all | attendance |
| Create invoice | create | invoice |
| Save receipt | pay | payment |
| Void unpaid invoice | void | invoice |
| Publish notice | publish | notice |
| Make the note | publish | class_note |
| Add route | create | route |
| Add bus | create | vehicle |
| Assign | assign | bus |
| Save boarding | boarded or alighted | boarding |
| Save enquiry | create | enquiry |
| Update an enquiry | new, contacted, or closed | enquiry |
| Enrol | enrol | enquiry |
| Save marks | save | marks |
Save ping is a write the parent can feel, because the bus becomes Live, and it is left out of this list on purpose. Sign in, Sign out, Search, and Show are not writes of school records, so they are not listed either.
Every message
A failed save stays on the same screen and prints one sentence in a rose band. These are the sentences, in the words the school sees.
| When | The sentence |
|---|---|
| School, email, or password do not match | School, email, or password did not match. |
| Password is shorter than 10 characters | Use at least 10 characters. |
| Nine sign-in tries inside ten minutes | Too many attempts. Wait a few minutes. |
| A slug, email, admission number, class name, section name, subject, or payment reference is already used | That value is already used in this school. |
| A field is missing, too long, or not a real choice | Check the fields and try again. |
| The role may not do that, including a teacher filing a note for another class | You cannot do that. |
| The save did not land, and none of the clearer reasons fit | That did not save. Try again. |
| The child or the invoice was not found | That record was not found. |
| The payment is larger than the balance | That amount is more than the balance due. |
| A payment is posted to a void invoice | This invoice is void. |
| Enrol cannot find a class with that name | Add a class with that name, then enrol. |
| The class exists and has no section | That class needs a section before a student can join it. |
| Enrol is pressed on an enquiry that is already enrolled | This enquiry is already enrolled. |
| Someone tries to mark an enquiry enrolled from the status menu | Use Enrol to create the student. |
| Add student is opened before any section exists | Create a class and section first. |
| A signed-in page fails to load | This page did not load. The data request failed. Your other records were not changed. |
| Today has no linked child | No child is linked to this login. A school admin can add a guardian password from the student page. |
| Notes has no linked class | No class is linked to this login yet. |
| Attendance has no section for this teacher | No section is assigned to you yet. |
| The attendance section has no active children | No active students in this section. |
| A table has no rows | Nothing here yet. |
| Home has no notices | No notices yet. |
| The pickup list is empty | No pickup person yet. The gate then has only the guardian list. |
| A fee tile has no open invoice | No open fee. |
| A class has no notice | No notice for this class yet. |
| A child has no marks | No marks yet. |
| A note tab is empty | No note in this tab yet. |
| Fee templates have not been set | No templates yet. |
| Exams are not ready | Add an exam and a subject to start a mark sheet. |
| The receipt can take no more money | Paid and void invoices do not take new payments. A repeat UPI reference is rejected. |
Loading, empty, and print

While a page is opening
Signed inThree quiet bars stand in for the heading, the line, and the card. A screen reader hears Loading. The page does not say the word Loading in print. The bars are drawn by the page itself. They are not a downloaded picture.
Try again
When a signed-in page failsGreen button under the heading This page did not load. It asks for the same page again. Records that were already saved stay saved.
What print keeps
The receipt pagePrint receipt is the only print button in the product. The paper drops the dark rail, the top bar, the record-payment form, and the void button. It keeps the school name, the invoice title, the child, billed, received, balance, the status chip, and the payment table. Shadows are left off so a photocopier stays readable.
The menus stay in English. A school can type any of the 22 scheduled languages, and French, Spanish, or German, and the letters stay as typed. Segoe UI draws English, French, Spanish, German, Urdu, Kashmiri, and Sindhi. Nirmala UI draws Assamese, Bengali, Bodo, Dogri, Gujarati, Hindi, Kannada, Konkani, Maithili, Malayalam, Manipuri, Marathi, Nepali, Odia, Punjabi, Sanskrit, Santali, Tamil, and Telugu. Zero stays a zero. The school day itself does not fetch a font or a chart. These photographs belong to the tour. Colour is the status: mint when the day is clear, rose for an absence or a notice, amber for money or a stale bus, sky for the bus and the student list, violet for notes and results.
A school asking for a second product will not find it on these doors. There is no online payment wizard, no late-fee column, no pie chart, no inbox, no calendar, no leave form, no diary, and no discussion board. The day on the table is the attendance, the notice, the receipt, and an honest bus.