How fariqul/web-lms works
This is SMA 15 Makassar’s role-based learning management system. Admins, teachers and students use the Next.js application to manage school operations, attend sessions, take and monitor exams, and view learning results; the frontend calls a separate Laravel API backed by persistent models. The principal workflow spans exam setup, student exam-taking with browser and camera monitoring, result handling and reporting. Attendance, learning content, public-school information and real-time notifications are additional product branches. The README and tree establish several capabilities whose detailed wiring is not visible in the sampled source, so those links are represented only at subsystem level.
Main entry points: Models School records · api.php API routing · app Role pages · api.ts API client
Components 22
Web application
- Role pages
src/app - Authentication
src/context/AuthContext.tsx - API client
src/services/api.ts - Attendance screens
src/app/absensi/page.tsx - Exam screens
src/app/ujian - Exam safeguards
src/hooks/useExamMode.ts - Public information
src/app/_components/LandingClient.tsx
School workflows
- API routing
backend/routes/api.php - School operations API
backend/app/Http/Controllers/Api - Attendance API
backend/app/Http/Controllers/Api/AttendanceController.php - School records
backend/app/Models - Reports and exports
backend/app/Http/Controllers/Api/ExportController.php
Assessment and safety
- Exam and results API
backend/app/Http/Controllers/Api/ExamController.php - Browser monitoring
src/hooks/useExamMode.ts - Proctoring API
backend/app/Http/Controllers/Api/ProctoringDiagnosticController.php - AI snapshot analysis
backend/proctoring-service/main.py
Realtime and analysis
- Realtime events
socket-server/server.js - Session event handler
src/components/auth/SessionEventHandler.tsx
Other components
- Admin
- Teacher
- Student
- PostgreSQL / Supabase
Connections 26
- Admin → Role pages: uses
- Teacher → Role pages: uses
- Student → Role pages: uses
- Role pages → Authentication: authenticates via
- Attendance screens → API client: requests data
- Exam screens → API client: requests data
- Public information → API client: loads content
- Exam safeguards → API client: sends heartbeat
- API client → API routing: calls
- API routing → School operations API: dispatches
- API routing → Attendance API: dispatches
- API routing → Exam and results API: dispatches
- Attendance API → School records: reads and writes
- School operations API → School records: reads and writes
- Exam and results API → School records: reads and writes
- Exam screens → Exam safeguards: enables safeguards
- Exam safeguards → Proctoring API: submits monitoring
- Proctoring API → AI snapshot analysis: analyzes snapshots
- Proctoring API → School records: records monitoring
- Role pages → Session event handler: handles session events
- Session event handler → Realtime events: subscribes to events
- Realtime events → API routing: validates sessions
- Admin → Reports and exports: requests reports
- Teacher → Reports and exports: requests reports
- Reports and exports → School records: reads records
- School records → PostgreSQL / Supabase: persists through