How hadda-saad/ridehailing works
RideHailing is a Spring backend for driver/rider accounts, ride management, fare estimates, and real-time driver locations. The principal location workflow is documented as driver updates entering a queue, being processed asynchronously into history and a latest-position cache, then pushed to connected apps; current-location reads prefer the cache. The tree and README support these capabilities, but sampled source does not show the queue, cache, or WebSocket implementation or wiring, so those links are documented rather than source-verified. Other API-to-service interactions are only included where the index or excerpts support them.
Main entry points: DriverLocationServiceImpl.java Location Service · AuthService.java Account Service · DriverLocationController.java Location API · AuthController.java Authentication API
Components 23
Accounts and Security
- Authentication API
src/main/java/com/ridehailing/auth/controller/AuthController.java - Account Service
src/main/java/com/ridehailing/auth/service/AuthService.java - User Accounts
src/main/java/com/ridehailing/auth/model/User.java - JWT Tokens
src/main/java/com/ridehailing/auth/security/JwtService.java
Driver and Rider Profiles
- Driver Profiles
src/main/java/com/ridehailing/driver/service - Rider Profiles
src/main/java/com/ridehailing/rider/service
Rides and Pricing
- Ride API
src/main/java/com/ridehailing/ride/controller/RideController.java - Ride Management
src/main/java/com/ridehailing/ride/service - Ride Records
src/main/java/com/ridehailing/ride/repository/RideRepository.java - Fare API
src/main/java/com/ridehailing/PriceEstimate/controller/PriceEstimateController.java - Fare Estimation
src/main/java/com/ridehailing/PriceEstimate/service/PriceEstimateServiceImpl.java - Fare Records
src/main/java/com/ridehailing/PriceEstimate/repository/PriceEstimateRepository.java
Live Location
- Location API
src/main/java/com/ridehailing/location/controller/DriverLocationController.java - Location Producer
src/main/java/com/ridehailing/location/service/LocationProducer.java - Event Queue
- Location Worker
src/main/java/com/ridehailing/location/service/LocationConsumer.java - Location Service
src/main/java/com/ridehailing/location/service/DriverLocationServiceImpl.java - Location History
src/main/java/com/ridehailing/location/repository/DriverLocationRepository.java - Latest Position Cache
- Live Updates
src/main/java/com/ridehailing/location/config/WebSocketConfig.java
Other components
- Rider App
- Driver App
- Backend API
Connections 29
- Driver App → Location API: sends positions
- Location API → Location Producer: enqueues update
src/main/java/com/ridehailing/location/controller/DriverLocationController.java - Location Producer → Event Queue: publishes event
- Event Queue → Location Worker: delivers event
- Location Worker → Location Service: processes update
- Location Service → Location History: stores history
src/main/java/com/ridehailing/location/service/DriverLocationServiceImpl.java - Location Service → Latest Position Cache: updates latest
- Location Service → Live Updates: broadcasts position
- Live Updates → Rider App: pushes updates
- Rider App → Location API: requests position
- Location API → Location Service: queries location
src/main/java/com/ridehailing/location/controller/DriverLocationController.java - Location Service → Latest Position Cache: checks first
- Location Service → Location History: falls back
src/main/java/com/ridehailing/location/service/DriverLocationServiceImpl.java - Backend API → Authentication API: routes requests
- Rider App → Authentication API: registers or logs in
- Driver App → Authentication API: registers or logs in
- Authentication API → Account Service: delegates
src/main/java/com/ridehailing/auth/controller/AuthController.java - Account Service → User Accounts: reads and writes
src/main/java/com/ridehailing/auth/service/AuthService.java - Account Service → JWT Tokens: creates token
src/main/java/com/ridehailing/auth/service/AuthService.java - Account Service → Driver Profiles: registers driver
src/main/java/com/ridehailing/auth/service/AuthService.java - Account Service → Rider Profiles: registers rider
src/main/java/com/ridehailing/auth/service/AuthService.java - Backend API → Ride API: routes requests
- Rider App → Ride API: requests rides
- Ride API → Ride Management: delegates
src/main/java/com/ridehailing/ride/controller/RideController.java - Ride Management → Ride Records: reads and writes
- Backend API → Fare API: routes requests
- Rider App → Fare API: requests estimate
- Fare API → Fare Estimation: delegates
src/main/java/com/ridehailing/PriceEstimate/controller/PriceEstimateController.java - Fare Estimation → Fare Records: reads and writes