Headmaster LMS
The school-management dashboard built into every classroom server: enroll learners, run scan-based attendance with printable student ID cards, post announcements, set term dates, and export whole-school reports — all fully offline.
Opening the LMS
The LMS runs on the classroom server itself (not the cloud hub). While the server is running, open:
http://localhost:3000/lms
Sign in with a teacher account. Who gets in:
| Role | Access |
|---|---|
| Head teacher | Everything, including assigning deputies and granting teacher permissions |
| Deputy | Everything except changing staff roles (deputies are assigned by the head teacher) |
| Teacher with grants | Only the tabs matching their granted permissions (see below) |
Teacher Permissions
The head teacher (or a deputy) can grant individual teachers access to specific LMS areas from Staff & Roles — tick any of:
learners— the Learners tab (enrollment, roster, ID cards)attendance— registers and scan check-inannouncements— posting school announcementsreports— whole-school reportscalendar— term dates
Granted teachers sign into the LMS and see only their permitted tabs. Grants and revocations take effect immediately — no re-login needed.
Enrolling Learners
The Learners tab owns the whole onboarding journey:
Single enroll — type the learner's name; the form suggests a username, generates a PIN, and offers a class picker and avatar. On success, a strip shows the sign-in credentials with one-click Print ID Card and Write NFC Tag actions.
Bulk enroll — paste one learner per line as
Name, username, pin, class(username/pin/class optional). Errors are reported per line; valid lines still enroll.Roster — search, filter by class, print any learner's ID card, write their NFC tag, or (admins only) remove a learner.
Hand each learner their username and PIN — that is what they use to sign in on the student portal.
Student ID Cards
Every learner gets a printable ID card at true credit-card size (85.6 × 54 mm when printed at 100%): school name, avatar, learner name, class and username, a short ID, and a signed attendance QR code. One card is both the student ID and the attendance badge. PINs are deliberately not printed on cards.
Print cards per learner (from the roster or the enroll success strip), per class, or for the whole school — the sheet opens in a new tab with cut-out cards ready for any printer. Cards are rendered by the server (POST /api/lms/students/id-cards.html) with zero network dependencies, so printing works fully offline.
Attendance Check-In
Students check themselves in at the door by scanning their ID card. Three scan paths cover any hardware:
| Method | Hardware | Notes |
|---|---|---|
| Camera QR | Any device with a camera | Uses the browser's built-in barcode detector (Chrome/Edge). Needs a secure context — localhost works out of the box; LAN devices should trust the server certificate via /trust first. |
| NFC tag | NFC tags/stickers + Android phone | Write a learner's badge to a tag from the LMS, then tap to check in (Chrome on Android over HTTPS). |
| Barcode scanner | Any USB or Bluetooth scanner | Keyboard-wedge input — works in every browser with zero setup. The most reliable path. |
How marks are decided:
- Scans up to the school's cutoff time mark present; later scans mark late. The cutoff (default 08:15) is configurable on the Attendance tab by the head teacher or a deputy.
- Re-scans never downgrade an existing mark — the live feed reports "already marked".
- Manual corrections stay in the register view; scanning is append-only.
- The live feed shows per-class tally pills with audio feedback per scan.
Export the register any time as CSV (per-student rows with date, class, status, and check-in time) — it opens cleanly in Excel and Google Sheets.
Announcements, Terms & Reports
- Announcements — post school-wide or audience-targeted notices; students and teachers see them on their portals.
- Terms — set the school year's term dates, used by reports and summaries.
- Reports — whole-school learning reports with CSV export for records or district submission.
The Full Journey
Enroll learners in the Learners tab (single or bulk)
Print ID cards per class or for the whole school
Scan at the door each morning — teacher scans cards, or a fixed device at the door lets students self-scan
Review & export — live tallies during the morning, register corrections and CSV export any time