How ericson-999/qr-event-attendance-system works
QR Attendance System is an admin-managed web app with public student self-registration. Its main workflow is: register a student and issue a signed QR; create and start an event; scan and verify the QR, show the student for admin confirmation, and record time-in or time-out; then review attendance and export reports. The graph preserves the documented admin registration, event scheduling, dashboard, and retrieval capabilities. Backend wiring and several route-to-model/helper relationships are supported by the source index; frontend-to-API details are not shown in the excerpts, so those links are omitted.
Main entry points: server.js Express app · scan.js Scan verification · attendanceExport.js Attendance export · attendance.js Attendance queries
Components 26
Web experience
- Student registration
public/js/join.js - Admin registration
public/js/register.js - Admin login
public/login.html - Event controls
public/js/events.js - QR scanning
public/js/scan.js - Attendance dashboard
public/js/dashboard.js - Document export
public/js/export-doc.js
Student identity
- Student management
routes/students.js - Public registration
routes/public.js - Student records
models/Student.js - Signed QR tokens
utils/qrToken.js
Events and scanning
- Event management
routes/events.js - Event records
models/Event.js - Event scheduling
utils/eventTime.js - Scan verification
routes/scan.js
Attendance and reporting
- Attendance queries
routes/attendance.js - Attendance export
routes/attendanceExport.js - Attendance rules
utils/attendanceRules.js - Word report builder
utils/attendanceDoc.js - Attendance records
models/Attendance.js
Application runtime
- Express app
server.js - Login sessions
routes/auth.js - Admin route guard
middleware/auth.js - MongoDB
Other components
- Administrator
- Student
Connections 39
- Administrator → Admin login: signs in
README.md - Student → Student registration: registers
README.md - Administrator → Admin registration: registers students
README.md - Administrator → Event controls: manages events
README.md - Administrator → QR scanning: scans QR
README.md - Administrator → Attendance dashboard: reviews attendance
README.md - Express app → Login sessions: mounts
server.js - Express app → Student management: mounts
server.js - Express app → Event management: mounts
server.js - Express app → Scan verification: mounts
server.js - Express app → Attendance queries: mounts
server.js - Express app → Attendance export: mounts
server.js - Express app → Public registration: mounts
server.js - Express app → MongoDB: connects
server.js - Student management → Admin route guard: guards routes
routes/students.js - Student management → Student records: reads and writes
routes/students.js - Student management → Signed QR tokens: generates tokens
routes/students.js - Public registration → Student records: uses records
routes/public.js - Public registration → Signed QR tokens: issues tokens
routes/public.js - Scan verification → Admin route guard: guards routes
routes/scan.js - Scan verification → Signed QR tokens: verifies tokens
routes/scan.js - Scan verification → Student records: looks up student
routes/scan.js - Scan verification → Event records: finds active event
routes/scan.js - Scan verification → Attendance records: reads and records
routes/scan.js - Scan verification → Attendance rules: evaluates scans
routes/scan.js - Scan verification → Event scheduling: serializes event
routes/scan.js - Event management → Admin route guard: guards routes
routes/events.js - Event management → Event records: manages records
routes/events.js - Event management → Event scheduling: parses schedules
routes/events.js - Attendance queries → Admin route guard: guards routes
routes/attendance.js - Attendance queries → Attendance records: reads records
routes/attendance.js - Attendance queries → Student records: uses student data
routes/attendance.js - Attendance queries → Attendance rules: builds categories
routes/attendance.js - Attendance export → Admin route guard: guards routes
routes/attendanceExport.js - Attendance export → Attendance records: reads records
routes/attendanceExport.js - Attendance export → Student records: uses student data
routes/attendanceExport.js - Attendance export → Event records: reads event
routes/attendanceExport.js - Attendance export → Attendance rules: categorizes attendance
routes/attendanceExport.js - Attendance export → Word report builder: builds document
routes/attendanceExport.js