How jazmanudin27/e-sekolah works
E-Sekolah is a unified school-attendance and administration product: teachers, class accounts, and administrators use web or Android clients backed by one REST API. The main workflow is sign-in, then recording or reviewing teacher and student attendance, schedules, leave requests, and reports; administrators also manage school data. The graph follows the documented client/API/layered-server structure. Sampled source confirms app routing, API authentication, teacher-presence logic, leave handling, and tenant database selection; unsampled feature wiring is shown only where documented.
Main entry points: models SQL models · index.js API routes · App.jsx Web application · server.js Express server
Components 24
Clients
- Web application
client/src/App.jsx - API client
client/src/api/client.js - Android shell
client/android/app/src/main/java/com/esekolah/app/MainActivity.java
API runtime
- Express server
src/server.js - API routes
src/routes/index.js - Auth routes
src/routes/auth.routes.js - Presence routes
src/routes/presensi.routes.js - Student attendance routes
src/routes/absensiSiswa.routes.js - Subject attendance routes
src/routes/absensiMapel.routes.js - Report routes
src/routes/rekap.routes.js - School data routes
src/routes/kelas.routes.js
School workflows
- Sign-in and profile
src/controllers/auth.controller.js - Teacher presence
src/controllers/presensi.controller.js - Daily attendance
src/controllers/absensiSiswa.controller.js - Subject attendance
src/controllers/absensiMapel.controller.js - Leave requests
src/controllers/izin.controller.js - Schedules
src/controllers/jadwal.controller.js - Dashboard summary
src/controllers/dashboard.controller.js - Attendance reports
src/controllers/rekap.controller.js - School master data
src/controllers/kelas.controller.js
Persistence
- SQL models
src/models - Tenant database access
src/config/database.js
Other components
- School users
- MySQL databases
Connections 29
- School users → Web application: use
- Web application → Sign-in and profile: sign in
- Web application → API client: request data
- Android shell → Express server: use API
- API client → Express server: HTTP requests
- Express server → API routes: mount /api
- API routes → Auth routes: dispatch
- API routes → Presence routes: dispatch
- API routes → Student attendance routes: dispatch
- API routes → Subject attendance routes: dispatch
- API routes → Report routes: dispatch
- API routes → School data routes: dispatch
- Auth routes → Sign-in and profile: invoke
- Presence routes → Teacher presence: invoke
- Student attendance routes → Daily attendance: invoke
- Subject attendance routes → Subject attendance: invoke
- Report routes → Attendance reports: invoke
- School data routes → School master data: invoke
- Sign-in and profile → SQL models: read accounts
- Teacher presence → SQL models: read/write presence
- Daily attendance → SQL models: attendance data
- Subject attendance → SQL models: attendance data
- Leave requests → SQL models: leave records
- Schedules → SQL models: schedule data
- Dashboard summary → SQL models: summary data
- Attendance reports → SQL models: report data
- School master data → SQL models: school records
- SQL models → Tenant database access: execute queries
- Tenant database access → MySQL databases: select tenant pool