How aldikurniawan19/backend-absensi works
This is a NestJS backend for a school attendance system, with QR-based student check-in as its central workflow: students submit scans, attendance logic validates them, and teachers or administrators can also record attendance manually. The API additionally supports login and session management, school data and scheduling, leave requests, grades and report cards, attendance analytics, extracurricular records, and audit logs. The excerpts show controller-to-service calls for several features; other modules are represented from the repository tree, so their internal wiring is not inferred.
Main entry points: main.ts API runtime · jadwal.controller.ts Schedules and exams · auth.controller.ts Authentication · auth.service.ts Auth service
Components 28
Access and API
- API runtime
src/main.ts - Authentication
src/modules/auth/auth.controller.ts - Auth service
src/modules/auth/auth.service.ts
School Operations
- School reference data
src/modules/master/master.controller.ts - Master data service
src/modules/master/master.service.ts - User administration
src/modules/users/users.controller.ts - User service
src/modules/users/users.service.ts - Schedules and exams
src/modules/jadwal/jadwal.controller.ts - Schedule services
src/modules/jadwal/jadwal.service.ts - Attendance API
src/modules/absensi/absensi.controller.ts - Attendance service
src/modules/absensi/absensi.service.ts - Attendance sessions
src/modules/sesi/sesi.controller.ts - Session service
src/modules/sesi/sesi.service.ts - Leave requests
src/modules/izin/izin.controller.ts - Leave service
src/modules/izin/izin.service.ts
Learning Records
- Grades
src/modules/nilai/nilai.controller.ts - Grade service
src/modules/nilai/nilai.service.ts - Report cards
src/modules/raport/raport.controller.ts - Report-card service
src/modules/raport/raport.service.ts - Extracurriculars
src/modules/ekstrakurikuler/ekstrakurikuler.controller.ts - Activities service
src/modules/ekstrakurikuler/ekstrakurikuler.service.ts
Reporting and Audit
- Attendance reports
src/modules/laporan/laporan.controller.ts - Analytics service
src/modules/laporan/laporan.service.ts - Audit logs
src/modules/audit/audit.controller.ts - Audit service
src/modules/audit/audit.service.ts
Persistence
- Prisma database access
src/database/prisma.service.ts - Supabase PostgreSQL
Other components
- API clients
Connections 29
- API clients → API runtime: send requests
- API runtime → Authentication: routes requests
- API runtime → School reference data: routes requests
- API runtime → User administration: routes requests
- API runtime → Schedules and exams: routes requests
- API runtime → Attendance API: routes requests
- API runtime → Attendance sessions: routes requests
- API runtime → Leave requests: routes requests
- API runtime → Grades: routes requests
- API runtime → Report cards: routes requests
- API runtime → Extracurriculars: routes requests
- API runtime → Attendance reports: routes requests
- API runtime → Audit logs: routes requests
- Authentication → Auth service: calls
- Auth service → Audit service: records events
- School reference data → Master data service: calls
- User administration → User service: calls
- Schedules and exams → Schedule services: calls
- Schedules and exams → Session service: calls exam services
- Attendance sessions → Session service: calls
- Attendance API → Attendance service: calls
- Leave requests → Leave service: calls
- Grades → Grade service: calls
- Report cards → Report-card service: calls
- Extracurriculars → Activities service: calls
- Attendance reports → Analytics service: calls
- Audit logs → Audit service: calls
- API runtime → Prisma database access: health-check query
- Prisma database access → Supabase PostgreSQL: queries database