# quadndd/24ct1-leanhquan architecture

> Architecture diagram of the GitHub repository quadndd/24ct1-leanhquan, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-06). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/quadndd/24ct1-leanhquan
- Repository: https://github.com/quadndd/24ct1-leanhquan

## Overview

GoRide VN is a Flutter ride-hailing app. Its file tree indicates customer booking and trip screens, parallel driver request and trip screens, plus authentication, messaging, payments, notifications, profiles, and location/map support. The likely customer journey runs from booking through driver matching to an active ride and completion; drivers have a separate request-to-completion journey. Dart source excerpts and workflow documentation were not provided, so these inferred screen transitions and service connections are dashed and unverified.

Main entry points: [`lib/screens/customer/home_screen.dart`](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/home_screen.dart) (Customer home), [`lib/screens/customer/booking_screen.dart`](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/booking_screen.dart) (Ride booking), [`lib/screens/driver/home_screen.dart`](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/home_screen.dart) (Driver home), [`lib/screens/customer/active_ride_screen.dart`](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/active_ride_screen.dart) (Active customer ride)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App entry"]
  node_app["App shell<br/>[main.dart]"]
  node_splash["Splash<br/>[splash_screen.dart]"]
end

subgraph group_customer["Customer journeys"]
  node_customer_home["Customer home<br/>[home_screen.dart]"]
  node_booking["Ride booking"]
  node_vehicle["Vehicle selection"]
  node_finding["Driver matching"]
  node_customer_ride["Active customer ride"]
  node_customer_complete["Ride completion"]
  node_chat_customer["Customer chat<br/>[chat_screen.dart]"]
  node_payments["Payments"]
  node_trips_customer["Customer trips<br/>[trips_screen.dart]"]
  node_locations["Saved locations"]
  node_notifications["Notifications"]
end

subgraph group_driver["Driver journeys"]
  node_driver_home["Driver home<br/>[home_screen.dart]"]
  node_driver_request["Ride request"]
  node_driver_ride["Active driver ride"]
  node_driver_complete["Trip completion"]
  node_onboarding["Driver onboarding"]
  node_approval["Pending approval"]
  node_chat_driver["Driver chat<br/>[chat_screen.dart]"]
  node_trips_driver["Driver trips<br/>[trips_screen.dart]"]
  node_earnings["Driver earnings"]
end

subgraph group_shared["Shared services and account"]
  node_login["Login<br/>[login_screen.dart]"]
  node_register["Registration"]
  node_profile_customer["Customer profile"]
  node_profile_driver["Driver profile"]
  node_settings["Settings"]
  node_auth_service["Authentication service<br/>[auth_service.dart]"]
  node_location_service["Location service"]
  node_map_service["Map service<br/>[map_service.dart]"]
  node_map_widget["Map widgets"]
end

node_rider(("Customer"))
node_driver_actor(("Driver"))

node_rider -.->|"opens"| node_app
node_driver_actor -.->|"opens"| node_app
node_app -.->|"starts"| node_splash
node_splash -.->|"routes to"| node_login
node_login -.->|"authenticates"| node_auth_service
node_register -.->|"registers"| node_auth_service
node_rider -.->|"uses"| node_customer_home
node_customer_home -.->|"starts booking"| node_booking
node_booking -.->|"selects vehicle"| node_vehicle
node_booking -.->|"uses location"| node_location_service
node_booking -.->|"uses map"| node_map_service
node_booking -.->|"displays map"| node_map_widget
node_vehicle -.->|"requests ride"| node_finding
node_finding -.->|"matches driver"| node_customer_ride
node_customer_ride -.->|"completes ride"| node_customer_complete
node_driver_actor -.->|"uses"| node_driver_home
node_driver_home -.->|"receives request"| node_driver_request
node_driver_request -.->|"accepts ride"| node_driver_ride
node_driver_ride -.->|"completes trip"| node_driver_complete
node_onboarding -.->|"submits for review"| node_approval
node_customer_ride -.->|"opens chat"| node_chat_customer
node_driver_ride -.->|"opens chat"| node_chat_driver
node_customer_complete -.->|"views payment"| node_payments
node_customer_home -.->|"opens trips"| node_trips_customer
node_driver_home -.->|"opens trips"| node_trips_driver
node_driver_home -.->|"views earnings"| node_earnings
node_customer_home -.->|"opens profile"| node_profile_customer
node_driver_home -.->|"opens profile"| node_profile_driver
node_customer_home -.->|"manages locations"| node_locations
node_customer_home -.->|"opens notifications"| node_notifications
node_customer_home -.->|"opens settings"| node_settings

click node_app "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/main.dart"
click node_splash "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/splash/splash_screen.dart"
click node_login "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/auth/login_screen.dart"
click node_register "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/auth/register_screen.dart"
click node_customer_home "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/home_screen.dart"
click node_booking "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/booking_screen.dart"
click node_vehicle "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/vehicle_select_screen.dart"
click node_finding "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/finding_driver_screen.dart"
click node_customer_ride "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/active_ride_screen.dart"
click node_customer_complete "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/ride_complete_screen.dart"
click node_driver_home "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/home_screen.dart"
click node_driver_request "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/ride_request_screen.dart"
click node_driver_ride "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/active_ride_screen.dart"
click node_driver_complete "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/trip_complete_screen.dart"
click node_onboarding "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/onboarding_screen.dart"
click node_approval "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/pending_approval_screen.dart"
click node_chat_customer "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/chat_screen.dart"
click node_chat_driver "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/chat_screen.dart"
click node_payments "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/payments_screen.dart"
click node_trips_customer "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/trips_screen.dart"
click node_trips_driver "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/trips_screen.dart"
click node_earnings "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/earnings_screen.dart"
click node_profile_customer "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/profile_screen.dart"
click node_profile_driver "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/profile_screen.dart"
click node_locations "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/saved_locations_screen.dart"
click node_notifications "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/notifications_screen.dart"
click node_settings "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/settings_screen.dart"
click node_auth_service "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/core/auth_service.dart"
click node_location_service "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/services/location_service.dart"
click node_map_service "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/services/map_service.dart"
click node_map_widget "https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/widgets/real_map_widget.dart"

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_app,node_splash toneBlue
class node_customer_home,node_booking,node_vehicle,node_finding,node_customer_ride,node_customer_complete,node_chat_customer,node_payments,node_trips_customer,node_locations,node_notifications toneAmber
class node_driver_home,node_driver_request,node_driver_ride,node_driver_complete,node_onboarding,node_approval,node_chat_driver,node_trips_driver,node_earnings toneMint
class node_login,node_register,node_profile_customer,node_profile_driver,node_settings,node_auth_service,node_location_service,node_map_service,node_map_widget toneRose
class node_rider,node_driver_actor toneIndigo
```

## Components

### App entry

- [App shell](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/main.dart): `lib/main.dart`
- [Splash](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/splash/splash_screen.dart): `lib/screens/splash/splash_screen.dart`

### Customer journeys

- [Customer home](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/home_screen.dart): `lib/screens/customer/home_screen.dart`
- [Ride booking](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/booking_screen.dart): `lib/screens/customer/booking_screen.dart`
- [Vehicle selection](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/vehicle_select_screen.dart): `lib/screens/customer/vehicle_select_screen.dart`
- [Driver matching](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/finding_driver_screen.dart): `lib/screens/customer/finding_driver_screen.dart`
- [Active customer ride](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/active_ride_screen.dart): `lib/screens/customer/active_ride_screen.dart`
- [Ride completion](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/ride_complete_screen.dart): `lib/screens/customer/ride_complete_screen.dart`
- [Customer chat](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/chat_screen.dart): `lib/screens/customer/chat_screen.dart`
- [Payments](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/payments_screen.dart): `lib/screens/customer/payments_screen.dart`
- [Customer trips](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/trips_screen.dart): `lib/screens/customer/trips_screen.dart`
- [Saved locations](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/saved_locations_screen.dart): `lib/screens/customer/saved_locations_screen.dart`
- [Notifications](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/notifications_screen.dart): `lib/screens/customer/notifications_screen.dart`

### Driver journeys

- [Driver home](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/home_screen.dart): `lib/screens/driver/home_screen.dart`
- [Ride request](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/ride_request_screen.dart): `lib/screens/driver/ride_request_screen.dart`
- [Active driver ride](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/active_ride_screen.dart): `lib/screens/driver/active_ride_screen.dart`
- [Trip completion](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/trip_complete_screen.dart): `lib/screens/driver/trip_complete_screen.dart`
- [Driver onboarding](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/onboarding_screen.dart): `lib/screens/driver/onboarding_screen.dart`
- [Pending approval](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/pending_approval_screen.dart): `lib/screens/driver/pending_approval_screen.dart`
- [Driver chat](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/chat_screen.dart): `lib/screens/driver/chat_screen.dart`
- [Driver trips](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/trips_screen.dart): `lib/screens/driver/trips_screen.dart`
- [Driver earnings](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/earnings_screen.dart): `lib/screens/driver/earnings_screen.dart`

### Shared services and account

- [Login](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/auth/login_screen.dart): `lib/screens/auth/login_screen.dart`
- [Registration](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/auth/register_screen.dart): `lib/screens/auth/register_screen.dart`
- [Customer profile](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/profile_screen.dart): `lib/screens/customer/profile_screen.dart`
- [Driver profile](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/driver/profile_screen.dart): `lib/screens/driver/profile_screen.dart`
- [Settings](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/screens/customer/settings_screen.dart): `lib/screens/customer/settings_screen.dart`
- [Authentication service](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/core/auth_service.dart): `lib/core/auth_service.dart`
- [Location service](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/services/location_service.dart): `lib/services/location_service.dart`
- [Map service](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/services/map_service.dart): `lib/services/map_service.dart`
- [Map widgets](https://github.com/quadndd/24ct1-leanhquan/blob/main/lib/widgets/real_map_widget.dart): `lib/widgets/real_map_widget.dart`

### Other components

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

## Connections

- Customer → App shell: opens
- Driver → App shell: opens
- App shell → Splash: starts
- Splash → Login: routes to
- Login → Authentication service: authenticates
- Registration → Authentication service: registers
- Customer → Customer home: uses
- Customer home → Ride booking: starts booking
- Ride booking → Vehicle selection: selects vehicle
- Ride booking → Location service: uses location
- Ride booking → Map service: uses map
- Ride booking → Map widgets: displays map
- Vehicle selection → Driver matching: requests ride
- Driver matching → Active customer ride: matches driver
- Active customer ride → Ride completion: completes ride
- Driver → Driver home: uses
- Driver home → Ride request: receives request
- Ride request → Active driver ride: accepts ride
- Active driver ride → Trip completion: completes trip
- Driver onboarding → Pending approval: submits for review
- Active customer ride → Customer chat: opens chat
- Active driver ride → Driver chat: opens chat
- Ride completion → Payments: views payment
- Customer home → Customer trips: opens trips
- Driver home → Driver trips: opens trips
- Driver home → Driver earnings: views earnings
- Customer home → Customer profile: opens profile
- Driver home → Driver profile: opens profile
- Customer home → Saved locations: manages locations
- Customer home → Notifications: opens notifications
- Customer home → Settings: opens settings
