NOTE: Website best viewed on desktop

Inspiration

Google Maps provides restaurants within a certain cuisine you want, but if you're looking for a specific dish, or if you have allergies, you don't know if a restaurant has the dish you want or not.

What it does

With this web app, you can select a certain dish and ingredients you want / allergens you don't, and you will be given a list of nearby restaurant that fit those parameters (with key information including company name, menu item name, location, key ingredients, price, price rating).

How we built it

Utilizing a data set provided by Goldman Sachs, we first filtered the data by removing what we wouldn't be using. Next, we sorted each menu item in taco/burrito, then we found the mean of menu item prices, defined the key ingredients from each menu description, and filled in empty values in the average price based on the location's zipcode. For finding the key ingredients, we utilized the spacey library find all nouns in each menu description, iterating on a dictionary to find the most common nouns for descriptions, and then checking each menu description again for occurences of these key ingredients. For filling the empty values int he average price based on the location's zipcode, we evaluated the mean household income based on each location's zipcode. From there we predicted the average price of the menu item based on zipcode if the average price was empty to begin with. Additionally, we gave a "price rating" based on the average between all of the mean household incomes divided by the price average. For the back-end, we used pandas to filter and select the top data based on the zip code, desired ingredients, and type of food. The app was deployed using GCP's App Engine. For the web app, we utilized the framework Flask for server requests and page rendering. The front-end utilizes HTML/CSS/JavaScript pages.

Challenges we ran into

We ran into challenges with cleaning the data, as each column presented different challenges. Reading through and selecting the nouns was difficult, and determine the best method to find price averages required many iterations of testing. For the back end we had to coordinate carefully with the web app to make sure all important metrics were given and most importantly, displayed properly. Formatting the web app required a lot of trial and error.

Accomplishments that we're proud of

We are very proud of our web app and the clean, easy to use interface it has. We are also proud of our method of filling empty price averages by using the zip code. We are confident in the cleaning we did to the data and our back end work that allows it to be utilized by the web app.

What we learned

We learned about coordination between 3 different jobs as we had to code for a piece of the puzzle that wasn't completed yet.

What's next for Fiesta Finder

We're hoping to reapply our results to different data sets and find a solution that can be redeployed rapidly and with more menu items / ingredients.

Share this project:

Updates