---
# System prepended metadata

title: Original App Design Project - README Template

---

Original App Design Project - README Template
===

# RestaurantRNG

## Table of Contents
1. [Overview](#Overview)
1. [Product Spec](#Product-Spec)
1. [Wireframes](#Wireframes)
2. [Schema](#Schema)

## Overview
### Description
RestaurantRNG is designed to remove the stress involved when deciding what to eat. No longer will users have to spend hours deciding where their next meal will come from.  Just press a button and RestaurantRNG will tell you what restaurant to feast at.

### App Evaluation
[Evaluation of your app across the following attributes]
- **Category:** Dining/Restauraunt Application
- **Mobile:** This app would be primarily developed for mobile but would perhaps be just as viable on a computer, such as tinder or other similar apps. Functionality wouldn't be limited to mobile devices, however mobile version could potentially have more features.
- **Story:** Obtains the user location and displays **N** amount of restaurant available within the selected distance radius and rating.
- **Market:** Target indecisive people who have trouble being able to pick a place to eat.
- **Habit:** This app can be used anytime the user needs help deciding where to enjoy their next meal.
- **Scope:** First we will target a single user experience, displaying non-persistent restaurant options.  The application could evolve to include user authentication and profile to store dining preferences, favorited restaurants and history of visited restaurants.  Furthermore, the applicaiton can also be used by the single user to share the selected restaurant.

## Product Spec

### 1. User Stories (Required and Optional)

**Required Must-have Stories**

* As the user, I should be able to see my location on a map.
* As the user, I should be able to see nearby restaurants that meet some criteria I set.
* As the user, I should be able to have a random restaurant selected for me.
* As the user, I should be able to view the details of the restaurant selected.
* As the user, I should be able to see the price in terms of dollar signs of the restaurant.
* As the user, I want to be able to reroll the restaurant that was selected.
* As the user, I want to be able to navigate between the restaurant details and the map.
* As the user, I want to be able to share the restaurant that was selected.

**Optional Nice-to-have Stories**

* As the user, I should be able to create a user account.
* As the user, I can login and logout of my account.
* As the user, I can narrow the random restaurant generator to only specify a type of food I wish to select.
* As the user, I can manage my favorite restaurants.
* As the user, I can choose randomly from my favorite restaurants.
* As the user, I should have a graphic representation of RNG selection of restaurants(wheel, dice...).

### 2. Screen Archetypes

**Required Screens**

* Restaurant Map Screen (When the user loads the application it will show the map containing the restaurants nearby. This screen contains the button for generating random restaurants.)
   * As the user, I should be able to see my location on the map.
   * As the user, I should be able to see nearby restaurants.
   * As the user, I should be able to have the application choose a random nearby restaurant for my next meal.
   * As the user, I want to be able to reroll the restaurant that was selected.
* Restaurant Detail Screen (Tapping the restaurant annotation sends the user over to the restaurant detail screen. This screen contains the information for the restaurant and the option to accept and reroll for a new restaurant.)
   * As the user, I should be able to view the details of the restaurant I selected.
   * As the user, I want to be able to go back to the map view.
   * As the user, I want to be able to share the restaurant that was picked.

**Optional Nice-to-have Screens**

* User Profile Screen (When the user loads the application, this screen will allow actions to sign-up, log-in, or log-out as appropriate.)
   * As the user, I should be able to create a user account.
   * As the user, I can login and logout of my account.
* User Preferences Screen (When the user is logged in, this screen will offer various preferences that will persist between sessions.)
   * As the user, I can narrow the random restaurant generator to only specify a type of food I wish to select.
   * As the user, I can choose to have the application randomly select only from my favorited restaurants.
   * As the user, I can manage my favorite restaurants.

### 3. Navigation

**Flow Navigation** (Screen to Screen)

**Required Navigation**
* Restaurant Map Screen
    => Restaurant Detail Screen
* Restaurant Detail Screen
    => Restaurant Map Screen

**Optional Nice-to-have Navigation**
* Restaurant Map Screen
    => User Profile Screen
* Restaurant Map Screen
    => User Preferences Screen 
* User Profile Screen
    => Restaurant Map Screen 
* User Preferences Screen
    => Restaurant Map Screen

## Wireframes
[Add picture of your hand sketched wireframes in this section]
<img src="YOUR_WIREFRAME_IMAGE_URL" width=600>

### [BONUS] Digital Wireframes & Mockups

### [BONUS] Interactive Prototype

## Schema 
[This section will be completed in Unit 9]
### Models
[Users, Restauraunts, Favorited/Liked, Types of food]
### Networking
- [Add list of network requests by screen ]
- [Create basic snippets for each Parse network request]
- [OPTIONAL: List endpoints if using existing API such as Yelp]