Offer Transfer (Passenger & Driver Apps)
Offer Transfer is a dual-application ride-hailing solution consisting of a Passenger App and a Driver App, designed to facilitate real-time ride requests, offer-based pricing, and efficient trip management. I worked on building both applications using Flutter, ensuring a seamless and synchronized experience between riders and drivers.

Offer Transfer (Passenger & Driver Apps)
Overview
Offer Transfer is a dual-application ride-hailing solution consisting of a Passenger App and a Driver App, designed to facilitate real-time ride requests, offer-based pricing, and efficient trip management. I worked on building both applications using Flutter, ensuring a seamless and synchronized experience between riders and drivers.
The Problem
Traditional ride-hailing platforms often enforce fixed pricing models and limited flexibility for drivers and passengers. This reduces transparency and control for both parties. There was a need for a system where drivers could respond with offers and passengers could choose the best option, enabling a more dynamic and fair pricing model.
What I Built
Passenger App – Ride Requests & Offer Selection
Developed the passenger-side application where users can request rides by entering trip details and receive multiple offers from nearby drivers, allowing them to select the most suitable option based on price or availability.
Driver App – Offer Bidding System
Built the driver-side application enabling drivers to receive ride requests and submit custom offers, giving them control over pricing and improving earning flexibility.
Real-time Ride Management
Implemented real-time updates for ride status, including request creation, offer submission, acceptance, trip start, and completion, ensuring both apps remain synchronized throughout the ride lifecycle.
Location & Map Integration
Integrated location services and maps for accurate pickup/drop-off selection, route visualization, and driver-passenger coordination.
Trip History & Tracking
Developed modules for viewing past trips, ride details, and transaction history for both passengers and drivers.
Authentication & User Roles
Implemented secure authentication flows with role-based access, ensuring clear separation between passenger and driver functionalities.
Technical Highlights
Flutter-based dual application architecture for consistent UI across Passenger and Driver apps
BLoC state management for predictable and scalable handling of complex real-time flows
Real-time communication using APIs and event-driven updates for ride lifecycle management
Google Maps & location services integration for accurate geolocation and routing
Modular codebase shared logic where applicable between both applications
Optimized performance for handling frequent updates like offers and ride status changes
Key Decisions
I chose Flutter to build both Passenger and Driver applications because it allows maintaining a consistent experience across platforms while reducing development overhead with a shared codebase. Given the real-time nature of ride-hailing apps, performance and responsiveness were critical, and Flutter provided the necessary control over UI and rendering.
For state management, I used BLoC to handle complex asynchronous flows such as ride requests, multiple incoming offers, and real-time status updates. BLoC ensured clear separation between business logic and UI, making the system easier to scale and maintain as features grew.
A key architectural decision was designing the system around an event-driven backend. Instead of relying on static API calls, the apps react to real-time updates for offers, ride status, and driver-passenger interactions. This approach ensures both applications stay synchronized and provides a smooth, reliable user experience even under high interaction scenarios.