How srikruthikapilla/smartattend-ai works
Smart Attend is a role-based academic attendance platform. Faculty create time-limited QR sessions; students check in through the public kiosk, where attendance can be verified using facial recognition and liveness, campus geofencing, and optional passkeys. The backend handles authentication, session and attendance APIs, persistence, and real-time updates; administrators and faculty also manage rosters and review analytics and reports. The README documents capabilities beyond the sampled source, so those are represented at subsystem level without assuming unverified internal wiring.
Main entry points: main.py FastAPI And Socket.IO · database.py PostgreSQL · PublicCheckin.tsx Public Check-In · AttendanceContext.tsx Attendance Context
Components 33
Web Applications
- Role-Based App
frontend/src/App.tsx - Role Dashboards
frontend/src/pages - Public Check-In
frontend/src/pages/PublicCheckin.tsx
Attendance Workflow
- Attendance Context
frontend/src/context/AttendanceContext.tsx - QR Session Manager
frontend/src/pages/admin/QRSessionManager.tsx - QR Generator
frontend/src/components/qr/QRGenerator.tsx - QR Payload Logic
frontend/src/utils/qrEngine.ts - Live Attendance
frontend/src/pages/LiveAttendance.tsx - Analytics And Reports
frontend/src/pages
Identity And Verification
- Face Enrollment
frontend/src/components/face/FaceEnrollmentModal.tsx - Face Recognition
frontend/src/utils/faceRecognition.ts - GPS Geofencing
frontend/src/utils/gps.ts - Passkey Biometrics
frontend/src/utils/webauthnBiometrics.ts
Backend Services
- FastAPI And Socket.IO
backend/app/main.py - Authentication Routes
backend/app/routes/auth.py - Check-In Routes
backend/app/routes/checkin.py - Attendance Routes
backend/app/routes/attendance.py - QR Session Routes
backend/app/routes/qr_session.py - Student Face Routes
backend/app/routes/student_face.py - WebAuthn Routes
backend/app/routes/webauthn.py - Face Matching Service
backend/app/services/face_recognition_service.py - Blink Liveness
backend/app/utils/blink_detection.py - WebAuthn Service
backend/app/services/webauthn_service.py
State And Integrations
- PostgreSQL
backend/app/database.py - Redis Queue And Cache
backend/app/services/redis_queue.py - Email Delivery
backend/app/utils/email_service.py - Edge Face Service
edge/app.py
Other components
- Faculty
- Students
- Administrators
- Student Device
- Brevo SMTP
- Dashboard Clients
Connections 38
- Faculty → Role-Based App: uses
- Students → Role-Based App: uses
- Administrators → Role-Based App: uses
- Role-Based App → Role Dashboards: routes to
- Students → Public Check-In: checks in
- Faculty → QR Session Manager: starts sessions
- QR Session Manager → Attendance Context: starts or ends
- QR Session Manager → QR Generator: renders
- QR Generator → QR Payload Logic: generates payload
- Public Check-In → QR Payload Logic: validates payload
- Public Check-In → Attendance Context: submits check-in
- Attendance Context → FastAPI And Socket.IO: calls API
- Live Attendance → Attendance Context: reads roster
- Analytics And Reports → Attendance Context: reads attendance
- Face Enrollment → Face Recognition: extracts descriptors
- Face Enrollment → Passkey Biometrics: enrolls passkey
- Student Device → Public Check-In: provides location and camera
- Public Check-In → GPS Geofencing: checks location
- FastAPI And Socket.IO → Authentication Routes: dispatches
- FastAPI And Socket.IO → Check-In Routes: dispatches
- FastAPI And Socket.IO → Attendance Routes: dispatches
- FastAPI And Socket.IO → QR Session Routes: dispatches
- FastAPI And Socket.IO → Student Face Routes: dispatches
- FastAPI And Socket.IO → WebAuthn Routes: dispatches
- Check-In Routes → Face Matching Service: verifies face
- Check-In Routes → Blink Liveness: checks liveness
- WebAuthn Routes → WebAuthn Service: verifies credentials
- Authentication Routes → Email Delivery: sends OTP
- Email Delivery → Brevo SMTP: delivers mail
- FastAPI And Socket.IO → PostgreSQL: initializes database
- Check-In Routes → PostgreSQL: records attendance
- Attendance Routes → PostgreSQL: reads and updates
- QR Session Routes → PostgreSQL: stores sessions
- Student Face Routes → PostgreSQL: stores enrollment
- FastAPI And Socket.IO → Redis Queue And Cache: starts worker
- Redis Queue And Cache → Dashboard Clients: broadcasts updates
- Edge Face Service → FastAPI And Socket.IO: syncs embeddings
- Edge Face Service → PostgreSQL: uses cached embeddings