GoodEats is a food discovery iOS app that helps you discover new food near you and show off all the amazing food you’ve been eating! You can filter restaurants near you, see what’s popular or trendy at a restaurant, and you can even let the app decide what you should eat with a recommendation algorithm.
- Category: Social / Food & Drink
- Mobile: Mobile first experience available anywhere you go; uses camera to take pictures of your dishes and device location services to locate restaurants near you
- Story: Allows users to discover new places to eat, receive recommendations, and keep track food they've already tried
- Market: Anyone who enjoys eating out and trying new and popular food
- Habit: Everytime users are looking for somewhere to eat or are eating out somewhere, they can pull out this app. Also acts as a social media that users can explore through a "feed-like" view so see where their friends have been going
- Scope: Posting and viewing feeds
Required Must-have Stories
- User can register a new account
- User can log in
- User can check in to a restaurant
- Users can view a list of places their friends have checked in at in a map view with modally present table view
- Users can view all the dishes at a restaurant sorted by popularity
- Users can upload an image of what they ordered and rate the food
Optional Nice-to-have Stories
- Users can filter and sort the list of restarants by rating, distance, frequency of vists, etc.
- Users receive a recommendation of where to go based on their past orders
- Users can search for restaurants near them and select the correct one
- Users can select the dish name out of an autocompleted list of previous dishes people have posted at that restaurant
- [x ] Users can click to get directions to a restaurant
- Users can star restaurants and view them in a separate tab
- Users can receive a custom generated "food tour" of the day based on other users' recommendations and distances
- Users can receive recommendations periodically based on the types of food they generally enjoy as well as where friends who have similar tastes to them have enjoyed
- Login/Register
- User can register a new account
- User can log in
- Map View / Stream
- Users can view a map with pins showing restaurants near them as well as a modal table view of recent posts people have been creating with options to filter results or receive a recommendation
- Detail
- Users can click into and see more details about posts, dishes, and restaurants
- Profile
- User can see recent highlights about users, their posts, and saved restaurants
- Creation
- User can check in to a restaurant with the ability to attach a photo and search for and select the sppropriate restaurant and dish
Tab Navigation
- Map View
- Creation
- Profile
Flow Navigation
- Login / Signup
- -> Map View
- Map View
- -> Restaurant Detail
- -> Table View Stream
- -> Dish Detail
- -> Restaurant Detail
- -> Recommendation Settings
- -> Filter Settings
- Creation
- -> Restaurant Search
- -> Image Picker Screen
- -> Map View
- Profile
- -> Saved Dishes Stream
Digital Wireframes & Mockups
| Property | Type | Description |
|---|---|---|
| objectID | String | unique id for the user post (default field) |
| createdAt | DateTime | date when post is created (default field) |
| author | Pointer to User | author of post |
| image | File | image that user posts |
| caption | String | message or description the user has for this dish |
| rating | Number | number of stars for the meal |
| dish | Dish model | dish the user is posting about |
| tags | Array of Tags | tagged descriptions of meal |
| Property | Type | Description |
|---|---|---|
| objectID | String | unique id for the restaurant (default field) |
| name | String | name of the restaurant |
| dishes | Array of Dishes | all the dishes at this restaurant |
| latitude | Number | lattitude location of the restaurant |
| longitude | Number | longitude location of the restaurant |
| abrevLocation | String | City, State location of restaurant |
| numCheckIns | Number | total number of checkins that have been made at this restaurant |
| Property | Type | Description |
|---|---|---|
| objectID | String | unique id for the dish (default field) |
| name | String | name of the dish |
| restaurantName | String | name of the restaurant that sells this dish |
| restaurantId | String | object Id of the restaurant that sells this dish |
| avgRating | Number | average rating for this dish out of 5 |
| numCheckIns | Number | total number of checkins that have been made at this restaurant |
-
Login
- (GET) Query existing users with specified username + password
-
Sign up
- (GET) Query existing users to ensure there is no existing username with the specified username
- (POST) Create a new user with specified username + password
-
Map View
- (GET) Query all restaurants
- Filter View
- (GET) Query all restaurants with filter constraints
- (GET) subqueries on dishes and posts of dishes to relate tags to restaurants
- (GET) Query all restaurants with filter constraints
- Recommendation View
- (GET) Query all restaurants with contraints depending on user input and trends
- (GET) Query all posts to determine the dishes the user has or has not already tried
-
Modal Table View screen
- (GET) Query all posts with dishes at restaurants currently displayed on the map view
-
Dish detail screen
- (GET) Query all posts where dish field is the selected dish
-
Restaurant detail screen
- (GET) Query all posts where the restaurant field is the selected restaurant
-
Profile Screen
- (GET) Query logged in user object
- (PUT) Update user profile image
- (GET) Query all posts where author is the logged in user
-
Create Post Screen
- (POST) Create a new post object
- Business Search for businesses with specified term, location, and category




