Inspiration

Grocery prices have recently been high. As wages are stagnating, it is becoming more pressing for people to save money in every way possible. While shopping we had this thought: instead of manually having to search each website or try out each store, why can't we make an application that can find the best price match for you?

What it does

Given items and your browser location, it searches for the item and web scrapes directly from the grocer website, finding the cheapest variety that the grocer has to offer. It will then display it, in a streamlined and user friendly way, the cheapest option available from the searched stores and displays what store it is located at, as well as the price per pound.

How we built it

We built and structured our website using Node.js and NEXT. We then hosted it using a .tech domain. Making the UI for the website was pretty simple, the hard part was getting the information from the grocer's websites. We originally tired to implement their APIs and use it to search for the given item and pull the name, image, and price. This idea was working for a while until we came across a wall, saying our API keys have ran out of uses. Since we couldn't use the API's, we decided to build our web scraper to get the information from the website. We use playwright, which is originally for end-to-end tests, to scrape the websites by going through their HTML code, looking for keywords that leads to the information. Once that information is acquired, we display it using a card structure component that neatly displays the information in rectangular cards.

Challenges we ran into

Integration with and applying third party APIs, using Google Cloud storage, computing, and/or hosting possibilities (too complex), keeping our expectations and scope limited to what is feasible for us to accomplish within the given time frame considering our limited experience.

Accomplishments that we're proud of

Hand-built web scraper, beautiful UI and front-end work, getting the website to fully run and function well.

What we learned

Since this is our first Hack, it was a massive learning curve of what we can and can't do. We found that in the beginning we were quite ambitious given our know how, skill level, and time constraints. However, after a quick rendezvous, we came together and re-assessed our ambitions and hit the ground running. We also learned that research is paramount and adequate time is necessary to ensure a project's success.

What's next for Grocery Guru

The plan for Grocery Guru will be the addition of customizable settings that allow the user to dictate the stores they wish to shop and which stores are around as well as finding a price range for the items. We also plan to add list compatibility so Guru can take in a list and compare the end total prices of the entire list to find the cheapest!

Share this project:

Updates