Inspiration

We all have that one friend who posts dozens of pictures of mouth watering food from their travels to the city. You know, the foodie friend who's always wanting to try the newest, hottest food from several different places in just a single day! The amount of planning and time it takes to perfect these food runs is ridiculous! They have to account for which restaurants they're going to dine at, whether they're open, how far each location is from another, and even peak hours in order to make sure they're not wasting hours sitting just to get a small item from the menu. That's where Fudi comes in.

What it does

Fudi takes two locations, a starting and ending point, a price range, a minimum rating, and the number of stops that you would like to make during your trip. Fudi then generates a list of restaurants and diners that you should attend, leading you to your ending destination.

How it's build

Fudi runs off of a JavaScript-based front end, a Python server, and various API calls. The server handles making requests to Yelp's Fusion API in order to retrieve information about restaurants along your trip. JavaScript and jQuery work with the JSON data that Yelp provides in order to parse and filter restaurants that match your criteria. The front end provides Google Maps links that point to each restaurant so you can see where they are along your route.

Challenges

Our biggest challenge was implementing the server/back-end side of the project. Yelp's API required us to make the requests from a server, pushing us to implement a back-end instead of keeping it all front-end. We also had a lot of issues sorting and picking restaurants from what Yelp provided us. There were numerous parameters that we had to keep track of: rating, number of stops, and distance. Rating would be a simple filter as we could just remove restaurants that were below our minimum rating threshold. The number of stops and number of stops posed a greater issue; we had to make sure we weren't making you go back and forth along your trip. Just because there's a 5 star restaurant close to your destination doesn't mean you want to go there first! Fudi groups the restaurants into distance categories and would pick the highest rating restaurant out of each category for you to visit. If multiple places had the same score, then whichever had more reviews would be chosen.

Accomplishments that we're proud of

Even though Fudi isn't all of what we had envisioned, we're proud that we were able to implement it's core feature in the amount of time we had.

What we learned

We learned that Fudi requires a strong infrastructure to stand upon in order to properly function. Currently, a lot of the work is done on the client side of the program, when a lot of the workload should be placed on the server to prevent potential hanging on the client's side. We also learned that the thought process of foodies who meticulously plan out their routes is a lot more intricate than we expected it to be. They account for peak hours, closing times, other landmarks they'd like to see, and routes that lead them to a restaurant/place that's on the way to their destination.

What's next for Fudi

Ideally, we want Fudi to be able to account for all the different parameters that crazy foodies do when they plan their food runs. Additionally, Fudi should be able to filter out restaurants based on their categories. Our hope is that Fudi could potentially use machine learning, or some advanced mathematics at the least, in order to generate these routes and cater to the user's wants and needs as a foodie.

Share this project:

Updates