...

/

Introduction to Yelp [backup]

Introduction to Yelp [backup]

Understand the requirements for a proximity service like Yelp.

What is Yelp?

Yelp provides a one-stop platform for consumers to discover, connect, and transact with local businesses. Users can join a waitlist, make a reservation, schedule an appointment, or purchase easily. It also provides information, photos, and reviews about local businesses.

The user provides the name of a place or GPS location, and the system finds nearby restaurants, cinemas, tourism spots, etc. The user can also upload their opinions in the form of text, pictures, or ratings for a place they visited. Other location-based services include Foursquare and Google NearBy.

Services based on proximity servers are helpful in finding nearby attractions such as restaurants, theatres, or recreational areas. Designing such a system is challenging as we have to efficiently find all the possible places in a given radius with minimum latency. It means we have to narrow down all locations in the world (which could be in billions) and find the relevant ones only.

Requirements

Let’s identify the requirements of our system.

Functional requirements

The functional requirements of our systems are:

  • User account: Users will have their accounts where they will be able to perform different functionalities like login in/out, add, delete, and update places.

    There can be two types of users; one is the business owners who add their place and the other can search, view, and add a rating about a place.

  • Search: The users should be able to search the nearby places or place of interest on the basis of their GPS location (longitude, latitude) and/or place name.

  • Feedback: The users should be able to add a review about a place. The review can have images, text, and a rating.

Non-functional requirements

The non-functional requirements of our systems are:

  • High Availability: The system should be highly available to the users.

  • Scalability: The system should be able to scale up and down depending upon the number of requests. The number of requests can vary depending on time and days. For example, search requests at lunchtime are more as compared to midnight. Similarly, in the season of tourism, our system will receive more requests as compared to other months of the year.

  • Consistency: The system should be consistent for the users. All the users should have a consistent view of the data about places, reviews, and images.

  • Performance: Upon searching, the system should respond with suggestions with minimal latency.

Estimation

Let’s assume that we have:

  • Total of 178 Million unique users
  • 60 Million daily active users
  • 500 Million places

Servers

We need ...

Create a free account to access the full course.

By signing up, you agree to Educative's Terms of Service and Privacy Policy