How mohamed2007sarhan/indrive-lite works
InDrive Lite connects passengers and drivers through location-based ride requests, passenger-proposed fares, driver offers, and ride tracking, with separate account and administrator workflows. The sampled client code shows authentication, ride creation, offer polling and acceptance, while the server mounts authentication, ride, and admin APIs over a MySQL connection. Driver bidding, OTP verification, navigation, earnings, and complaint handling are README-documented capabilities; their internal wiring is not shown in the sampled source, so those links are kept at the documented subsystem level.
Main entry points: App.jsx Role-based app · api.js API client · index.js API server · RequestRide.jsx Request and track
Components 20
Passenger experience
- Role-based app
client/src/App.jsx - Sign in / register
client/src/pages/Auth - Auth state
client/src/context/AuthContext.jsx - Request and track
client/src/pages/Client/RequestRide.jsx - Location lookup
client/src/utils/location.js - Ride map
client/src/components/Map/Map.jsx - Account settings
client/src/pages/Settings.jsx
Driver experience
- Driver dashboard
client/src/pages/Driver/Dashboard.jsx
API and persistence
- API client
client/src/utils/api.js - API server
server/index.js - Authentication API
server/routes/auth.js - Ride and offers API
server/routes/rides.js - Admin API
server/routes/admin.js - Database connection
server/db.js - Uploaded files
server
Administration
- Admin dashboard
client/src/pages/Admin/Dashboard.jsx
Other components
- Passenger
- Driver
- Administrator
- MySQL
Connections 27
- Passenger → Role-based app: uses
- Driver → Role-based app: uses
- Administrator → Role-based app: uses
- Role-based app → Auth state: provides auth
- Role-based app → Sign in / register: routes
- Role-based app → Request and track: routes
- Role-based app → Driver dashboard: routes
- Role-based app → Admin dashboard: routes
- Role-based app → Account settings: routes
- Sign in / register → Auth state: authenticates
- Auth state → API client: requests auth
- Request and track → API client: requests rides
- Request and track → Location lookup: looks up location
- Request and track → Ride map: renders locations
- Account settings → API client: updates profile
- Driver dashboard → API client: uses ride API
- Admin dashboard → API client: requests admin data
- API client → API server: sends requests
- API server → Authentication API: dispatches auth
- API server → Ride and offers API: dispatches rides
- API server → Admin API: dispatches admin
- Authentication API → Database connection: queries users
- Ride and offers API → Database connection: accesses ride data
- Admin API → Database connection: accesses admin data
- Database connection → MySQL: connects
- Authentication API → Uploaded files: stores uploads
- API server → Uploaded files: serves files