During COVID 19 all of us are in quarantine and all of us already experienced queuing in front of supermarkets. Some supermarkets use tracking mechanisms like chips or enforce people to use the limited number of shopping carts they have. This brings a higher risk of infections for customers and the personell as well as costs time and money for the economy. That's why we wanted to intelligently coordinate customers behaviour in order to fully eliminate the queues, the need for any contact with physical objects and have as much flexibility for customers as possible.

What it does

We developed an intelligent online reservation system that let customers reserve timeslots as well as keeps track of walk-in-customers. Customers can easily see the crowdiness of the supermarket online and reserve timeslots, even quite short times before their shopping. As we use a sophisticated algorithm in order to plan capacity towards demands it balances the number of walk-in customers with the allowed reservations in each slot in order to prevent the store from being overcrowded. The security personell gets an app or wearable device in order to track customers and check reservations using a scanner. This eliminates the need for any physical object during the reservation process and reduces human contact.

How we built it

We created a java server, react frontend and Android App with Kotlin Multiplatform. The Android app integrates a connected scanner wearable that allows to scan barcodes from a long distance. The frontend and backend are deployed using docker and made available behind an API Gateway and Cloudfront to be prepared for scale.

Challenges we ran into

One of the biggest challenges in capacity planning is having a good algorithm to balance the ability of short-term reservations with the ability to just walk into the store without a reservation. As a store owner it's in his interest that people can also come spontaneously if possible, but we want to reduce queues as much as possible. That's why we needed to develop a good system that allows both: Short-Term reservations online and walk-in customers to use the capacity as good as possible. To achieve that goal we used live technology and a pessimist algorithm that calculates how many new walk-ins are allowed at a certain time and how many short-term reservations are allowed in the same time-frame.

Accomplishments that we're proud of

One extra bonus feature was to integrate a wearable barcode scanner into our app. It improves the scanning distance between a customer with a reservation and the security personell as the scanner can scan a longer range. Additionally the security personell has free hands and does not need to hold his phone all the time, which can be useful in cases of helping others or old people to get into the store.

What we learned

  • Complexity of timetable planning
  • The power of Kotlin + Kotlin Native
  • Maps UI
  • Integration of wearable devices

What's next for QR Cart

We want to talk to supermarkets about the demand in the market and if so bring it to production.

Built With

Share this project: