0% found this document useful (0 votes)
4 views3 pages

Nearby App (3)

The document outlines the requirements for a Nearby App that helps users find venues based on their location. Key features include fetching venue data from an API, local caching, distance filtering, and a user-friendly interface. The app should be built with a focus on code quality, modularity, and extensibility, while supporting only portrait mode and offering a local search option for venues.

Uploaded by

umesh.k120690
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views3 pages

Nearby App (3)

The document outlines the requirements for a Nearby App that helps users find venues based on their location. Key features include fetching venue data from an API, local caching, distance filtering, and a user-friendly interface. The app should be built with a focus on code quality, modularity, and extensibility, while supporting only portrait mode and offering a local search option for venues.

Uploaded by

umesh.k120690
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Nearby App

Imagine you are at a new place and have some time there and don’t exactly know how you can
spend the next few hours, we want to build an app that helps us solve this.
An app that takes user location, distance from current location and gives out a list of venues
he/she can visit and buy tickets around that location.

Requirements:
● Get list of venues from this api
● We fetch only 10 venues at once from API and paginate when the user scrolls further.
● Users are able to filter venues by distance using the slider as shown in the UI.
● Local caching - venues fetched during the last session (irrespective of location and
preference changes) are shown before a network call for the current session is
successful.
● The app should support portrait mode only.

Good to have
● Searching the venues based on the name of the venue. (local search)

Expectations:

Code style & modularity - 60 points


We would like your code to be as close to production quality as possible. Imagine that this App
will be used by Millions of users and you are part of the team which builds it. You can use
architectural patterns like MVVM or MVP – anything other than MVC. The classes should be
well segregated as views, models. Please don’t write everything in a single class. You can use
appropriate external libraries for building the app

Extensibility and Abstraction - 20 points


If a new requirement comes up, how easy is it to modify the code? How many places would you
have to touch in order to achieve the results? Fancy UI or animation is not expected. The image
shown is only for reference; not a design specification.

Functionality expected - 20 points


- On app launch users should see a list of nearby venues.
- If the app is being installed for the first time and there is no data cached then show a
loader till the time data is being fetched.
- Venue will contain name, city, address and clicking on item will open link to tickets
- Users should be able to filter venues based on distance using a range slider.
Api information:
Please use the following api to fetch data over the network.
$ curl
'https://api.seatgeek.com/2/venues?cleint_id=<client_id>&per_page=<it
ems per page>&page=<page number>&lat=<latitude>&lon=<longitude>'

Arguments to be passed
● cleint_id = `Mzg0OTc0Njl8MTcwMDgxMTg5NC44MDk2NjY5`
● per_page = Number of items to be fetched per page
● page = Page number
● lat and lon = User’s current Latitude and Longitude.
● range = Filter to search venues based on distance. Unit is in miles. So if you need to filter
venues within 12 miles then the value will be `12mi`.
● q = argument can be used to filter venues based on name.

Example:
curl --location --request GET
'https://api.seatgeek.com/2/venues?per_page=10&page=1&client_id=Mzg0O
Tc0Njl8MTcwMDgxMTg5NC44MDk2NjY5&lat=12.971599&lon=77.594566&range=12m
i&q=ub'
Sample Mock

You might also like