How shradha-khapra/ai-attendance-project-app works
SnapClass is a Streamlit attendance app for teachers and students. Users choose a portal; students sign in with face recognition, optionally enroll a voice profile, and manage subjects and attendance. Teachers manage subjects and enrollment, capture classroom photos or record audio, review AI-detected attendance, and confirm records. The graph distinguishes portal orchestration, UI workflows, recognition pipelines, and persistence. Several dialog and database files were not excerpted; their links are included only where the SOURCE INDEX documents imports. The README provides no further capability detail.
Main entry points: teacher_screen.py Teacher Portal · student_screen.py Student Portal · db.py Database Operations · app.py App Router
Components 20
Portals and Layout
- App Router
app.py - Portal Selection
src/screens/home_screen.py - Base Styling
src/ui/base_layout.py - Headers
src/components/header.py - Footers
src/components/footer.py
Teacher Workflows
- Teacher Portal
src/screens/teacher_screen.py - Subject Cards
src/components/subject_card.py - Subject Management
src/components - Photo Capture
src/components/dialog_add_photo.py - Voice Attendance
src/components/dialog_voice_attendance.py - Attendance Review
src/components/dialog_attendance_results.py
Student Workflows
- Student Portal
src/screens/student_screen.py - Subject Enrollment
src/components/dialog_enroll.py - Join-Code Enrollment
src/components/dialog_auto_enroll.py
Recognition Pipelines
- Face Recognition
src/pipelines/face_pipeline.py - Voice Recognition
src/pipelines/voice_pipeline.py
Persistence
- Database Operations
src/database/db.py - Database Config
src/database/config.py
Other components
- User
- Supabase
Connections 36
- User → App Router: uses
- App Router → Portal Selection: routes to
app.py - App Router → Teacher Portal: routes to
app.py - App Router → Student Portal: routes to
app.py - App Router → Join-Code Enrollment: opens
app.py - Portal Selection → Headers: renders
src/screens/home_screen.py - Portal Selection → Footers: renders
src/screens/home_screen.py - Portal Selection → Base Styling: applies
src/screens/home_screen.py - Teacher Portal → Headers: renders
src/screens/teacher_screen.py - Teacher Portal → Footers: renders
src/screens/teacher_screen.py - Teacher Portal → Base Styling: applies
src/screens/teacher_screen.py - Teacher Portal → Subject Cards: renders
src/screens/teacher_screen.py - Teacher Portal → Subject Management: opens
src/screens/teacher_screen.py - Teacher Portal → Photo Capture: opens
src/screens/teacher_screen.py - Teacher Portal → Face Recognition: calls
src/screens/teacher_screen.py - Teacher Portal → Attendance Review: shows
src/screens/teacher_screen.py - Teacher Portal → Voice Attendance: opens
src/screens/teacher_screen.py - Teacher Portal → Database Operations: queries
src/screens/teacher_screen.py - Student Portal → Headers: renders
src/screens/student_screen.py - Student Portal → Footers: renders
src/screens/student_screen.py - Student Portal → Base Styling: applies
src/screens/student_screen.py - Student Portal → Face Recognition: recognizes faces
src/screens/student_screen.py - Student Portal → Voice Recognition: creates profile
src/screens/student_screen.py - Student Portal → Database Operations: loads and saves
src/screens/student_screen.py - Student Portal → Subject Enrollment: opens
src/screens/student_screen.py - Student Portal → Subject Cards: renders
src/screens/student_screen.py - Voice Attendance → Voice Recognition: processes audio
src/components/dialog_voice_attendance.py - Voice Attendance → Database Config: reads enrollment
src/components/dialog_voice_attendance.py - Voice Attendance → Attendance Review: shows results
src/components/dialog_voice_attendance.py - Attendance Review → Database Operations: saves attendance
src/components/dialog_attendance_results.py - Face Recognition → Database Operations: loads students
src/pipelines/face_pipeline.py - Photo Capture → Database Operations: imports enrollment operation
src/components/dialog_add_photo.py - Voice Attendance → Supabase: reads roster
src/components/dialog_voice_attendance.py - Database Config → Supabase: configures
- Subject Management → Database Operations: uses operations
src/components/dialog_create_subject.py - Subject Enrollment → Database Operations: uses operations
src/components/dialog_enroll.py