How alfitosantosa/lms-sera-app works
This is a multi-tenant school-management LMS. The main workflow is staff, students, and administrators using role-specific dashboard pages to manage academic and school records; frontend hooks connect those pages to API routes, which enforce foundation tenancy and persist data through Prisma. Finance, attendance, scheduling, Tahfidz, and discipline are distinct product domains. The README documents reporting, exports, WhatsApp messaging, and Midtrans; their wiring is shown only at the level supported by the tree and documentation, since those implementations were not sampled.
Main entry points: useAttendance.ts Data hooks · prisma.ts Prisma data access · tenant.ts Tenant resolution · page.tsx Role dashboards
Components 31
User experience
- Role dashboards
app/(frontend)/(dashboard)/dashboard/page.tsx - Admin workspace
app/(frontend)/(dashboard)/dashboard/admin/master/users/page.tsx - Student workspace
app/(frontend)/(dashboard)/dashboard/student/attendance/page.tsx - Teacher workspace
app/(frontend)/(dashboard)/dashboard/teacher/attendance/[id]/page.tsx - Data hooks
app/(hooks)/hooks/Attendances/useAttendance.ts
Identity and tenancy
- Sign-in and sign-up
app/(frontend)/(auth)/auth/sign-in/page.tsx - Authentication API
app/(backend)/api/auth/[...all]/route.ts - Auth client
lib/authClients.ts - User records API
app/(backend)/api/userdata/route.ts - Tenant resolution
lib/tenant.ts
Academic operations
- Academic workspace
app/(frontend)/(dashboard)/dashboard/admin/academic/schedules/page.tsx - Schedules API
app/(backend)/api/schedules/route.ts - Tahfidz records API
app/(backend)/api/tahfidzrecord/route.ts
School operations
- Attendance workspace
app/(frontend)/(dashboard)/dashboard/attendance/page.tsx - Attendance API
app/(backend)/api/attendance/route.ts - Teacher attendance API
app/(backend)/api/teacherattendance/route.ts - Discipline workspace
app/(frontend)/(dashboard)/dashboard/violations/page.tsx - Violations API
app/(backend)/api/violations/route.ts - WhatsApp messaging API
app/(backend)/api/botwa/send/route.ts
Finance and reporting
- Payment workspace
app/(frontend)/(dashboard)/dashboard/payments/page.tsx - Billing workspace
app/(frontend)/(dashboard)/dashboard/admin/finance/billing/page.tsx - Payments API
app/(backend)/api/payment/route.ts - Payment types API
app/(backend)/api/paymenttype/route.ts - Finance analytics API
app/(backend)/api/accountbank/chart/route.ts - Finance exports
app/(action)/createExcel/paymentItems/exportBilling.ts - Midtrans API
app/(backend)/api/midtrans/route.ts
Other components
- School users
- Midtrans gateway
- WhatsApp service
- Prisma data access
lib/prisma.ts - PostgreSQL
Connections 45
- School users → Role dashboards: use dashboards
- School users → Sign-in and sign-up: sign in
- Sign-in and sign-up → Auth client: uses client
- Auth client → Authentication API: auth requests
- Role dashboards → Admin workspace: opens
- Role dashboards → Student workspace: opens
- Role dashboards → Teacher workspace: opens
- Admin workspace → Data hooks: fetches data
- Student workspace → Data hooks: fetches data
- Teacher workspace → Data hooks: fetches data
- Academic workspace → Data hooks: fetches data
- Attendance workspace → Data hooks: fetches data
- Data hooks → Attendance API: API requests
- Data hooks → Schedules API: API requests
- Data hooks → Tahfidz records API: API requests
- Data hooks → User records API: API requests
- Payment workspace → Data hooks: fetches data
- Billing workspace → Data hooks: fetches data
- Data hooks → Payments API: API requests
- Data hooks → Payment types API: API requests
- Data hooks → Finance analytics API: API requests
- Discipline workspace → Data hooks: fetches data
- Data hooks → Violations API: API requests
- Attendance workspace → Teacher attendance API: attendance requests
- Attendance API → Tenant resolution: resolves foundation
- Teacher attendance API → Tenant resolution: resolves foundation
- Violations API → Tenant resolution: resolves foundation
- Payments API → Tenant resolution: resolves foundation
- Payment types API → Tenant resolution: resolves foundation
- Schedules API → Tenant resolution: resolves foundation
- User records API → Tenant resolution: resolves foundation
- Attendance API → Prisma data access: reads and writes
- Teacher attendance API → Prisma data access: reads and writes
- Violations API → Prisma data access: reads and writes
- Payments API → Prisma data access: reads and writes
- Payment types API → Prisma data access: reads and writes
- Schedules API → Prisma data access: reads and writes
- Tahfidz records API → Prisma data access: record access
- User records API → Prisma data access: reads and writes
- Finance analytics API → Prisma data access: queries data
- Prisma data access → PostgreSQL: database access
- Billing workspace → Finance exports: exports billing
- Payments API → Midtrans API: payment flow
- Midtrans API → Midtrans gateway: gateway requests
- WhatsApp messaging API → WhatsApp service: sends messages