How itsasad786/ucab works
UCab is a role-based cab-booking platform with rider, driver, and admin panels. The principal flow is rider registration/login, cab selection and booking, followed by driver ride handling and status/history views; admins manage bookings, users, and the fleet. The sampled frontend context uses in-memory state mirrored to browser local storage, while the repository also contains a separate Express/MongoDB API. The excerpts do not establish that the frontend calls that API, so no client-to-server link is inferred; several panel capabilities are documented but their page wiring was not sampled.
Main entry points: App.jsx Route application · DataContext.jsx Shared demo data · server.js Express API server · AuthContext.jsx Demo auth state
Components 32
Web application
- Route application
Project_Files/src/App.jsx - Landing experience
Project_Files/src/pages/LandingPage.jsx - Landing hero
Project_Files/src/components/landing/Hero.jsx
Identity
- Sign-in and registration
Project_Files/src/pages/auth/AuthPage.jsx - Demo auth state
Project_Files/src/context/AuthContext.jsx - Role route guard
Project_Files/src/App.jsx
Ride operations
- Ride booking
Project_Files/src/pages/rider/BookRide.jsx - Rider panel
Project_Files/src/pages/rider/RiderDashboard.jsx - Rider history
Project_Files/src/pages/rider/RideHistory.jsx - Driver panel
Project_Files/src/pages/driver/DriverDashboard.jsx - Assigned rides
Project_Files/src/pages/driver/AssignedRides.jsx - Driver history
Project_Files/src/pages/driver/DriverHistory.jsx - Driver earnings
Project_Files/src/pages/driver/Earnings.jsx
Platform management
- Admin overview
Project_Files/src/pages/admin/AdminDashboard.jsx - Booking management
Project_Files/src/pages/admin/AdminBookings.jsx - User management
Project_Files/src/pages/admin/AdminUsers.jsx - Cab fleet management
Project_Files/src/pages/admin/AdminCabs.jsx - Add cab
Project_Files/src/pages/admin/AddCab.jsx - Shared demo data
Project_Files/src/context/DataContext.jsx
API and persistence
- HTTP client utility
Project_Files/src/api/axios.js - Express API server
Project_Files/server/server.js - Authentication routes
Project_Files/server/routes/auth.js - Booking routes
Project_Files/server/routes/bookings.js - Cab routes
Project_Files/server/routes/cabs.js - User routes
Project_Files/server/routes/users.js - JWT middleware
Project_Files/server/middleware/auth.js - User model
Project_Files/server/models/User.js - Booking model
Project_Files/server/models/Booking.js - Cab model
Project_Files/server/models/Cab.js
Other components
- Browser user
- Browser local storage
- MongoDB
Connections 47
- Browser user → Route application: opens
- Route application → Landing experience: routes to
- Route application → Sign-in and registration: routes to
- Route application → Role route guard: guards routes
- Route application → Ride booking: routes to
- Route application → Rider panel: routes to
- Route application → Rider history: routes to
- Route application → Driver panel: routes to
- Route application → Assigned rides: routes to
- Route application → Driver history: routes to
- Route application → Driver earnings: routes to
- Route application → Admin overview: routes to
- Route application → Booking management: routes to
- Route application → User management: routes to
- Route application → Cab fleet management: routes to
- Route application → Add cab: routes to
- Landing experience → Landing hero: renders
- Landing hero → Browser user: navigates
- Sign-in and registration → Demo auth state: calls login/register
- Role route guard → Demo auth state: reads user
- Ride booking → Demo auth state: reads rider
- Ride booking → Shared demo data: reads cabs; adds booking
- Rider panel → Shared demo data: reads shared data
- Rider history → Shared demo data: reads shared data
- Driver panel → Shared demo data: reads shared data
- Assigned rides → Shared demo data: uses ride data
- Driver history → Shared demo data: reads shared data
- Driver earnings → Shared demo data: reads ride data
- Admin overview → Shared demo data: reads shared data
- Booking management → Shared demo data: manages bookings
- User management → Shared demo data: manages users
- Cab fleet management → Shared demo data: manages cabs
- Add cab → Shared demo data: adds cab
- Demo auth state → Browser local storage: persists session/users
- Shared demo data → Browser local storage: persists demo data
- Express API server → Authentication routes: mounts
- Express API server → Booking routes: mounts
- Express API server → Cab routes: mounts
- Express API server → User routes: mounts
- Authentication routes → JWT middleware: protects profile
- JWT middleware → User model: loads user
- Authentication routes → User model: reads/writes users
- Booking routes → Booking model: reads/writes bookings
- Cab routes → Cab model: reads/writes cabs
- User routes → User model: manages users
- Express API server → MongoDB: connects
- HTTP client utility → Express API server