Find Dining Design Document - abusel/Find-Dining GitHub Wiki

Find Dining App

Allows users to find a nearby restaurant that is currently open

Audience

This app will help users that are unfamiliar with restaurants in their current area, who want to quickly find and decide on a place to eat at that moment.

Experience

Users will open the app and find a single restaurant recommendation within their vicinity, as well as a few characteristics of said restaurant, upon which they can choose to go to the restaurant and be linked to a navigation app, or they can swipe and instantly see another restaurant option. The singularity of restaurant recommendations is the main reason users would use the Find Dining App instead of other restaurant apps such as Yelp as it will minimize user choices and thus expedite the process of finding and choosing a place to eat.

Technical

Models

  • Restaurant Struct: JSON Object
    • Main Image: UI Image
    • Title: String
    • Price Range: String
    • Rating: Double
    • Number of Reviews: Int
    • Address: [String]
    • Yelp Link: String
    • Yelp ID: String
  • Potential Restaurants Struct:
    • Possible Restaurants: Array of Restaurants with Restaurant Class
    • Total Restaurants (complying to API parameters): Int

Views

  • UICardView: subclass of UIView containing UILabels, UIImages, and UI Buttons

Controllers

  • UINavigationBar: made of UIButtons allowing users to interact with the app and navigate to the next restaurant before I implement the animations necessary to make this navigation bar unnecessary

Other

  • Array of restaurants (JSON Objects) in the vicinity received from a call to the Google Places API

Weekly Milestones

Week 4

  • implement working API call and selection of random restaurant from the array of restaurants
  • initial views and navigation through the UINavigation Bar

Week 5

  • implement animations for a cleaner user experience and recognize user interactions in order to navigate to the next restaurant object "card"

Week 6

  • polish and implement color scheme