How ironraymond04/capstone-project-galanza-pugales-sacabin works
This is a React campus helpdesk application. Users enter through public pages or sign in, then role-based routing sends students, staff, and administrators to separate dashboards. The student dashboard supports ticket submission and tracking; ticket classification is delegated to Gemini, while dashboard and authentication code use Supabase. Excerpts establish the router, authentication/profile lookup, student classification call, and student data access; several staff/admin interactions are visible only as imports or load-function names, so their specific data flows are not asserted.
Main entry points: App.jsx Route application · supabaseClient.js Supabase client · StudentDashboard.jsx Student dashboard · StaffDashboard.jsx Staff dashboard
Components 18
App navigation
- Route application
src/App.jsx - Home page
src/pages/Home.jsx - How it works
src/pages/Howitworks.jsx
Identity and access
- Login page
src/pages/Login.jsx - Signup page
src/pages/Signup.jsx - Auth context
src/context/AuthContext.jsx - Role guard
src/components/ProtectedRoute.jsx - Access denied
src/pages/Unauthorized.jsx - Supabase client
src/lib/supabaseClient.js
Student helpdesk
- Student dashboard
src/pages/StudentDashboard.jsx - Dashboard navigation
src/components/Sidebar.jsx - Ticket classifier
src/lib/ai.js
Staff and administration
- Staff dashboard
src/pages/StaffDashboard.jsx - Admin dashboard
src/pages/AdminDashboard.jsx - Viewport hook
src/hooks/useIsMobile.js
Other components
- Helpdesk user
- Supabase service
- Gemini AI
Connections 27
- Helpdesk user → Route application: opens
src/App.jsx - Route application → Home page: routes to
src/App.jsx - Route application → How it works: routes to
src/App.jsx - Route application → Login page: routes to
src/App.jsx - Route application → Signup page: routes to
src/App.jsx - Route application → Auth context: provides
src/App.jsx - Route application → Role guard: guards
src/App.jsx - Route application → Student dashboard: routes to
src/App.jsx - Route application → Staff dashboard: routes to
src/App.jsx - Route application → Admin dashboard: routes to
src/App.jsx - Route application → Access denied: routes to
src/App.jsx - Role guard → Auth context: reads role
src/components/ProtectedRoute.jsx - Auth context → Supabase client: loads profile
src/context/AuthContext.jsx - Supabase client → Supabase service: connects
src/lib/supabaseClient.js - Student dashboard → Supabase client: reads and writes
src/pages/StudentDashboard.jsx - Student dashboard → Ticket classifier: classifies concern
src/pages/StudentDashboard.jsx - Ticket classifier → Gemini AI: requests classification
src/lib/ai.js - Student dashboard → Dashboard navigation: renders
src/pages/StudentDashboard.jsx - Staff dashboard → Dashboard navigation: renders
src/pages/StaffDashboard.jsx - Admin dashboard → Dashboard navigation: renders
src/pages/AdminDashboard.jsx - Student dashboard → Viewport hook: checks viewport
src/pages/StudentDashboard.jsx - Staff dashboard → Viewport hook: checks viewport
src/pages/StaffDashboard.jsx - Admin dashboard → Viewport hook: checks viewport
src/pages/AdminDashboard.jsx - Login page → Supabase client: uses auth
src/pages/Login.jsx - Signup page → Supabase client: uses auth
src/pages/Signup.jsx - Staff dashboard → Supabase client: loads operations data
src/pages/StaffDashboard.jsx - Admin dashboard → Supabase client: loads admin data
src/pages/AdminDashboard.jsx