How avzropelos14/dms-sims works
This is a school information system (despite the template README): users sign in, their identity and role are resolved, and the app dispatches them to a role-specific portal. The sampled code supports MFA checks, enrollment-gated student and parent access, teacher scheduling and grading, and cashier payment workflows; the component tree also shows administrative and guard portals. Supabase is the shared backend. Some portal details are inferred only from component names and the tree, so those paths are included without speculative internal data-flow links.
Main entry points: App.tsx App router · supabase.tsx Supabase client · TeacherDashboard.tsx Teacher dashboard · StudentPortal.tsx Student portal
Components 24
App and access
- React mount
src/main.tsx - App router
src/App.tsx - Login screen
src/components/LoginScreen.tsx - MFA verification
src/components/MfaVerifyScreen.tsx - Password setup
src/components/SetPasswordScreen.tsx - Role resolution
src/lib/resolveRole.ts
School operations
- Admin dashboard
src/components/AdminDashboard.tsx - Cashier portal
src/components/CashierPortal.tsx - Guard portal
src/components/GuardPortal.tsx
User portals
- Teacher dashboard
src/components/TeacherDashboard.tsx - Student portal
src/components/StudentPortal.tsx - Parent portal
src/components/ParentPortal.tsx - Staff profile
src/components/StaffProfileView.tsx - Dashboard layout
src/components/DashboardLayout.tsx
Shared services
- Supabase client
src/supabase.tsx - MFA service logic
src/lib/mfa.ts - Tuition breakdown
src/lib/tuition.ts - School-year lookup
src/lib/schoolYear.ts - Schedule lookup
src/lib/schedule.ts - Subject catalog
src/lib/subjects.ts - Room utilities
src/lib/rooms.ts - School settings
src/lib/schoolSettings.ts
Other components
- School user
- Supabase
Connections 30
- School user → React mount: opens
- React mount → App router: renders
- App router → Login screen: shows
- Login screen → App router: submits credentials
- App router → Role resolution: resolves identity
- App router → MFA service logic: checks trust
- MFA service logic → Supabase client: uses
- Role resolution → Supabase client: reads identity
- App router → MFA verification: shows verification
- App router → Password setup: shows setup
- App router → Admin dashboard: dispatches role
- App router → Teacher dashboard: dispatches role
- App router → Student portal: dispatches role
- App router → Parent portal: dispatches role
- Teacher dashboard → Dashboard layout: renders within
- Cashier portal → Dashboard layout: renders within
- Teacher dashboard → Staff profile: renders profile
- Teacher dashboard → School-year lookup: looks up year
- Teacher dashboard → Supabase client: reads classes and grades
- Student portal → School-year lookup: looks up year
- Student portal → Schedule lookup: fetches assignments
- Student portal → Supabase client: reads schedules and grades
- Parent portal → Supabase client: reads portal data
- Cashier portal → School-year lookup: looks up year
- Cashier portal → Supabase client: reads fees and records payments
- Admin dashboard → Supabase client: persists fee settings
- App router → Supabase client: reads and writes settings
- Tuition breakdown → Supabase client: reads payment data
- Subject catalog → Supabase client: manages subjects
- Supabase client → Supabase: queries and updates