←Back to Projects

Uber-Ride Platform

A console-based C++ simulation of a ride-hailing platform featuring A* route finding, top-k driver matching, a vehicle factory, and swappable pricing strategies.

Role: Backend Developer
Duration: 15 Jul - 30 Jul 2026

Tech Stack

c-plus-plus iconC++
oop iconOOP
design-patterns iconDesign Patterns

Introduction

Uber-Ride Platform is a console-based C++ simulation of a ride-hailing platform. It demonstrates core object-oriented design patterns and algorithms used in real-world ride-booking systems, including city graph modeling, A* route finding, nearest-driver matching, a vehicle factory, and swappable pricing strategies.

Key Features

  • City Graph Modeling: Locations and roads are modeled as a graph for realistic routing.
  • A Shortest-Route Search*: Computes efficient routes between pickup and destination points.
  • Top-k Nearest Driver Matching: Finds the closest available drivers by vehicle type.
  • Vehicle Factory: Dynamically creates Bike, Auto, Sedan, and SUV vehicles.
  • Swappable Pricing Strategies: Supports Normal, Surge, and Pool pricing via the Strategy pattern.
  • Full Ride Lifecycle: Handles request, driver assignment, start, mid-ride stop addition, completion, and cancellation.
  • Console Notifications & Receipts: Simulates rider/driver notifications and prints trip receipts.
  • Demo Flow: src/Main.cpp includes a runnable demo with Delhi NCR sample locations.

Technical Insights

  • Language: C++11 using only the standard library.
  • Dependencies: No third-party libraries required.
  • Build System: Compiled manually with g++.
  • Design Patterns: Strategy (pricing), Factory (vehicles), and object-oriented domain modeling.
  • Algorithms: A* search for routing and top-k selection for driver matching.
  • Data Structures: Graph adjacency list for city locations and roads.

Run it locally

# Compile the simulation
g++ -std=c++11 src/Main.cpp -o uber

# Run the simulation
./uber

Source Code

View the full implementation on GitHub: rahim709/uberProject.