How rahulsrepository/lms-public_website works
C2C Academy is a training-institute website and LMS. Visitors explore courses and institute information, then use staff/student login to reach permission-guarded staff operations or the student learning portal. Staff workflows cover people, academic content, exams, fees, CRM, and campus services; shared LMS state selects demo-local or Supabase-backed operations. The graph follows documented routing and sampled calls; several page-to-store interactions are known from imports but not asserted as calls where excerpts do not show them.
Main entry points: App.jsx Route access · store.jsx LMS state and actions · lookups.js Domain lookups · supabase.js Supabase adapter
Components 23
Public and enrollment
- Public pages
src/pages/public - Public layout
src/components/PublicLayout.jsx - Course catalog
src/lib/catalog.js
Identity and access
- Login
src/pages/auth/Login.jsx - Route access
src/App.jsx - Role permissions
src/lib/permissions.js - Staff workspace shell
src/components/AppShell.jsx
Learning operations
- Student portal
src/pages/learn/StudentPortal.jsx - Academic content
src/pages/app/Academic.jsx - Exams and assignments
src/pages/app/Exams.jsx
Institute operations
- People management
src/pages/app/People.jsx - Dashboard
src/pages/app/Dashboard.jsx - CRM
src/pages/app/Crm.jsx - Fees
src/pages/app/Fees.jsx - Campus services
src/pages/app/Desk.jsx - System administration
src/pages/app/System.jsx
Shared platform
- LMS state and actions
src/lib/store.jsx - Domain lookups
src/pages/app/lookups.js - Demo authentication
src/lib/demoAuth.js - Supabase adapter
src/lib/supabase.js - Supabase database
supabase/schema.sql - Create staff function
supabase/functions/create-staff/index.ts
Other components
- Visitor
Connections 37
- Visitor → Public pages: browses
- Public pages → Public layout: renders
src/pages/public/Home.jsx - Public layout → Course catalog: reads
src/components/PublicLayout.jsx - Visitor → Login: signs in
- Login → LMS state and actions: requests access
src/pages/auth/Login.jsx - LMS state and actions → Demo authentication: verifies locally
src/lib/store.jsx - LMS state and actions → Supabase adapter: uses when configured
src/lib/store.jsx - Supabase adapter → Supabase database: reads and writes
- Supabase adapter → Create staff function: creates staff
- LMS state and actions → Route access: provides session
src/App.jsx - Route access → Role permissions: checks roles
src/App.jsx - Route access → Staff workspace shell: renders staff
src/App.jsx - Route access → Student portal: routes students
src/App.jsx - Staff workspace shell → Dashboard: hosts routes
- Route access → People management: routes to
src/App.jsx - Route access → Academic content: routes to
src/App.jsx - Route access → Exams and assignments: routes to
src/App.jsx - Route access → Fees: routes to
src/App.jsx - Route access → CRM: routes to
src/App.jsx - Route access → Campus services: routes to
src/App.jsx - Route access → System administration: routes to
src/App.jsx - Student portal → LMS state and actions: uses LMS state
- People management → Domain lookups: uses lookups
src/pages/app/People.jsx - Academic content → Domain lookups: uses lookups
src/pages/app/Academic.jsx - Exams and assignments → Domain lookups: uses lookups
src/pages/app/Exams.jsx - Fees → Domain lookups: uses lookups
src/pages/app/Fees.jsx - CRM → Domain lookups: uses lookups
src/pages/app/Crm.jsx - Campus services → Domain lookups: uses lookups
src/pages/app/Desk.jsx - Dashboard → Domain lookups: uses lookups
src/pages/app/Dashboard.jsx - Domain lookups → LMS state and actions: reads LMS state
src/pages/app/lookups.js - People management → LMS state and actions: uses actions
- Academic content → LMS state and actions: uses actions
- Exams and assignments → LMS state and actions: uses actions
- Fees → LMS state and actions: uses actions
- CRM → LMS state and actions: uses actions
- Campus services → LMS state and actions: uses actions
- System administration → Supabase adapter: uses adapter
src/pages/app/System.jsx