CabPool — Dual-Role Ride Sharing with Route Optimization

Transportation CabPool (Internal Product) 4 months 6 engineers

The Challenge

Unlike traditional ride-hailing apps with separate driver and passenger apps, CabPool allows any user to switch between driving and riding within the same application. This dual-role model requires real-time matching algorithms that consider both route overlap and schedule compatibility, along with a fare calculation engine that handles pooled ride splitting.

Our Approach

We built the app in Flutter with Google Maps SDK for route rendering, geocoding, and ETA calculation. The matching algorithm runs on the Node.js backend, comparing ride requests against available drivers using geospatial queries (MongoDB 2dsphere indexes) and route overlap scoring. Fare calculation accounts for distance, time, vehicle type, and pool occupancy with transparent breakdowns shown to all participants. Firebase Cloud Messaging handles real-time notifications for ride matches, and in-app chat uses Firebase Realtime Database for driver-passenger communication.

Tech Stack

Flutter Node.js MongoDB Google Maps API Firebase

Key Results

Dual-role switching with zero app reinstallation or separate accounts
Route matching algorithm processing requests in under 2 seconds
Fare splitting engine with transparent per-rider cost breakdowns
Real-time ride tracking with ETA updates every 10 seconds

Features Delivered

Dual Driver/Passenger Mode
Smart Route Matching
Fare Splitting Engine
In-app Chat & Calling

Have a Similar Project?

We can discuss how our experience applies to your specific requirements.

Contact Us

Choose Theme

Select a visual style