Why Yelp or Proximity Server?
Proximity servers are used to discover nearby attractions like places, events, etc. If you haven’t used yelp.com before, please try it before proceeding (you can search for nearby restaurants, theaters, etc.) and spend some time understanding different options that the website offers. This will help you a lot in understanding this chapter better.
Requirements and Goals of the System
What do we wish to achieve from a Yelp like service? Our service will be storing information about different places so that users can perform a search on them. Upon querying, our service will return a list of places around the user.
Our Yelp-like service should meet the following requirements:
Functional Requirements:
- Users should be able to add/delete/update places;
- Given their location (longitude/latitude), users should be able to find all nearby places within a given radius;
- Users should be able to add feedback/review about a place. The feedback can have pictures, text, and a rating;
Non-Functional Requirements:
- Users should have a real-time search experience with minimum latency;
- Our service should support a heavy search load. There will be a lot of search requests compared to adding a new place;