How iftear-ahmed/cuet-bus works
CUET Bus Ticket is a role-based bus reservation and management application. Students authenticate, browse routes and shifts, select seats, and manage bookings; supervisors review passengers and mark attendance; admins manage buses, users, and system statistics. The React client routes users to role-specific pages and uses a shared API client, while Express mounts API route modules backed by MongoDB models. The README documents Firebase Google sign-in and daily point allocation. Some page-to-endpoint mappings are not visible in the supplied excerpts, so those links are omitted.
Main entry points: App.jsx Role Routing · api.js HTTP Client · server.js Express API · bookings.js Booking API
Components 29
Web Client
- Role Routing
client/src/App.jsx - Seat Booking
client/src/pages/SeatBooking.jsx - Student Views
client/src/pages/StudentDashboard.jsx - Route Browser
client/src/pages/RoutePage.jsx - Profile History
client/src/pages/ProfilePage.jsx - Supervisor Dashboard
client/src/pages/SupervisorDashboard.jsx - Attendance
client/src/pages/AttendancePage.jsx - Admin Dashboard
client/src/pages/AdminDashboard.jsx - Bus Management
client/src/pages/AdminBusManagement.jsx - HTTP Client
client/src/utils/api.js
Identity
- Login and Registration
client/src/pages/StudentLogin.jsx - Session State
client/src/context/AuthContext.jsx - Firebase Auth
client/src/firebase.js - Authentication API
server/routes/auth.js - JWT Authentication
server/middleware/auth.js - Role Authorization
server/middleware/roleCheck.js
Bus Operations
- Express API
server/server.js - Bus and Shift API
server/routes/buses.js - Booking API
server/routes/bookings.js - Supervisor API
server/routes/supervisor.js - Admin API
server/routes/admin.js - Shift Rules
server/utils/shifts.js
Persistence
- User Records
server/models/User.js - Bus Records
server/models/Bus.js - Booking Records
server/models/Booking.js - MongoDB
server/config/db.js
Other components
- Student
- Supervisor
- Administrator
Connections 45
- Student → Role Routing: uses
client/src/App.jsx - Supervisor → Role Routing: uses
client/src/App.jsx - Administrator → Role Routing: uses
client/src/App.jsx - Role Routing → Seat Booking: routes to
client/src/App.jsx - Role Routing → Student Views: routes to
client/src/App.jsx - Role Routing → Route Browser: routes to
client/src/App.jsx - Role Routing → Profile History: routes to
client/src/App.jsx - Role Routing → Supervisor Dashboard: routes to
client/src/App.jsx - Role Routing → Attendance: routes to
client/src/App.jsx - Role Routing → Admin Dashboard: routes to
client/src/App.jsx - Role Routing → Bus Management: routes to
client/src/App.jsx - Role Routing → Session State: provides
client/src/App.jsx - Login and Registration → Session State: authenticates through
client/src/pages/StudentLogin.jsx - Login and Registration → Firebase Auth: uses
client/src/pages/StudentLogin.jsx - Session State → HTTP Client: calls
client/src/context/AuthContext.jsx - Seat Booking → HTTP Client: requests data
client/src/pages/SeatBooking.jsx - Student Views → HTTP Client: requests data
client/src/pages/StudentDashboard.jsx - Route Browser → HTTP Client: requests data
client/src/pages/RoutePage.jsx - Profile History → HTTP Client: requests data
client/src/pages/ProfilePage.jsx - Supervisor Dashboard → HTTP Client: requests data
client/src/pages/SupervisorDashboard.jsx - Attendance → HTTP Client: requests data
client/src/pages/AttendancePage.jsx - Admin Dashboard → HTTP Client: requests data
client/src/pages/AdminDashboard.jsx - Bus Management → HTTP Client: requests data
client/src/pages/AdminBusManagement.jsx - Express API → MongoDB: connects
server/server.js - Express API → Authentication API: mounts
server/server.js - Express API → Bus and Shift API: mounts
server/server.js - Express API → Booking API: mounts
server/server.js - Express API → Supervisor API: mounts
server/server.js - Express API → Admin API: mounts
server/server.js - Authentication API → User Records: reads and writes
server/routes/auth.js - JWT Authentication → User Records: loads user
server/middleware/auth.js - Authentication API → JWT Authentication: protects profile routes
server/routes/auth.js - Bus and Shift API → Bus Records: reads and writes
server/routes/buses.js - Bus and Shift API → Booking Records: checks bookings
server/routes/buses.js - Booking API → Booking Records: reads and writes
server/routes/bookings.js - Booking API → Bus Records: loads bus data
server/routes/bookings.js - Booking API → User Records: loads user data
server/routes/bookings.js - Booking API → Shift Rules: uses
server/routes/bookings.js - Bus and Shift API → Shift Rules: uses
server/routes/buses.js - Supervisor API → Booking Records: manages attendance
server/routes/supervisor.js - Supervisor API → Bus Records: loads bus data
server/routes/supervisor.js - Supervisor API → User Records: loads user data
server/routes/supervisor.js - Admin API → User Records: manages users
server/routes/admin.js - Admin API → Bus Records: manages buses
server/routes/admin.js - Admin API → Booking Records: reads bookings
server/routes/admin.js