Inspiration
Increasing inflation rates are the cause for even more financial pressure for students, on top of their many other financial needs. Grab and Go was created on the idea of helping students or families find the cheapest possible groceries nearby amongst the recent extreme rise of grocery prices.
What it does
Grab and Go uses user live location to identify the closest grocery stores nearby, and filters to display the grocery stores that the user can shop at. Using web scraping, the online store of these found grocery stores are analyzed, retrieving item name, item price, and weight. Our website takes in a grocery list as user input, then searches the scraped data for available items. Finally, we display available products, the total it would cost for each grocery store, and price comparisons between stores.
How we built it
Grab and Go is built on ReactJS, Flask, and Python. ReactJS takes care of our frontend display with uesr input promts, and also uses a Google JavaScript Maps API to display stores. In Python, selenium is used to scrape websites such as Loblaws and No Frills and feed this data into the backend. Flask allows user grocery list data from the frontend to the Python backend, when is then parsed with the web scraping data and calculated to display final results.
Challenges we ran into
Out initial web scraping library, scrapy, encountered multiple web blockage issues. Scrapy was not able to bypass the grocery websites' bot protection, which made scraping any website impossible. Additionally, displaying a Google JavaScript Maps API was challenging especially in finding the user's location. Connecting the frontend to backend using flask was also a challenge as this approach was unfamiliar with the team.
Accomplishments that we're proud of
In the end, we are super proud of bringing this project to life using a variety of tools new to us, and developing something that can actually be extremely beneficial to users and students like ourselves.
What we learned
Throughout this project we learned new libraries including Scrapy, Selenium, implementing a live Google Maps JavaScript API, using Flask to create a REST API, and creating requests.
What's next for Grab and Go
Next, we would love to make our website more accessible with more results such as value by weight, a more interactive user interface, or even making it into a mobile app.
Log in or sign up for Devpost to join the conversation.