Class teacher guide
You are a class teacher. In MySentinel you own a focused workspace for the classes assigned to you: a live view of who is on-site, the daily roll, a report digest, and the pickup requests that need your approval. You do not manage the whole school — that is the admin’s job, and the system keeps your view scoped to your classes only.
Everything here is task-oriented. Follow the short steps, and use the callouts to match what you see on screen.
Before you start: signing in
Open the app and sign in with your work email and password. On the demo school (“Demo Primary School”, SCH_DEMO) the class teacher account is mrs.naidoo@example.com / password123.

- The login screen shows the environment banner — for example “Environment: Local. This is not production.” Always check you are on the right environment before you capture real attendance.
- After signing in, the account menu (top right) gives you: Profile, Passkeys, Sessions, Appearance (System / Light / Dark), Language (Use school default / English / Afrikaans / isiZulu), and Logout. Switch language at any time — your roll, digest, and pickup screens all follow your choice.
You land on your class workspace. The left navigation has two items: Dashboard (/class-teacher) and Learners (/class-teacher/students).
”My classes” — your scoped workspace
The dashboard header reads “My classes” with the line:
“You see only your assigned classes. Reassignments are handled by the school admin.”
This is the most important thing to understand about your role. You cannot add yourself to a class, remove yourself, or move learners. If you should be teaching a class you don’t see — or you see one you no longer teach — ask your school admin to fix the assignment. The system takes your school and your role from your verified login, never from anything the browser can change, so what you see is exactly what you are authorised to see.

The on-site live count
At the top of the dashboard is your safety beat — a large green number and the line:
Right now — “{N} of {M} of your learners are on-site” “Live across {K} class you teach.” (or “classes you teach.”)
This count is live. As officers check learners in and out at the gate, the number updates on its own — you do not refresh the page. Use it as your at-a-glance answer to “how many of my children are physically here right now?”
Semantic colours are consistent across the app, so you can trust them: green = confirmed on-site, amber = no tap yet today (worth a look), and a neutral tone for learners who have left for the day (expected, not an alarm). Red is reserved for emergencies only.
Capturing the daily roll
Each class you teach has a Daily roll panel. To take the roll:
- Find the class panel and press Capture roll. The roll opens inline (no page change).
- The roll is pre-filled from gate check-ins — learners the officer already scanned in are set to Present, and learners with no tap are set to Absent. You are confirming and correcting, not starting from a blank list.
- For each learner, the segmented control offers five marks:
| Mark | Use it for |
|---|---|
| Present | Learner is in class |
| Absent | Not here, no reason given |
| Late | Arrived after the start |
| Excused | Authorised absence |
| Medical | Sick / medical reason |
- Use Mark all present to set the whole class at once, then change the exceptions.
- The sticky bar shows a live tally — “{present} of {total} present” — so you can sanity-check before submitting.
- Press Submit roll. On success you get an in-place green “Roll submitted” banner.
The note under the roll reads “Editable until end of day” — you can re-open and adjust the roll any time before the school’s local day-end. After that the roll shows “Roll is locked for this day” and becomes read-only, so the day’s record stays trustworthy.
Sick notes awaiting you
If a guardian has sent a note for one of your learners, an amber “Sick notes awaiting you” card appears above the roll — it loads automatically, you don’t have to open a roll to find it. Read the note, then press Acknowledge. The card settles to a quiet “Acknowledged” state (with the time it was received) rather than vanishing, so you have a visible record that you saw it.
Reading the report digest
Below the roll is the Report digest — “Today and this term” panel. It is a read-only summary per class, mixing today’s status with term-to-date patterns:
| Line you’ll see | What it means |
|---|---|
| ”{count} not marked present today” / “All assigned learners have a mark today” | Today’s gap — whose roll mark is still missing |
| ”{count} learners were late on {threshold} or more days” | Late-arrival pattern this term |
| ”{count} learners are chronically absent (below 90% attendance)“ | Attendance risk this term |
| ”Average time on campus: {value}“ | Typical time learners spend on site (“Not enough completed days” if there isn’t enough data yet) |
Use it to spot the children who need a conversation — repeat late arrivals, chronic absence, or unusually short days. It is a glance-and-act summary, not a printable report. Roadmap: there is no exportable or cross-class academic report for class teachers yet; the digest is what’s shipped today.
Handling pending pickup requests
The Pending pickup requests panel lists requests that need your decision — early pickups, late drop-offs, and planned absences for your learners. Each row shows the learner’s photo (or initials), the request type and time, and the expected guardian. The count above the list tells you how many are waiting; when it’s clear you’ll see “No pickup requests need your approval right now.”
For each request you have two choices:
Approve
- Press Approve. The button shows “Approving…” while it saves.
- On success a banner confirms: “Approved — {name} can be collected. The gate has been notified.” This is the important part — your approval flows straight to the officer at the gate, it isn’t just a row that disappears.
Do not approve (reason required)
- Type a short reason in the “Reason if not approved” box (placeholder: “e.g. guardian not authorised”).
- Press Do not approve.
- The reason is mandatory — if you leave it blank you’ll be told: “Add a short reason before not approving this request.” This keeps an honest record of why a collection was declined.
Per-class learner lists and the Learners page
Under the digest, each class panel lists its learners with a live presence chip (on-site / off-site / no tap yet) and an enrolment chip (Enrolled / Inactive), plus a “{on_site} of {total} on-site now” summary for that class.
The Learners page (/class-teacher/students) gathers every learner across your classes into one searchable list — search by name or class status — and flags “Planned absence today” or “Early pickup pending” where relevant. Use it when you want to find one child quickly rather than scan class by class.
Good to know (scope and honesty)
- Your view is class-scoped and read-mostly. You capture rolls, acknowledge notes, and decide pickups — you don’t edit rosters, settings, or other teachers’ classes.
- Reassignments are an admin action. Wrong class list? That’s a one-message fix to your admin.
- Trilingual: the whole workspace runs in English, Afrikaans, or isiZulu — switch in the account menu.
- Roadmap / channel honesty: guardians are notified push-first, then email; WhatsApp and SMS are in preview and only go live once your school’s admin connects them, so until then those messages quietly fall back to email. Nothing on your screen depends on those channels being live.