How kotajakarta/sekolah-app works
eSantri is a web-based pesantren management platform spanning student and institution records, formal academics, attendance, operations, and family-facing services. Users enter through public pages or authenticated role-based views; feature screens retrieve or change data through the shared API client, with the web server forwarding API requests to a separate backend. The sampled authentication code shows credential validation and database access. Other backend feature handlers and their storage relationships are not present in the sampled source, so those links are not expanded.
Main entry points: App.tsx Application routes · apiClient.ts API client · LoginPage.tsx Login page · core Student and staff records
Components 24
Access and shell
- Application routes
src/App.tsx - Login page
src/pages/auth/LoginPage.tsx - Auth state
src/hooks/useAuth.tsx - API client
src/lib/apiClient.ts - Public pages
src/pages/public - Dashboard
src/pages/Dashboard.tsx
People and institutions
- Student and staff records
src/pages/core - Branch and region records
src/pages/core
Academic services
- Formal academics
src/pages/formal - Question bank
src/features/bank_soal - Attendance
src/pages/absensi - Learning activity
src/pages/pembelajaran
Operations
- Family portal
src/pages/portal - Student requests
src/features/permohonan - Disciplinary records
src/features/indisipliner - Facilities
src/pages/sarpras - Reports
src/pages/laporan
API and persistence
- API proxy
server.ts - Backend API
- Auth controller
server/auth.controller.ts - Auth service
server/auth.service.ts - Prisma database
server/db.ts - PostgreSQL
Other components
- Browser user
Connections 31
- Browser user → Application routes: opens
- Browser user → Public pages: visits
- Application routes → Login page: routes
- Application routes → Auth state: provides auth
- Application routes → Dashboard: routes
- Application routes → Student and staff records: routes
- Application routes → Branch and region records: routes
- Application routes → Formal academics: routes
- Application routes → Question bank: routes
- Application routes → Attendance: routes
- Application routes → Learning activity: routes
- Application routes → Family portal: routes
- Application routes → Student requests: routes
- Application routes → Disciplinary records: routes
- Application routes → Facilities: routes
- Application routes → Reports: routes
- Login page → API client: requests login
- API client → API proxy: forwards API
- API proxy → Backend API: proxies requests
- Auth controller → Auth service: calls
- Auth service → Prisma database: queries user
- Prisma database → PostgreSQL: reads
- Student and staff records → API client: requests data
- Formal academics → API client: requests data
- Question bank → API client: requests data
- Attendance → API client: requests data
- Family portal → API client: requests data
- Student requests → API client: requests data
- Disciplinary records → API client: requests data
- Facilities → API client: requests data
- Reports → API client: requests data