How online-quiz-cs31a/quiz-backend works
OnlineQuiz is an ASP.NET API for quiz-based learning, with account and role handling, course enrollment, assessments and attempts, grading, analytics, and supporting biometric, notification, and administration features. The main user flow is an API request entering a controller, passing through a domain service, and (where applicable) reaching repository-backed Supabase data. The sampled code confirms authentication and enrollment calls, and enrollment activity logging. Other feature branches are represented from the file tree; their internal wiring was not sampled, so uncertain connections are omitted.
Main entry points: Controllers API controllers · AuthService.cs Authentication · EnrollmentController.cs Enrollment API · SupabaseService.cs Supabase service
Components 23
Identity and users
- API controllers
OnlineQuiz/Controllers - Authentication
OnlineQuiz/Services/AuthService.cs - User management
OnlineQuiz/Services/UserService.cs
Learning and assessment
- Course service
OnlineQuiz/Services/CourseService.cs - Enrollment API
OnlineQuiz/Controllers/EnrollmentController.cs - Quiz service
OnlineQuiz/Services/QuizService.cs - Attempt service
OnlineQuiz/Services/AttemptService.cs - Answer service
OnlineQuiz/Services/AnswerService.cs - Manual grading
OnlineQuiz/Services/ManualGradingService.cs
Insights and administration
- Analytics
OnlineQuiz/Services/AnalyticsService.cs - Activity logging
OnlineQuiz/Services/ActivityLogService.cs - Export/import logs
OnlineQuiz/Services/ExportImportLogService.cs
Biometrics and notifications
- Biometric service
OnlineQuiz/Services/BiometricService.cs - Biometric hub
OnlineQuiz/Hubs/BiometricHub.cs - ESP32 integration
OnlineQuiz/Services/HttpESP32Service.cs - Notifications
OnlineQuiz/Services/NotificationService.cs
Data access
- Auth repository
OnlineQuiz/Repository/AuthRepository.cs - Domain repositories
OnlineQuiz/Repository - Enrollment repository
OnlineQuiz/Repository/EnrollmentRepository.cs - Supabase service
OnlineQuiz/Services/SupabaseService.cs
Other components
- Learner / staff
- Supabase data
- ESP32 device
Connections 12
- Learner / staff → API controllers: sends requests
- API controllers → Authentication: login calls
- Authentication → Auth repository: verifies credentials
- Authentication → User management: loads current user
- API controllers → Enrollment API: routes enrollment
- Enrollment API → Course service: enrolls and queries
- Enrollment API → Activity logging: logs actions
- Auth repository → Domain repositories: loads user records
- Domain repositories → Supabase service: uses client
- Enrollment repository → Supabase service: queries enrollment
- Supabase service → Supabase data: reads and writes
- ESP32 device → ESP32 integration: sends device data