How joelleonardt/sdnciater3 works
This is a school administration web app: users sign in, enter a role-protected workspace, and manage school records such as classes, students, attendance, schedules, grades, users, and settings; reports provide a cross-domain output. Routes and shared shell mediate access, feature hooks connect UI workflows to services, and Supabase is the backend boundary. The graph preserves the documented-by-source-index feature areas and central stores; several feature pages and services were not excerpted, so their internal calls are shown only where the index supports them.
Main entry points: routes.tsx Role-based routes · features Feature data hooks · reportService.ts Report generation · authService.ts Authentication
Components 26
App entry and access
- App root
src/app/App.tsx - Role-based routes
src/app/routes.tsx - Workspace shell
src/components/ui/AppShell.tsx - Sign-in
src/features/auth/LoginPage.tsx
School workflows
- Dashboard
src/features/dashboard/DashboardPage.tsx - Class management
src/features/classes/ClassesPage.tsx - Student records
src/features/students/StudentsPage.tsx - Attendance
src/features/attendance/AttendancePage.tsx - Schedules
src/features/schedules/SchedulePage.tsx - Grades
src/features/grades/GradesPage.tsx - Student notes
src/features/notes/useNotes.ts
Administration and reporting
- User administration
src/features/users/UsersPage.tsx - School settings
src/features/settings/SettingsPage.tsx - Reports
src/features/reports/ReportsPage.tsx - Report generation
src/services/reportService.ts
Shared runtime
- Authentication
src/services/authService.ts - Session state
src/stores/authStore.ts - Feature data hooks
src/features - Domain services
src/services - School context state
src/stores/appStore.ts - UI state
src/stores/uiStore.ts - Toast notifications
src/components/ui/Toast/useToast.ts - Database types
src/types/database.types.ts - Supabase client
src/services/supabase.ts
Other components
- School staff
- Supabase backend
Connections 35
- School staff → App root: opens app
- App root → Role-based routes: renders router
src/app/App.tsx - Role-based routes → Sign-in: routes sign-in
src/app/routes.tsx - Role-based routes → Workspace shell: wraps protected pages
src/app/routes.tsx - Role-based routes → Dashboard: routes dashboard
src/app/routes.tsx - Role-based routes → Class management: routes classes
src/app/routes.tsx - Role-based routes → Student records: routes students
src/app/routes.tsx - Role-based routes → Attendance: routes attendance
src/app/routes.tsx - Role-based routes → Schedules: routes schedules
src/app/routes.tsx - Role-based routes → Grades: routes grades
src/app/routes.tsx - Role-based routes → Reports: routes reports
src/app/routes.tsx - Role-based routes → User administration: routes users
src/app/routes.tsx - Workspace shell → Authentication: signs out
src/components/ui/AppShell.tsx - Workspace shell → Session state: reads session
src/components/ui/AppShell.tsx - Session state → Authentication: loads profile
src/stores/authStore.ts - Sign-in → Authentication: submits credentials
- Feature data hooks → Domain services: calls domain operations
src/features/settings/useSettings.ts - Attendance → Feature data hooks: uses attendance hook
src/features/attendance/AttendancePage.tsx - Class management → Feature data hooks: uses class hook
src/features/classes/useClasses.ts - Student records → Feature data hooks: uses student hook
src/features/students/useStudents.ts - Schedules → Feature data hooks: uses schedule hook
src/features/schedules/useSchedules.ts - Grades → Feature data hooks: uses grade hook
src/features/grades/useGrades.ts - User administration → Feature data hooks: uses user hook
src/features/users/useUsers.ts - School settings → Feature data hooks: uses settings hook
src/features/settings/useSettings.ts - Feature data hooks → Toast notifications: shows feedback
src/features/attendance/useAttendance.ts - Toast notifications → UI state: pushes toast
src/components/ui/Toast/useToast.ts - Feature data hooks → School context state: updates school context
src/features/settings/useSettings.ts - Reports → Report generation: requests reports
- Report generation → Supabase client: queries backend
src/services/reportService.ts - Report generation → Attendance: reads attendance data
src/services/reportService.ts - Report generation → Student records: reads student data
src/services/reportService.ts - Domain services → Supabase client: uses client
src/services/authService.ts - Authentication → Supabase client: auth operations
src/services/authService.ts - Supabase client → Supabase backend: queries and updates
src/services/supabase.ts - Domain services → Database types: uses database types
src/services/authService.ts