Skip to content

Customer App Workflows ​

The Customer App (apps/rider-frontend/) is a full-featured Flutter application that allows users to request ride-hailing or delivery services, track drivers in real-time, pay securely, and manage past activity. It's built with a clean architecture and real-time sync using WebSockets and GraphQL subscriptions, offering a seamless and responsive experience.


🧭 Workflow Overview ​

  1. Sign up and verify account
  2. Select service type and configure order
  3. View fare estimate and confirm payment
  4. Track driver and manage trip in real time
  5. Rate experience and access trip history

πŸͺͺ 1. Account Creation & Verification ​

  • Users register directly in the app
  • OTP verification is required for login and registration
  • Optionally, users can set a password for added security
  • Fare estimation and trip booking require account login

πŸ“¦ 2. Placing an Order ​

Available Order Types:

  • Ride-hailing

Booking Options:

  • Immediate bookings
  • Scheduled (later) trips with date/time picker

Pre-Trip Configuration:

  • Choose pickup and drop-off (multi-stop supported)
  • Set wait time, if needed
  • Add special options (e.g., pet-friendly, luggage)
  • Select preferred vehicle type and payment method

Customers must select a payment method prior to trip confirmation. Supported methods include:

  • Wallet
  • Saved cards (via integrated gateways)
  • Cash (if enabled by admin)

πŸ’° 3. Fare Estimate & Promo Handling ​

  • Fare estimation is displayed before confirmation, based on distance, time, and current multipliers
  • Promo codes and Gift cards can be entered:
    • From the wallet section
    • Or during checkout via the ride options panel
  • Applicable discounts are shown before final fare confirmation
  • Cancellation fee warnings are displayed before placing the order

πŸš— 4. Real-Time Tracking & Notifications ​

After booking:

  • Real-time driver tracking is enabled on the map
  • The ETA is calculated once the driver accepts the trip
  • Status updates (e.g., driver en route, arrived, trip started, completed) are communicated via:
    • Push notifications
    • In-app status updates

πŸ—ΊοΈ During the Trip:

  • User can:
    • View live driver location
    • Contact the driver via in-app chat
    • Access driver name, vehicle info, and contact options

πŸ’Έ 5. Payments & Wallet Management ​

Wallet Features:

  • Top-up wallet via integrated payment gateways
  • Apply promo codes or gift cards to balance
  • See transaction logs and wallet balance in real time

Payment Handling:

  • Charges are automatically deducted from the selected method upon trip completion
  • Invoices or receipts are shown in the Trip History section
  • Wallet is also used for cancellations, refunds, and incentives

πŸ“Š 6. Trip History & Ratings ​

  • Users can view all past rides and deliveries under Trip History
  • After each completed trip:
    • Users are prompted to rate the driver
    • Select quality metrics (cleanliness, punctuality, etc.)
  • If the trip is canceled, the app:
    • Requires a cancellation reason
    • Applies cancellation fees based on admin rules

πŸ’¬ 7. In-App Features ​

Chat

  • Available after a driver is assigned
  • Secure and session-bound communication
  • Optionally backed by SMS if configured on the backend

Announcements

  • Persistent updates appear in a dedicated Announcements section
    • Service outages
    • Promotions
    • Regional notices

Preferences

  • Users can:
    • Switch between Light/Dark mode
    • Change and persist language selection
    • View app version and license info

πŸ“ Summary Workflow ​

StepDescription
Register & VerifyOTP login + optional password setup
Create BookingSelect ride or delivery, configure details
View Fare & ConfirmApply promo/gift cards, review price
Track DriverLive tracking, chat, and notifications
Complete & RateLeave feedback and review trip summary
Manage WalletTop-up, view history, apply codes
Access History & ReportsPast trips, cancellations, and receipts
Change SettingsTheme and language options available