Chapter 22 — Mobile app
Home: /m/
Design detail is kept at
docs/MOBILE_APP.md.
22.1 What it is
The mobile app is an installable web app. It is not downloaded from an app store — it is opened in the phone's browser at your workspace address and then added to the home screen, where it behaves like an installed app: its own icon, its own window, no browser address bar.
It serves three audiences:
| Audience | Area |
|---|---|
| Parents and guardians | Their children's attendance, diary, results and fees |
| Customers | Their invoices, payments and fees |
| Teachers | Their classes, registers and lesson diary |
22.2 Why a web app rather than a store app
Worth understanding, because it explains what the app can and cannot do:
- It installs from your own workspace address, so there is nothing to publish, no review process, and no separate version to keep in step.
- Updates are immediate — everyone gets the current version on next open.
- It signs in with the same account as the desktop portal.
- The cost: no app-store listing, and push notifications are not available on older iPhones.
22.3 Installing it
On Android
- Open your workspace address in Chrome and sign in.
- The browser offers Install app or Add to Home screen. Accept it.
- The icon appears on the home screen.
On iPhone or iPad
- Open your workspace address in Safari — this does not work in other browsers on iOS.
- Sign in.
- Tap the Share button, then Add to Home Screen.
- Tap Add.
It must be https
Installation only works over a secure connection. On a plain http address the install
option never appears. If your workspace is reached over http, this is the reason.
22.4 Signing in
Use the same username and password as the desktop portal. If you have more than one
role — a teacher who is also a parent — Switch role at /m/switch-role/ moves
between the areas.
Parents and customers who sign in on the desktop are sent here automatically, because this is the area built for them.
22.5 The parent area
/m/parent/ home
/m/parent/child/<id>/ one child
/m/parent/child/<id>/attendance/ attendance
/m/parent/diary/ choose a child
/m/parent/diary/<id>/ lesson diary and homework
/m/parent/results/ choose a child
/m/parent/results/<id>/ results
/m/parent/fees/ fee vouchers
/m/parent/fees/<id>/pay/ pay one
Home lists every child on the guardian account — siblings together.
| Screen | Shows |
|---|---|
| Child | Their class, section and current standing |
| Attendance | Day by day, with a summary |
| Diary | What was taught and what homework was set, with any attachments |
| Results | Assessments, marks and grades |
| Fees | Vouchers with amounts, due dates and status |
Paying fees
- Open Fees and choose the voucher.
- Choose Pay and follow the payment instructions, QR code or link shown.
- After paying, submit the reference.
- The school confirms it against their bank and the voucher is marked paid.
The app does not take card payments directly. It shows the school's own payment arrangements and records what you say you paid, for staff to verify.
22.6 The customer area
/m/account/ home
/m/account/invoices/ invoices
/m/account/invoices/<id>/ one invoice
/m/account/payments/ payments
/m/account/fees/ fees, where applicable
The same records as the desktop portal (Chapter 21), laid out for a phone.
22.7 The teacher area
/m/teacher/ home
/m/teacher/classes/ my classes
/m/teacher/classes/<section-id>/attendance/ take the register
/m/teacher/diary/ diary entries
/m/teacher/diary/<assignment-id>/new/ new diary entry
Built for the two things a teacher does away from a desk:
Taking the register. Open the class, mark each student present, absent, late or on leave, and save. This is the same register as the desktop screen — take it once, wherever you are.
Writing the diary. Record what was taught and what homework was set, straight after the lesson rather than at the end of the day.
A teacher covering another teacher's class today sees that class here too, and can take its register and write its diary. The arrangement is day-scoped, so it disappears tomorrow.
22.8 What happens offline
The app does not store your records on the phone. Only the shell — the layout, styling and icons — is kept. Every page carrying real data is fetched fresh.
This is a deliberate decision, and worth understanding. These pages carry children's attendance and results and families' fee balances. Anything stored on the device would survive signing out and would be readable by whoever picks the phone up next — and these are shared and handed-down phones. Storing them would buy only the ability to re-read a page you have already seen, which is not worth that.
So:
- With a connection, everything works.
- Without one, you get a page saying you are offline and that nothing is stored. That is accurate, rather than the app appearing broken.
- Signing out clears everything.
22.9 Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No install option appears | The site is not being served over https, or you are not using Safari on iOS |
Use https; use Safari on iPhone and iPad |
| Sign-in is refused | Access was never granted, or the password is wrong | Ask the school or your account contact to grant or reset it |
| A parent sees only one child | The children are on different guardian records | Ask the school to consolidate them |
| "Not found" opening a child | That child is not on your guardian record | Ask the school to correct it |
| A teacher sees no classes | No class–subject assignments, or the account is not linked to an employee | See Chapter 19 |
| The offline page keeps appearing | There is no connection | Nothing is stored by design; reconnect |
| The app looks out of date | A cached shell | Close and reopen it; it updates on next open |
| A fee payment is not showing as paid | The school has not yet confirmed the reference against their bank | Allow time; contact the school if it persists |