CabPool — Dual-Role Ride Sharing with Route Optimization
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
Key Results
Features Delivered
Have a Similar Project?
We can discuss how our experience applies to your specific requirements.
Contact Us →