Skip to content

kellyycha/EatsNearMe

Repository files navigation

Original App Design Project - README

Demo Video: https://www.youtube.com/watch?v=-5nWFDj_86g

Eats Near Me

Table of Contents

  1. Overview
  2. Product Spec
  3. Wireframes
  4. Schema

Overview

Description

This app will help you decide on the best places to eat, to make the most out of your spontaneous trips. If you have downtime in a random city and want to visit a good restaurant that is also nearby, it can be hard to research and choose the best one right then and there. So, using a dating app style for restaurants, you can quickly see some pictures and basic information of each restaurant to determine if it will be the right fit for you. If you want to find places to visit in advance, you can also set your location to other areas to see whats around there.

App Evaluation

  • Category: Food, Planning
  • Mobile: This app would be primarily developed for mobile due to its spontaneous nature. But would perhaps be just as viable on a computer, especially if I add more features regarding planning. Functionality wouldn't be limited to mobile devices, however mobile version could potentially have more features, such as the push notifications.
  • Story: Retrieves data for restaurants around the area for the user to decide where to eat.
  • Market: Any individual could choose to use this app.
  • Habit: This app could be used as often or unoften as the user wanted depending on if they are visiting new cities or want to go out with friends and find places to eat.
  • Scope: First we would start with spontaneous decisions and recommendations, then perhaps this could evolve into a foodie tour planning app with a map of saved locations, reminders to make reservations, and saving into custom folders. In adition, this could also become a restaurant recommendation sharing app amongst friends and popular food bloggers.

Product Spec

1. User Stories (Required and Optional)

Required Must-have Stories (more focused on spontaneous)

  • Users can log in
  • Use current location and default radius or set a location and radius
    • Filter search: Let the users select prices, open now
  • Tinder-style swiping animation (use external library for visual polish requirement)
    • Select yes or no for each restaurant
    • Yes and No animations
  • Detail view of restaurants with info about the restaurant and map view
    • Animate transition between fragments (animation requirement)
  • All the yes's go into saved tab
    • Click on the restaurant in saved tab to open details view using parcelable
    • Swipe to delete from the list (gesture requirement)
  • Able to plan out a path to your destination to only show places along the way
    • Optimize the search query to load restaurants along the path when the current list is exhausted so too many restaurants are not queried at once
  • Use the Model–View–ViewModel architectural pattern to organize the code
  • Use state flows to update the UI when the data changes
  • Use retrofit for API calls

Optional Nice-to-have Stories

  • Show directions to restaurant
  • More filtering: rating, number of reviews
  • Share yelp link of restaurant in details view by copying to clipboard to send
  • Add an overall map view to your saved restaurants
    • Click the markers to get information for each restaurant
    • Able to filter map by category
  • Sort saved restaurants in folders by location
  • Use data from what the user liked to recommend a restaurant near you using push notifications
  • Settings where you can change your username, password, email

Complex Features + ideas to execute them

  1. Set a destination from your current location to find restaurants along the way
    • Use Google Maps API
    • Find a path to get to your destination and set multiple small radii along those lines and show restaurants within those radii
  2. Optimize the search query
    • Only add query additional restuarants along the path as the user exhausts the list instead of querying everything along the path

2. Screen Archetypes

  • Log In
    • Users can log in
  • Restaurants Screen
    • Card view of restaurants to swipe through
    • Can set radius, location, type of food
  • Restaurants Detail view
    • All info on resaurant
  • Filters
    • Categorize searches
  • Saved
    • All restaurants saved
  • Profile/Settings

3. Navigation

Tab Navigation (Tab to Screen)

  • Restaurants
  • Saved
  • Profile/Settings

Flow Navigation (Screen to Screen)

  • Log in screen
  • Details screen
    • Click on restaurant card
  • Filters screen
  • Location folder contents
  • Map color coordination button

Wireframes

Screen Shot 2022-06-16 at 10 34 02 AM Screen Shot 2022-06-16 at 10 34 21 AM Screen Shot 2022-06-16 at 10 34 29 AM Screen Shot 2022-06-16 at 10 34 34 AM Screen Shot 2022-06-16 at 10 34 38 AM Screen Shot 2022-06-16 at 10 34 45 AM

Schema

Models

Restaurant Details

Property Type Description
restaurantId String Unique ID for restaurant
restaurantName String Name of Restaurant
rating Number Yelp rating of restaurant
priceRange String Dollar sign range
category String Type of food
restaurantTimes String Times reataurant is open
menu File Restaurant menu
image File Pictures of food
reviews String Reviews of restaurant
restaurantAddress String Address of Restaurant
phoneNumber Number Phone number of restaurant
website String Website of restaurant

User Details

Property Type Description
user Pointer User of the app
location String User location or address

Networking

List of network requests by screen

  • Restaurants Screen
    • (Read/GET) Get restaurant data from Yelp to display
    • (Create/POST) Save the restaurant
    • (Delete) Reject the restaurant
  • Saved Restaurants Screen
    • (Read/GET) Query all the restaurants that user has saved
  • Profile Screen (Read/GET) Query logged in user object

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages