How kotajakarta/backend-api works
Edaimi Backend API is a centralized NestJS gateway for school, pesantren, attendance, and related applications. The main workflow is a client request entering the API, passing authentication and access control where applicable, and reaching a domain controller and service that produce a response or perform a domain operation. The product spans student and organizational administration, academic and pesantren operations, and supporting workflows such as admissions, letters, and discipline. README documents PostgreSQL multi-schema storage and shared Redis/MinIO infrastructure; source excerpts are partial, so only directly evidenced controller-to-service calls and selected integrations are connected here.
Main entry points: main.ts NestJS API · access-control.guard.ts Access control · student.controller.ts Student API · formal.controller.ts Formal school API
Components 26
API and security
- NestJS API
src/main.ts - Access control
src/common/guards/access-control.guard.ts
Identity and administration
- Authentication API
src/modules/auth/auth.controller.ts - Authentication
src/modules/auth/auth.service.ts - Student API
src/modules/core/student/student.controller.ts - Student services
src/modules/core/student/student.service.ts - Master data API
src/modules/core/master/master-data.controller.ts - Master data
src/modules/core/master/master-data.service.ts - User administration
src/modules/admin/admin.service.ts
School operations
- Formal school API
src/modules/formal/formal.controller.ts - Formal academics
src/modules/formal/formal.service.ts - Learning records
src/modules/pembelajaran/pembelajaran.service.ts - Question banks
src/modules/bank-soal/services/bank-soal.service.ts
Pesantren operations
- Attendance API
src/modules/absensi/absensi.controller.ts - Attendance records
src/modules/absensi/absensi.service.ts - External pesantren API
src/modules/external/pesantren/pesantren-external.controller.ts - Family portal
src/modules/portal/portal.service.ts - Discipline workflows
src/modules/indisipliner/indisipliner.service.ts - Activities
src/modules/kegiatan/kegiatan.controller.ts
Shared services
- Letters
src/modules/surat/surat.controller.ts - Dashboards
src/modules/dashboard/dashboard.service.ts - PostgreSQL access
src/common/prisma/prisma.service.ts - Redis services
src/common/redis/redis.service.ts - Object storage
src/common/minio/minio.service.ts - CCTV stream proxy
src/modules/portal/cctv-proxy.controller.ts
Other components
- Applications
Connections 24
- Applications → NestJS API: send requests
- NestJS API → Authentication API: routes requests
- NestJS API → Student API: routes requests
- NestJS API → Master data API: routes requests
- NestJS API → Formal school API: routes requests
- NestJS API → Attendance API: routes requests
- NestJS API → External pesantren API: routes requests
- NestJS API → Activities: routes requests
- NestJS API → Letters: routes requests
- NestJS API → CCTV stream proxy: routes requests
- Authentication API → Authentication: calls
- Authentication → PostgreSQL access: queries users
- Student API → Student services: calls
- Master data API → Master data: calls
- Formal school API → Formal academics: calls
- Attendance API → Attendance records: calls
- Activities → Access control: guards routes
- Letters → Access control: guards routes
- Formal school API → Access control: guards routes
- Student API → Access control: guards routes
- Attendance API → Access control: guards routes
- CCTV stream proxy → PostgreSQL access: reads settings
- Activities → Object storage: uses storage
- Letters → Object storage: uses storage