Build a Restaurant Discovery & Review App in 20 days with AWS Amplify

Build a Restaurant Discovery & Review App in 20 days with AWS Amplify

·

4 min read

As part of the #AmplifyHashnode hackathon, I’ll be building out a restaurant discovery/review app. Now because I only have 20 days and a full time job, these posts will be considered rough drafts that I will fine tune at a later date.

Disclaimer: I spent 2 years building something similar and worked in restaurants damn near my whole life. At the time I barely knew any of the software, except React-Native, including AWS Amplify and it's large ecosystem. I’m gonna try and recreate a portion of that app in a fraction of the time with the power of AWS Amplify.
 I'm also a part of the AWS Community Builders program, specializing in Web and Mobile developemnt

There’s lots of possibilities I’m considering for MVP but they’re pretty lofty and there’s a good chance I won’t get to them all. That said, I think it’s important to share the considerations I had from the beginning so that you can see how much things change as you start to build. 

Here’s a brain dump of thoughts that go into building this type of app. 



Considerations:

  1. Data Types (Data Access Patterns to come) with DynamoDB

    1. User
    2. Restaurant/Location/Establishment
    3. User Feedback for restaurant
    4. Follow/Like restaurants
    5. Follow other users
    6. Checkin
    7. Menus
    
  2. Sourcing Restaurant menus and details (Google or User sourced?)

  3. QR codes at restaurants for menus and checkin
  4. Storing photos in S3
  5. Setting up ElasticSearch for location
  6. React-Native for Web consideration
  7. Authentication with Cognito
  8. Location Awareness
  9. Take advantage of Expo



Steps to building app:

  1. Create App with Expo
  2. Initialize App with Amplify
    1. Set up Authorization (Discuss initial setup and attributes with cognito and gotchas)
    2. Set up GraphQL Schema
      1. Walk through data types
      2. Walk through data access patterns
      3. Discuss Auth directives
      4. Discuss @key and GSI’s
      5. @Searchable
  3. Add location awareness
  4. Decide on Restaurant data sourcing solutions
    1. Have restaurants populate data
    2. Use google / foursquare api
    3. Have Users add menus
  5. Add user ability to search/discover restaurants
  6. Add Checkin to restaurant based on proximity
  7. Add Feedback Screen with photo and text input
  8. Add history of checkins/reviews
  9. Add create user flow after checkin
  10. UI Screens to Consider
    1. List View of Restaurants
    2. Map View of Restaurants
    3. Search View of Restaurants
    4. Detail View of Restaurant
    5. Potential Menu View
    6. Review Screen
    7. History Screen
    8. Liked/Followed Restaurants screen
    9. User Profile

I'll be diving into a lot of these topics listed in the steps above, sharing the behind the scenes thinking as I go via posts and tweets.

Follow my the journey here and at twitter.com/andthensumm.