Skip to content

Replicates the future-deciding 8 Ball by finding a nearby restaurant for you

Notifications You must be signed in to change notification settings

hangry-ateball/hangry-ateball-be

Repository files navigation

Build Status Coverage Status

Hangry-Ateball-BE


You are on your lunch break. You've already eaten Chipotle 3 times this week. You and your group of friends decide that it's time to change it up. Everyone is "down for anything" but nobody can make a concrete decision. That's when you whip out your phone and open up Hangry Ateball.

This repo is for a REST API that consumes the Yelp and Google Maps API. It serves to return Restaurant information as a JSON object for our Front End application, where the restaurant information can be displayed to the User.

Hangry Ateball replicates the future-deciding 8 Ball by finding a nearby restaurant for you! You can decide what kind of food (or leave it up to fate) as well as cost and if you want to walk or drive and the app will do the rest for you. From the results screen, you can easily open maps to navigate to the restaurant or send the information to your friends via text with the click of a button. It's munch time. Where will you be?

Contributors:

Tech Stack

Available Endpoints (also available on Swagger):

  • Endpoint /api/v1/recommendations
    • Returns restaurant recommendation based on user's preferences
    • Required params:
      • Note: If latitude and longitude are not available, address can be entered instead.
      • latitude, integer, i.e. 39.7392358
      • longitude, integer, i.e. -104.990251
    • Optional params:
      • categories, string (can be a comma delimited list), i.e. Chinese
      • price, maximum price point, integer between 1 and 4, i.e. 3 (will also search for restaurants with price point of 2 and 1)
      • address, use only if latitude and longitude not submitted, string, i.e. 1331 17th St LL100, Denver, CO or Denver, CO
    • Response Example: homepage screenshot
  • Endpoint /api/v1/random
    • Returns random restaurant recommendation
    • Required params:
      • latitude, integer, i.e. 39.7392358
      • longitude, integer, i.e. -104.990251
    • Optional params:
      • address, use only if latitude and longitude not submitted, string, i.e. 1331 17th St LL100, Denver, CO or Denver, CO
    • Response Example: homepage screenshot
  • Endpoint /api/v1/notify
    • Sends an SMS invitation to join a friend at a specified location.
    • Required params:
      • to, an SMS-enabled phone number to receive a notification, integer, i.e. 3031234567
      • from, a Twilio SMS-enabled phone number from which to send a notification,integer
      • body, provide an establishment name and address to be appended to the SMS notifcation, string

Learning Goals:

  • Ultimately, demonstrate knowledge we have gained throughout Turing.
  • Learn and implement a new language: Python.
  • Learn and implement a new testing environment: Pytest.
  • Work closely with a front-end team to create a synchronous application.
  • Use an agile process to turn well defined requirements into deployed and production ready software.
  • Gain experience dividing applications into components and domains of responsibilities to facilitate multi-developer teams.
  • Explore and implement new concepts, patterns, or libraries that have not been explicitly taught while at Turing.
  • Practice an advanced, professional git workflow.
  • Gain more experience using continuous integration tools to build and automate the deployment of features in various environments.
  • Build applications that execute in development, test, CI, and production environments.
  • Focus on communication between front-end and back-end teams in order to complete and deploy features that have been outlined by the project spec.

Wins:

  • Achieved MVP with extensions before deadline.
  • Successful workflow and communication between FE and BE teams.
  • We made an app we would actually use!
  • Great testing coverage for backend.

homepage screenshot

Challenges

  • Learning Python and Flask.
  • Using new testing framework, Pytest and other new technologies/tools like Twilio, and Swagger.
  • COVID-19 impacts including remote work and affecting live restaurant data.

Hangry Ateball Application Screenshots

Homepage:

homepage screenshot

Form:

homepage screenshot

Result:

homepage screenshot

About

Replicates the future-deciding 8 Ball by finding a nearby restaurant for you

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •