Grocery shopping has gotten to the point where it so painful to try and get your groceries people are opting to pay steep premiums to have other people shop for them, or to have prepackaged meal sent to their door just to avoid the grocery store.

What it does

To combat this we created a website that maps your grocery store to navigate you through the grocery store to speed up shopping. We also created a recommender system using machine learning to intelligently recommend additional items to customers to purchase based on what is in their cart to get them to buy even more items than what is possible from wandering the store.

How we built it

Using NCR's API and data from Loblaws Digital we were able to create a database of the locations of grocery items in one of their stores in Richmond Hill. We also created an API of our own that when you send it a shopping_list array of items, it will return a json containing the path to walk, the map as a list of lists and the additional recommended items. Data for the recommender system was obtained from an Instacart dataset of their customers orders.

Challenges we ran into

Connecting the data from the Loblaws dataset and the Instacart dataset was a challenge as they used different category names, however the Instacart dataset separated the dataset into 21 different departments so these were manually connected with the closest aisle in the store, and then the item's specific location in the aisle was chosen randomly. Getting the website to draw the map from the list of paths and locations was also challenging to do within React. Programming the pathing around the layout of shelves from the PDF provided by Loblaws digital was also a challenge as the map was very detailed, so the map was simplified so only 15 aisles and approximately 40000 items were then placed on the aisle corresponding to their department.

Accomplishments that we're proud of

The recommender system was tough to debug, but thanks to the extensive dataset from Instacart we were able to get it working reasonably well. We're also proud of getting a large number of items (~40000) cataloged on NCP's API, allowing us to create a database of this mock store that, after working through a couple kinks, works well now.

What we learned

Using API's can be tricky to debug, but once they work are very fast and scalable to use. We also learned how to turn Python code into an API through Google Cloud Functions so that they can be used by other parts of the project, especially the UI.

What's next for GroceryFinder

See if any grocery stores would be interested in actually using such an app to help attract customers into their store, especially a younger audience, now that Amazon is increasing the competition for convenience in grocery shopping. Obtaining accurate data like this on how user's shop will also provide grocery stores the potential of offering specialized coupons to their customers to increase the number of customers that come back to their store after using this app.

Share this project: