-
Notifications
You must be signed in to change notification settings - Fork 0
App Dev Plan
Note: The application is under development and the following document is only for reference. Many features are yet to be added.
This document will provide a quick walk-through of the Lunchtime iOS app development plan. The application will allow members of company group to login using their enterprise credentials and get a list of popular restaurants nearby.
The app will have the following features:
- Display the nearest 50 restaurants to company's office using the Foursquare API.
- Ability to read/write reviews (reviews should be stored locally) for a visited restaurant. Upon adding a review, the review should always appear if the same restaurant is selected for dining in future.
- Ability to thumbs-down a restaurant such that it is never considered as an option for dining.
The application will be developed using Xcode IDE and swift programming language. Since the complexity level is medium, Model View Controller Design pattern will be used for implementation.
- Alamofire - API integration and session management
- Realm - For persistence storage (object oriented and quicker to implement than Core Data)
All user provided data such as reviews and thumbs down votes need to be stored locally by using a model object which follows Realm protocols.
Following is a set of activities as per the application flow:
- Login
- Get list of 50 restaurants near the company office
- Select one of the restaurants
- Write or edit restaurant review
- Dislike a restaurant
Please refer to document Mockups which contains a list of screens to be developed along with the basic user interface elements.
Following is a list of models that need to be stored using Realm: RestaurantModel Name Address Coordinates IsLiked IsDisliked UserReview
When user dislikes a restaurant, the realm object should get marked with value true for IsDisliked. When user goes back to search restaurant screen, the service response needs to be filtered before displaying to user and thus disliked restaurant needs to be removed.
Login service as per company SSO implementation. https://api.foursquare.com/v2/venues/explore Returns a list of recommended venues near the current location.
This endpoint is part of the venues API. HTTP Method GET
Parameters ll 44.3,37.2 Latitude and longitude of company office.
limit 50 Number of results to return.
section food Choosing a section results to venues with the specified category or property.
Reference: https://developer.foursquare.com/docs/venues/explore
Can also call https://api.foursquare.com/v2/venues/VENUE_ID/dislike to dislike a restaurant if foursquare login is to be implemented.