How arcanacorp/ttutis_admin works
This is a school-institution management web app: users register or sign in, then work with institution-scoped dashboards for attendance, classes and schedules, communications, payments, people, school years, settings, and school profile. The sampled data hooks and services show dashboard reads through Supabase, while profile context loads memberships and supports profile and institution updates. Several page-to-hook relationships are visible in the source index; unsampled route behavior and middleware wiring are not inferred.
Main entry points: useInstitutionData.js Institution data hooks · ProfileContext.jsx Profile and membership · AuthContext.jsx Authentication state · client.js Supabase browser client
Components 23
Access and identity
- Sign in
src/components/auth/SignInForm.jsx - Admin registration
src/components/auth/RegisterAdminForm.jsx - Registration endpoint
src/app/api/auth/register/route.js - Authentication state
src/context/AuthContext.jsx - Profile and membership
src/context/ProfileContext.jsx
Institution workspace
- Dashboard overview
src/app/dashboard/page.jsx - Attendance
src/app/dashboard/attendance/page.jsx - Classes and schedules
src/app/dashboard/classes-schedules/page.jsx - Communications
src/app/dashboard/communications/page.jsx - Payments
src/app/dashboard/payments/page.jsx - People
src/app/dashboard/people/page.jsx - School year
src/app/dashboard/school-year/page.jsx - Institution settings
src/app/dashboard/settings/page.jsx - My school
src/app/dashboard/my-school/page.jsx
Data access
- Institution data hooks
src/hooks/useInstitutionData.js - Resource loading
src/hooks/useInstitutionResource.js - Institution data service
src/services/institutionDataService.js - Profile service
src/services/profileService.js - Supabase browser client
src/lib/supabase/client.js
Application shell
- Context providers
src/providers/index.jsx - Dashboard navigation
src/components/layout/Navbar.jsx
Other components
- User
- Supabase
Connections 27
- User → Sign in: enters credentials
- User → Admin registration: starts registration
- Sign in → Authentication state: signs in through
src/components/auth/SignInForm.jsx - Admin registration → Authentication state: signs up through
src/components/auth/RegisterAdminForm.jsx - Admin registration → Registration endpoint: submits registration
- Authentication state → Supabase browser client: uses auth client
src/context/AuthContext.jsx - Authentication state → Profile and membership: provides user state
src/context/ProfileContext.jsx - Profile and membership → Profile service: loads and updates
src/context/ProfileContext.jsx - Profile and membership → Supabase browser client: service uses client
- Dashboard overview → Institution data hooks: loads dashboard data
src/app/dashboard/page.jsx - Attendance → Institution data hooks: loads attendance data
src/app/dashboard/attendance/page.jsx - Classes and schedules → Institution data hooks: loads schedule data
src/app/dashboard/classes-schedules/page.jsx - Communications → Institution data hooks: loads updates
src/app/dashboard/communications/page.jsx - Payments → Institution data hooks: loads payment data
src/app/dashboard/payments/page.jsx - People → Institution data hooks: loads people data
src/app/dashboard/people/page.jsx - School year → Institution data hooks: loads year data
src/app/dashboard/school-year/page.jsx - Institution settings → Institution data hooks: loads settings data
src/app/dashboard/settings/page.jsx - Institution data hooks → Profile and membership: gets institution context
src/hooks/useInstitutionData.js - Institution data hooks → Resource loading: delegates resource state
src/hooks/useInstitutionData.js - Institution data hooks → Institution data service: selects data loader
src/hooks/useInstitutionData.js - Institution data service → Supabase browser client: queries via client
src/services/institutionDataService.js - Supabase browser client → Supabase: connects to service
src/lib/supabase/client.js - My school → Profile and membership: uses profile state
src/app/dashboard/my-school/page.jsx - Context providers → Authentication state: provides auth context
src/providers/index.jsx - Context providers → Profile and membership: provides profile context
src/providers/index.jsx - Dashboard navigation → Authentication state: uses auth state
src/components/layout/Navbar.jsx - Dashboard navigation → Profile and membership: uses profile state
src/components/layout/Navbar.jsx