How a7med-3li/vamo works
Vamo is a ride-sharing platform with passenger, driver, and administrative clients backed by a Spring service. The main ride lifecycle is requesting a ride, matching a driver through event-driven dispatch, accepting and completing it, then tracking related wallet and rating functions. Other major capabilities include account registration and authentication, route/address lookup, configurable fares, corridor subscriptions, notifications, and admin operations. The excerpts establish several service calls and event flows; unsampled controller wiring and some domain integrations are left implicit.
Main entry points: RideService.java Ride lifecycle · AuthService.java Authentication · SubscriptionService.java Subscriptions · AdminController.java Admin API
Components 27
User clients
- Passenger web
app-client/src/App.tsx - Admin web
admin-client/src/App.tsx
Identity and profiles
- Auth API
backend/src/main/java/com/vamo/auth/controller/AuthController.java - Authentication
backend/src/main/java/com/vamo/auth/service/AuthService.java - User profiles
backend/src/main/java/com/vamo/user/service/UserService.java - User records
backend/src/main/java/com/vamo/user/repository/UserRepository.java - Driver profiles
backend/src/main/java/com/vamo/driver/repository/DriverProfileRepository.java
Ride operations
- Ride API
backend/src/main/java/com/vamo/ride/controller/RideController.java - Ride lifecycle
backend/src/main/java/com/vamo/ride/service/RideService.java - Ride records
backend/src/main/java/com/vamo/ride/repository/RideRepository.java - Ride dispatch
backend/src/main/java/com/vamo/dispatch/service/RideDispatchListener.java - Driver connections
backend/src/main/java/com/vamo/dispatch/service/ConnectionManager.java - Fare calculation
backend/src/main/java/com/vamo/pricing/service/FareCalculationService.java - Route lookup
backend/src/main/java/com/vamo/ride/service/HERERoutingServiceImpl.java - Address search
backend/src/main/java/com/vamo/addressing/service/AddressingService.java
Passenger services
- Driver wallet
backend/src/main/java/com/vamo/driver/service/DriverWalletService.java - Subscriptions
backend/src/main/java/com/vamo/subscription/service/SubscriptionService.java - Corridors
backend/src/main/java/com/vamo/corridor/service/CorridorService.java - Notifications
backend/src/main/java/com/vamo/notification/service/SubscriptionNotificationListenerService.java - Payments
backend/src/main/java/com/vamo/payment/service/PaymentService.java - Ride ratings
backend/src/main/java/com/vamo/rating/service/RatingService.java
Administration
- Admin API
backend/src/main/java/com/vamo/admin/controller/AdminController.java - Admin operations
backend/src/main/java/com/vamo/admin/service/AdminService.java - Admin reporting
backend/src/main/java/com/vamo/admin/service/AdminStatsService.java
Other components
- User
- Driver
- Administrator
Connections 26
- User → Passenger web: uses
- Driver → Passenger web: uses
- Administrator → Admin web: uses
- Passenger web → Auth API: registers or logs in
- Auth API → Authentication: authenticates
- Authentication → User profiles: registers
- Authentication → User records: loads identity
- Authentication → Driver profiles: loads driver ID
- User profiles → User records: reads and writes
- Ride API → Ride lifecycle: handles ride requests
- Ride lifecycle → Ride records: reads and writes rides
- Ride lifecycle → Ride dispatch: publishes ride events
- Ride dispatch → Driver connections: dispatches rides
- Address search → Route lookup: searches map
- Address search → Admin operations: unrelated
- Subscriptions → Corridors: loads corridor
- Subscriptions → Notifications: publishes request event
- Subscriptions → Payments: subscription payment
- Notifications → Subscriptions: reads subscription
- Ride lifecycle → Driver wallet: ride payout
- Ride lifecycle → Ride ratings: ride rating
- Admin web → Admin API: manages operations
- Admin API → Admin operations: handles admin actions
- Admin API → Admin reporting: requests reports
- Admin reporting → Ride records: reads ride records
- Admin reporting → Driver profiles: reads driver records