Inspiration
Grocery prices in Canada vary a lot between stores, and many people don’t know where the cheapest option is without checking multiple flyers. We wanted to build a tool that instantly shows the lowest price nearby so shoppers can save money and easily price match at stores like No Frills, Walmart, and Superstore.
What it does
CartSniper lets users search for a grocery product, scan a barcode, or take a photo of an item. The app then finds nearby grocery stores based on the user’s postal code and shows the cheapest price available from weekly flyers. Users can also open the exact flyer page where the product appears, making it easy to price match or decide which store to visit.
How we built it
We built CartSniper as a full-stack web app. The frontend provides a clean UI for searching products and viewing nearby deals. The backend collects flyer and store data, processes product matches, and returns the cheapest results. We also implemented flyer scraping and location search using postal codes to identify nearby grocery stores.
Challenges we ran into
One of the biggest challenges was reliably extracting product data and images from weekly flyers. Many flyer sites load images dynamically, which made scraping and displaying the correct images difficult. We also had to solve product matching problems because the same item can appear with slightly different names across different stores.
Accomplishments that we're proud of
We’re proud that CartSniper can take a simple product search and quickly show the cheapest option nearby. The flyer viewer that highlights the exact product in the store flyer was a feature we’re especially happy with because it makes price matching much easier for users.
What we learned
We learned a lot about web scraping, working with real-world messy data, and building systems that match products across multiple sources. We also improved our full-stack development skills while designing a tool that solves a real everyday problem.
What's next for Cart Sniper
Next, we want to improve the accuracy of product matching, add barcode scanning and photo recognition, and expand support for more stores. We also plan to add user accounts, shopping lists, and price alerts so users can track deals and save even more on groceries.
Built With
- expo-barcode-scanner
- expo.io
- express.js
- generative-ai
- node.js
- postgresql
- react-native
- react-navigation
- typescript
Log in or sign up for Devpost to join the conversation.