Skip to content

Key Features ​

Features are grouped by the module that owns them. Each role sees only the modules relevant to it.

πŸ‘¨β€πŸ« Teacher module ​

  • QR scanner β€” camera-based scanning via html5-qrcode, using the rear camera, with a short cooldown between scans to prevent accidental duplicates.
  • Subject selection β€” the teacher picks which of their subjects the scan applies to; scans for subjects they don't teach are rejected.
  • Roster with manual toggles β€” set a student to Present / Absent / Late by hand for a chosen date, subject to the time-lock.
  • Appeal review β€” see and act on appeals from students enrolled in their subjects.
  • Attendance export β€” download a date-range attendance report as CSV for their own subjects.

πŸŽ“ Student module ​

  • Digital ID / QR code β€” a personal QR code rendered from the student's qrToken (high error-correction level for reliable scanning).
  • Physical ID fallback β€” the student ID number is displayed as a fallback when a camera scan isn't possible.
  • Attendance history & calendar β€” a timeline plus an AttendanceCalendar/WeeklyStrip view of daily status.
  • Appeals β€” submit a written appeal to correct or contest an attendance record.
  • Change password β€” self-service password change (min. 8 characters, current password verified).

πŸ”‘ Admin module ​

  • Dashboard stats β€” total students / teachers / sections, today's attendance rate, pending appeals, and a recent-activity feed.
  • Masterlist CRUD β€” create, edit, and remove sections, subjects, and students, and manage per-student subject enrollments.
  • Staff management β€” add or remove admins and teachers, and reset their passwords. Guardrails prevent removing yourself or the last admin.
  • CSV bulk import β€” import an entire masterlist (sections, subjects, teachers, students, enrollments) from one CSV file, with a preview and a post-import summary.
  • QR regeneration β€” issue a new QR token for a student (the revocation mechanism if a code is compromised).
  • System settings β€” configure the attendance time-lock window.
  • Audit log β€” browse the system-wide ActivityLog.
  • Data management β€” export a full JSON backup, or reset all operational data (with a typed RESET confirmation) while preserving admin accounts.

πŸ”’ Cross-cutting / platform features ​

  • Role-based routing enforced in middleware.
  • Login rate limiting (max 10 failed attempts per email per 15 minutes).
  • JWT sessions with an 8-hour lifetime ("one school day").
  • Immutable attendance auditing via the AttendanceAudit table.
  • Activity logging of every mutation via logActivity().
  • UTC-normalised dates to prevent timezone-based duplicate records.
  • Upload validation for appeal proof files (type + 5 MB size limits).
  • Dark / light theme toggle.

See the User Guides for step-by-step walkthroughs and the Feature Deep-Dives for how each flow works internally.

Documentation for the Secure QR Attendance System.