Inspiration

Our inspiration for this project came from wanting to see more functionalities and features on the common food delivering and ordering apps.

What it does

StreetEats is a website that allows users to access local restaurants based on their location. Users can register, login, and customize lists of restaurants. Lists of restaurants are unique to each user to customize a title for their list and add/remove restaurants in each of their lists. Website Link:(https://street-eats.tech/)

Main Features and Implementation

Registration and Login Registration and login information is stored in a postgreSQL database to allow each user to have unique lists and account information.

Restaurant Lists Users are able to create new lists of restaurants to connect to their user profile, and add/remove as many restaurants to any of their lists. The information for restaurants is pulled from the YelpFusion API and stored into a database, Restaurants. The title for the list of restaurants can then be added/removed in a user's restaurant list, which connects the User database and Lists database. The Restaurants database the interacts with our Lists database, which is connected to a User database. These databases are postgreSQL databases.

Challenges we ran into

Understanding how to connect our 3 APIs and our multiple databases was a challenge. We decided to divide API and database-related tasks to assign to each team member. We had to stay organized and in communication to piece together our 3 APIs and our databases. We researched PostgreSQL and API get/post requests in our assigned sections, and asked for help as needed.

Accomplishments that we're proud of

We've implemented the following features that we think make it better:

Monitoring

This project is being monitored through a combination of the tools

  • cAdvisor (Port 8080)
  • Prometheus (Port 9090)
  • Grafana(Port 3000)

CI/CD

Both CI and CD workflows are automated.

Testing

A linter check over the code occurs when someone makes a pull request to ensure optimal execution at all points.

What we learned

We learned how to work with different technologies and good coding practices

Technologies Used

  • Nginx as a reverse proxy
  • Docker as a containerizing service
  • HTML and CSS for the design of pages
  • Flask and Python
  • PostgreSQL Databases
  • Docker
  • Prometheus
  • Grafana

APIs:

  • YelpFusion API
  • IP address API
  • IP to coordinates API

What's next for StreetEats

Future work includes adding a feature allowing the users to add friends and being recommended cuisines based on previous selection.

Built With

Share this project:

Updates