v0.2.0 - May 2026
This release adds the Staff Attendance module and the Self-Service Registration system, plus several quality-of-life improvements across the platform.
New: Staff Attendance module
Track when staff arrive and leave - separately from student attendance - with real-time dashboards, a kiosk display, and a dedicated teacher self-check-in portal.
Dashboard
A live Staff Board shows every staff member's attendance state for today (Present, Absent, Late, On Leave) as a grid of cards that updates automatically. Summary metrics at the top give a count breakdown and a percentage present rate.
The Workflow Map sidebar provides a quick-reference guide to all attendance operations - from recording to kiosk setup to data export - so new admins can orient quickly.
Recording attendance
| Method | Who uses it | How |
|---|---|---|
| Manual record | HR / Admin | Open Record Attendance dialog, pick staff member, date, status, and optional notes |
| Bulk record | HR / Admin | Select multiple staff in the log, apply a single status to all |
| Self check-in | Teachers and staff | Use the Teacher Portal or a physical kiosk station |
| Kiosk | All staff | Scan QR code or enter PIN at an unattended station |
Attendance log
The log supports full-text search, status and date-range filters, column sorting, and dual view modes (board cards or table rows). Individual records can be verified, edited, or deleted by admins. The log exports to CSV with the current filter applied.
Kiosk stations
A Kiosk Station Manager lets administrators create named stations (e.g., "Main Entrance", "Staff Room"), generate secure access tokens for each, and rotate or revoke tokens independently. Each station runs a public self-contained check-in display that requires no login - staff tap their name or scan a QR code to record arrival.
Kiosk URLs take the form /staff-attendance/kiosk?token=<token> and can be opened on any browser or tablet.
Teacher portal
The My Attendance tab in the Teacher portal shows a monthly calendar with attendance state color-coding, an at-a-glance metrics strip (days present / absent / late / on leave), and a Check In Now button for self-service recording during the configured check-in window.
Permissions
| Action | Required permission |
|---|---|
| View dashboard and log | staff_attendance.view |
| Record attendance for others | staff_attendance.record |
| Delete or bulk-edit records | staff_attendance.manage |
| Create / rotate kiosk tokens | staff_attendance.manage |
| View own attendance (teacher portal) | Available to any authenticated staff member |
New: Self-Service Registration
Self-Service Registration lets prospective students (or guardians acting on their behalf) complete and submit an application entirely online, without needing a staff member to enter data manually.
Access codes
Administrators issue Access Codes that gate who can begin a registration. Codes can be:
- Single-use or multi-use.
- Time-limited (expiry date/time).
- Scoped to a specific intake or academic year.
- Bulk-generated and exported as CSV for distribution.
Participant flow
Applicants receive a link containing an access code. The registration wizard walks them through:
- Code entry and identity verification.
- Personal details (student name, date of birth, gender).
- Academic information (applying class, previous school).
- Guardian / emergency contact details.
- Document uploads (birth certificate, passport photo, etc.).
- Review and submission.
Progress is automatically saved so applicants can return and continue later using the same code.
Submission review
Admissions staff see all submitted applications in a review workspace, where each submission can be:
- Accepted - creates a draft student profile, ready for full enrolment.
- Rejected - sends a configurable rejection notice to the applicant.
- Put on hold - preserved for a later decision without a notification.
Submissions include a diff view comparing the applicant-supplied data to any existing student profile (for re-enrolments or transfers), making it easy to spot discrepancies before accepting.
Dashboards and progress tracking
A dashboard tab gives a snapshot of the current intake cycle:
- Total submissions, accepted, rejected, pending.
- Funnel chart from code issued -> started -> submitted -> accepted.
- Per-class breakdown to track capacity fill rate.
Sessions
Each unique code claim creates a Registration Session tied to that code and the applicant's browser fingerprint. Administrators can list active sessions, see which step each applicant is on, and revoke sessions individually if fraud is suspected.
Improvements in this release
People - Student profile photos
Student and staff profile photos now use presigned URLs internally, so photos load reliably regardless of the storage backend. Previously, raw download paths could fail to render in the browser.
Finance - Receipt audit trail
Receipts now show the full audit trail (created by, modified by, timestamps) in a consistent footer section that matches the style used in other detail dialogs.
Sidebar navigation
- Category headings no longer render in ALL CAPS.
- Sidebar sections default to expanded; individual sections remember their last collapse state per session.
- Collapse indicators use
+/-text markers instead of the previous SVG arrows, which improves clarity on low-DPI displays.
Dark mode
- The "Version: Next" badge in the docs navigation now renders with correct contrast in dark mode.
- Several form field borders and placeholder text colours have been adjusted to meet WCAG AA contrast ratios in the dark theme.
Upgrade notes
No database migrations or configuration changes are required for the Staff Attendance or Self-Service Registration features. Both modules are available to all tenants immediately after the deployment completes.
To enable kiosk mode for a location:
- Navigate to Staff Attendance > Kiosk Stations.
- Create a station and copy the generated URL.
- Open the URL on a dedicated device in a browser set to kiosk / fullscreen mode.
Known issues
- Kiosk PIN entry on iOS: The numeric PIN pad does not auto-dismiss after entry on some iOS versions. Users should tap outside the input or press Submit explicitly.
- Self-service photo upload on Firefox mobile: The camera capture option does not appear in the file picker on Firefox for Android. Use the gallery picker as a workaround.
- Bulk attendance export: Exports are limited to 5 000 rows per download. Apply a date range filter to export larger date spans in segments.