Requirements of Uber’s Design

Lesson 133 of 25610 min readPremium lesson preview
In this lesson2 sections

Requirements of Uber’s Design

Requirements

Let’s define the requirements for a ride-hailing system like Uber.

Functional requirements

Key functional requirements include:

  • Update driver location: Automatically track driver coordinates at regular intervals.

  • Find nearby drivers: Display available drivers in the rider's vicinity.

Matching policy: Compare estimated pickup time, availability, vehicle needs, and a documented fairness rule. Straight-line proximity alone does not determine the best assignment.

  • Request a ride: Accept a rider’s request, select an eligible driver, and offer the assignment with an acceptance deadline. Prevent conflicting confirmed assignments.

  • Manage payments: Handle payment processing at the start and end of the trip.

  • Show driver estimated time of arrival (ETA): Display the driver's arrival time to the rider.

  • Confirm pickup: Drivers confirm when they have picked up the rider.

  • Show trip updates: Provide real-time status (ETA, location) to both parties during the ride.

  • End the trip: Drivers mark the trip as complete to become available for the next ride.

  • Notifications: Push real-time updates (e.g., requests, arrival alerts) to relevant users.

The rest of this lesson is for Premium members

Premium opens every lesson in this course, along with all questions and solutions on PracHub.