Our inspiration for the StoreHelper app was to increase efficiency in the retail industry by creating one application where any consumer can find the location of any item that they need. This eliminates the inconvenience of customers having to travel to multiple stores trying to find an item, only to not find it at the store they travel to. Also, it helps increase the efficiency of the store because workers can complete their assigned tasks (such as stocking the shelves) without being constantly interrupted by customers asking where a certain product is.
What it does
The StoreHelper app has two components. The StoreHelperDev component allows the managers to upload a map of their store labelled with the different items available for purchase. The application available to consumers, StoreHelper provides access to these maps so the customer can look at any store to see if they sell the product that they are looking for, and gives them the location of where to find it when they go to purchase it in the store.
How we built it
We designed our app using Google's Flutter, Google Firebase, Firestore, and the Google Maps API. We used Flutter to be able to deploy onto Android with simpler and easier to read code through its Widgets. We used Google Firebase and Firestore to store the locations of stores, the location of obstacles (like aisles and tables), and the locations and names of items in the store. We used the Google Maps API to pinpoint the user's location and allow them to select stores within their area to view their grocery maps.
Challenges we ran into
- Google Maps API — The Google Maps API was very difficult to use, as Flutter's Google Maps API is still in beta, and lacks easy integration for most of its functions because of it. Documentation was difficult to find and because it's still in beta, a lot of solutions to common problems get overwritten by newer updates, forcing us to search for new solutions. For example, the marker system received an update a couple months ago which rendered a lot of our searches useless.
- Google Firebase — Google Firebase took longer than expected to set up, and we spent a lot of our time researching how to read and write data from it properly.
- API keys — When we were first testing our application, we ran into an issue where the API keys were publicly available on GitHub. Thankfully, we were able to destroy and regenerate the keys immediately after being notified, and solved our issue by using .gitignore files and private repositories.
Accomplishments that we're proud of
We're incredibly proud of having a scalable, and realistic solution to a problem that most people wouldn't realize there would be a solution for. Our app benefits both sides of the business; it reduces complications for both the consumer who walks into the store and has no idea where anything is, and the business reduces the time they spend guiding that customer. It eliminates pain points for everybody involved, and think about how many people experience this issue every day when shopping! We're also super proud of learning how to use Firebase and Firestore, and how to integrate Google Maps into Flutter.
What we learned
We learned how to communicate better as a team, how to think about the UI from the user's perspective, how to use Firebase, Firestore, and how to use the Google Maps API in our applications. Over the course of 24 hours, we've learned skills we'll definitely use in the future as developers and designers.
What's next for StoreHelper
StoreHelper is incredibly expandable, since it affects anyone and everyone who goes shopping. We'd love to build this into a real-world application using SalesForce's POS data system to pinpoint items automatically, and even more precisely, in many more stores, and give the user a more rounded experience.