How mhkr038-create/schoolmanagement works
This is a multi-tenant school ERP with a React web client and a NestJS REST API backed by PostgreSQL through Prisma. The principal workflow is school staff sign in, select a school context, and manage academic records and operational processes—students, attendance, examinations, fees, timetables, assignments, and communications—through feature pages and API modules. The graph reflects documented product capabilities and sampled controller-to-service calls; unsampled module wiring and service-to-database operations are represented only where the repository structure or README supports them.
Main entry points: apiClient.ts API client · guards JWT and permissions · App.tsx Web application · auth.controller.ts Authentication API
Components 23
Web experience
- Web application
apps/web/src/App.tsx - Login and auth state
apps/web/src/features/auth/LoginPage.tsx - Branch selection
apps/web/src/features/schools/BranchSelectionPage.tsx - ERP feature pages
apps/web/src/features - API client
apps/web/src/services/api/apiClient.ts
Identity and tenancy
- Authentication API
apps/api/src/modules/auth/auth.controller.ts - Authentication service
apps/api/src/modules/auth/auth.service.ts - JWT and permissions
apps/api/src/common/guards - School management
apps/api/src/modules/schools/schools.controller.ts - Roles and permissions
apps/api/src/modules/rbac/rbac.controller.ts
School records
- Student records
apps/api/src/modules/students/students.controller.ts - Admissions
apps/api/src/modules/admissions/admissions.controller.ts - Academic setup
apps/api/src/modules/academics/academics.controller.ts
School operations
- Attendance
apps/api/src/modules/attendance/attendance.controller.ts - Examinations and marks
apps/api/src/modules/examinations/examinations.controller.ts - Fees and invoices
apps/api/src/modules/fees/fees.controller.ts - Timetable
apps/api/src/modules/timetable/timetable.controller.ts - Assignments
apps/api/src/modules/assignments/assignments.controller.ts - Announcements
apps/api/src/modules/announcements/announcements.controller.ts
API and persistence
- Prisma service
apps/api/src/database/prisma.service.ts - School data store
apps/api/src/database - Shared API types
packages/types/src/index.ts
Other components
- School staff
Connections 34
- School staff → Web application: uses
- Web application → Login and auth state: routes to
- Web application → Branch selection: routes to
- Web application → ERP feature pages: routes to
- Login and auth state → API client: requests login
- Branch selection → API client: requests school data
- ERP feature pages → API client: requests ERP data
- API client → Authentication API: calls REST
- API client → Student records: calls REST
- API client → Admissions: calls REST
- API client → Academic setup: calls REST
- API client → Attendance: calls REST
- API client → Examinations and marks: calls REST
- API client → Fees and invoices: calls REST
- API client → Timetable: calls REST
- API client → Assignments: calls REST
- API client → Announcements: calls REST
- API client → School management: calls REST
- API client → Roles and permissions: calls REST
- Authentication API → Authentication service: delegates
- Authentication service → Prisma service: reads and writes
- Authentication API → JWT and permissions: uses guards
- Student records → JWT and permissions: uses guards
- Attendance → JWT and permissions: uses guards
- Examinations and marks → JWT and permissions: uses guards
- Fees and invoices → JWT and permissions: uses guards
- Timetable → JWT and permissions: uses guards
- Assignments → JWT and permissions: uses guards
- Announcements → JWT and permissions: uses guards
- Academic setup → JWT and permissions: uses guards
- School management → JWT and permissions: uses guards
- Roles and permissions → JWT and permissions: uses guards
- Prisma service → School data store: queries
- API client → Shared API types: uses contracts