# vuhieu0312/rideup-car-pooling architecture

> Architecture diagram of the GitHub repository vuhieu0312/rideup-car-pooling, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vuhieu0312/rideup-car-pooling
- Repository: https://github.com/vuhieu0312/rideup-car-pooling

## Overview

RideUp is a ride-sharing platform with customer, driver, and admin mobile clients backed by a Java service. Customers authenticate, discover trips, book and pay, then can review a completed ride; drivers register vehicles and trips, manage bookings, and receive payouts. Messaging, realtime updates, location lookup, refunds, and administrative review are additional product capabilities. The excerpts verify authentication, payment, and review interactions; many other branches are represented from the repository tree, with uncertain links omitted.

Main entry points: [`rideup-customer-mobile/src/navigation/AppNavigator.jsx`](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-customer-mobile/src/navigation/AppNavigator.jsx) (Customer screens), [`rideup-customer-mobile/App.js`](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-customer-mobile/App.js) (Customer app), [`rideup-driver-mobile/App.js`](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-driver-mobile/App.js) (Driver app), [`rideup-backend/src/main/java/com/rideup/service`](https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-backend/src/main/java/com/rideup/service) (Trips and bookings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["Mobile clients"]
  node_customer["Customer app<br/>[App.js]"]
  node_driver["Driver app<br/>[App.js]"]
  node_admin["Admin app<br/>[App.js]"]
  node_customer_nav["Customer screens<br/>[AppNavigator.jsx]"]
  node_driver_screens["Driver screens"]
  node_admin_screens["Admin screens"]
  node_customer_api["Customer API client<br/>[api.js]"]
  node_driver_api["Driver API client<br/>[api.js]"]
end

subgraph group_identity["Identity and access"]
  node_auth_api["Auth endpoints"]
  node_auth_service["Authentication"]
  node_jwt["JWT security<br/>[JwtService.java]"]
  node_user_store[("User records")]
end

subgraph group_rides["Ride operations"]
  node_trip_booking["Trips and bookings"]
  node_ride_endpoints["Ride endpoints"]
  node_ride_data[("Ride records<br/>[Booking.java]")]
end

subgraph group_money["Payments and ratings"]
  node_payment_api["Payment endpoints"]
  node_payment_service["Payment processing"]
  node_payment_data[("Payment records<br/>[Payment.java]")]
  node_stripe["Stripe payments"]
  node_reviews["Trip reviews<br/>[ReviewService.java]"]
  node_review_endpoint["Review endpoint"]
  node_review_store[("Review records")]
end

subgraph group_platform["Messaging and platform"]
  node_chat["Conversations and chat"]
  node_realtime["Realtime updates"]
  node_location["Location services"]
end

node_customer_actor(("Customer"))
node_driver_actor(("Driver"))
node_admin_actor(("Administrator"))

node_customer_actor -.->|"uses"| node_customer
node_driver_actor -.->|"uses"| node_driver
node_admin_actor -.->|"uses"| node_admin
node_customer -->|"mounts"| node_customer_nav
node_driver -.->|"navigates"| node_driver_screens
node_admin -.->|"navigates"| node_admin_screens
node_customer -->|"provides auth"| node_customer_api
node_driver -->|"provides auth"| node_driver_api
node_customer_api -.->|"HTTP requests"| node_auth_api
node_driver_api -.->|"HTTP requests"| node_auth_api
node_auth_api -->|"delegates to"| node_auth_service
node_auth_service -->|"issues tokens"| node_jwt
node_auth_service -->|"reads and writes"| node_user_store
node_customer_nav -.->|"supports booking"| node_trip_booking
node_driver_screens -.->|"manages rides"| node_trip_booking
node_ride_endpoints -.->|"routes ride actions"| node_trip_booking
node_trip_booking -.->|"persists rides"| node_ride_data
node_customer_nav -.->|"starts payment"| node_payment_api
node_payment_api -->|"delegates to"| node_payment_service
node_payment_service -->|"reads and writes"| node_payment_data
node_payment_service -->|"creates intents"| node_stripe
node_customer_nav -.->|"submits review"| node_review_endpoint
node_review_endpoint -->|"delegates to"| node_reviews
node_reviews -->|"saves and queries"| node_review_store
node_customer_nav -.->|"accesses messaging"| node_chat
node_driver_screens -.->|"accesses messaging"| node_chat
node_customer -.->|"enables updates"| node_realtime
node_driver -.->|"enables updates"| node_realtime
node_customer_nav -.->|"uses locations"| node_location

click node_customer "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-customer-mobile/App.js"
click node_driver "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-driver-mobile/App.js"
click node_admin "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-admin-mobile/App.js"
click node_customer_nav "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-customer-mobile/src/navigation/AppNavigator.jsx"
click node_driver_screens "https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-driver-mobile/src/screens"
click node_admin_screens "https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-admin-mobile/src/screens"
click node_customer_api "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-customer-mobile/src/api/api.js"
click node_driver_api "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-driver-mobile/src/api/api.js"
click node_auth_api "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/controller/AuthController.java"
click node_auth_service "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/AuthenticationService.java"
click node_jwt "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/security/JwtService.java"
click node_user_store "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/repository/UserRepository.java"
click node_trip_booking "https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-backend/src/main/java/com/rideup/service"
click node_ride_endpoints "https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-backend/src/main/java/com/rideup/controller"
click node_ride_data "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/entity/Booking.java"
click node_payment_api "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/controller/PaymentController.java"
click node_payment_service "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/PaymentService.java"
click node_payment_data "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/entity/Payment.java"
click node_reviews "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/ReviewService.java"
click node_review_endpoint "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/controller/ReviewCustomerController.java"
click node_review_store "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/repository/ReviewRepository.java"
click node_chat "https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-backend/src/main/java/com/rideup/controller"
click node_realtime "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/RealtimeService.java"
click node_location "https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/LocationService.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_customer,node_driver,node_admin,node_customer_nav,node_driver_screens,node_admin_screens,node_customer_api,node_driver_api toneBlue
class node_auth_api,node_auth_service,node_jwt,node_user_store toneAmber
class node_trip_booking,node_ride_endpoints,node_ride_data toneMint
class node_payment_api,node_payment_service,node_payment_data,node_stripe,node_reviews,node_review_endpoint,node_review_store toneRose
class node_chat,node_realtime,node_location,node_customer_actor,node_driver_actor,node_admin_actor toneIndigo
```

## Components

### Mobile clients

- [Customer app](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-customer-mobile/App.js): `rideup-customer-mobile/App.js`
- [Driver app](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-driver-mobile/App.js): `rideup-driver-mobile/App.js`
- [Admin app](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-admin-mobile/App.js): `rideup-admin-mobile/App.js`
- [Customer screens](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-customer-mobile/src/navigation/AppNavigator.jsx): `rideup-customer-mobile/src/navigation/AppNavigator.jsx`
- [Driver screens](https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-driver-mobile/src/screens): `rideup-driver-mobile/src/screens`
- [Admin screens](https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-admin-mobile/src/screens): `rideup-admin-mobile/src/screens`
- [Customer API client](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-customer-mobile/src/api/api.js): `rideup-customer-mobile/src/api/api.js`
- [Driver API client](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-driver-mobile/src/api/api.js): `rideup-driver-mobile/src/api/api.js`

### Identity and access

- [Auth endpoints](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/controller/AuthController.java): `rideup-backend/src/main/java/com/rideup/controller/AuthController.java`
- [Authentication](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/AuthenticationService.java): `rideup-backend/src/main/java/com/rideup/service/AuthenticationService.java`
- [JWT security](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/security/JwtService.java): `rideup-backend/src/main/java/com/rideup/security/JwtService.java`
- [User records](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/repository/UserRepository.java): `rideup-backend/src/main/java/com/rideup/repository/UserRepository.java`

### Ride operations

- [Trips and bookings](https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-backend/src/main/java/com/rideup/service): `rideup-backend/src/main/java/com/rideup/service`
- [Ride endpoints](https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-backend/src/main/java/com/rideup/controller): `rideup-backend/src/main/java/com/rideup/controller`
- [Ride records](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/entity/Booking.java): `rideup-backend/src/main/java/com/rideup/entity/Booking.java`

### Payments and ratings

- [Payment endpoints](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/controller/PaymentController.java): `rideup-backend/src/main/java/com/rideup/controller/PaymentController.java`
- [Payment processing](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/PaymentService.java): `rideup-backend/src/main/java/com/rideup/service/PaymentService.java`
- [Payment records](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/entity/Payment.java): `rideup-backend/src/main/java/com/rideup/entity/Payment.java`
- **Stripe payments**
- [Trip reviews](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/ReviewService.java): `rideup-backend/src/main/java/com/rideup/service/ReviewService.java`
- [Review endpoint](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/controller/ReviewCustomerController.java): `rideup-backend/src/main/java/com/rideup/controller/ReviewCustomerController.java`
- [Review records](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/repository/ReviewRepository.java): `rideup-backend/src/main/java/com/rideup/repository/ReviewRepository.java`

### Messaging and platform

- [Conversations and chat](https://github.com/vuhieu0312/rideup-car-pooling/tree/main/rideup-backend/src/main/java/com/rideup/controller): `rideup-backend/src/main/java/com/rideup/controller`
- [Realtime updates](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/RealtimeService.java): `rideup-backend/src/main/java/com/rideup/service/RealtimeService.java`
- [Location services](https://github.com/vuhieu0312/rideup-car-pooling/blob/main/rideup-backend/src/main/java/com/rideup/service/LocationService.java): `rideup-backend/src/main/java/com/rideup/service/LocationService.java`

### Other components

- **Customer**
- **Driver**
- **Administrator**

## Connections

- Customer → Customer app: uses
- Driver → Driver app: uses
- Administrator → Admin app: uses
- Customer app → Customer screens: mounts (evidence: `rideup-customer-mobile/App.js`)
- Driver app → Driver screens: navigates
- Admin app → Admin screens: navigates
- Customer app → Customer API client: provides auth
- Driver app → Driver API client: provides auth
- Customer API client → Auth endpoints: HTTP requests
- Driver API client → Auth endpoints: HTTP requests
- Auth endpoints → Authentication: delegates to (evidence: `rideup-backend/src/main/java/com/rideup/service/AuthenticationService.java`)
- Authentication → JWT security: issues tokens (evidence: `rideup-backend/src/main/java/com/rideup/service/AuthenticationService.java`)
- Authentication → User records: reads and writes (evidence: `rideup-backend/src/main/java/com/rideup/service/AuthenticationService.java`)
- Customer screens → Trips and bookings: supports booking
- Driver screens → Trips and bookings: manages rides
- Ride endpoints → Trips and bookings: routes ride actions (evidence: `rideup-backend/src/main/java/com/rideup/controller/ReviewCustomerController.java`)
- Trips and bookings → Ride records: persists rides (evidence: `rideup-backend/src/main/java/com/rideup/service/PaymentService.java`)
- Customer screens → Payment endpoints: starts payment
- Payment endpoints → Payment processing: delegates to (evidence: `rideup-backend/src/main/java/com/rideup/controller/PaymentController.java`)
- Payment processing → Payment records: reads and writes (evidence: `rideup-backend/src/main/java/com/rideup/service/PaymentService.java`)
- Payment processing → Stripe payments: creates intents (evidence: `rideup-backend/src/main/java/com/rideup/service/PaymentService.java`)
- Customer screens → Review endpoint: submits review
- Review endpoint → Trip reviews: delegates to (evidence: `rideup-backend/src/main/java/com/rideup/controller/ReviewCustomerController.java`)
- Trip reviews → Review records: saves and queries (evidence: `rideup-backend/src/main/java/com/rideup/service/ReviewService.java`)
- Customer screens → Conversations and chat: accesses messaging
- Driver screens → Conversations and chat: accesses messaging
- Customer app → Realtime updates: enables updates
- Driver app → Realtime updates: enables updates
- Customer screens → Location services: uses locations
