Skip to main content
Version: Next

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

MethodWho uses itHow
Manual recordHR / AdminOpen Record Attendance dialog, pick staff member, date, status, and optional notes
Bulk recordHR / AdminSelect multiple staff in the log, apply a single status to all
Self check-inTeachers and staffUse the Teacher Portal or a physical kiosk station
KioskAll staffScan 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

ActionRequired permission
View dashboard and logstaff_attendance.view
Record attendance for othersstaff_attendance.record
Delete or bulk-edit recordsstaff_attendance.manage
Create / rotate kiosk tokensstaff_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:

  1. Code entry and identity verification.
  2. Personal details (student name, date of birth, gender).
  3. Academic information (applying class, previous school).
  4. Guardian / emergency contact details.
  5. Document uploads (birth certificate, passport photo, etc.).
  6. 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.

  • 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:

  1. Navigate to Staff Attendance > Kiosk Stations.
  2. Create a station and copy the generated URL.
  3. 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.