optimizes your shopping

Jamie Huddlestone & Anna Breger


Good organization and a reduced amount of ordinary shopping trips can save you a lot of leisure time, but in a pandemic scenario it can save human lives. By minimizing the amount of shopping trips, the number of people in shops can be reduced and would lead to less physical contact, which has a direct impact on the ability of the virus to spread. But on the other hand, regular shop visits to buy fresh food, etc., are indispensable for customers as well as for shop owners and the long-term health of the economy. Splitting such necessary journeys with friends, flatmates or family could hugely reduce the number of shop visits without having to abstain from wanted goods.

Our solution

Our app helps you to organize your shopping trips and to coordinate them with others, minimizing the total number of trips needed to obtain all your items. It allows you to share shopping lists with groups of people, with a private and public mode; using a novel optimization algorithm, the app provides your group with the right shopping lists to minimize the amount of shops that have to be visited in order to obtain everyone's goods in time. Moreover, the app provides useful help for standard shopping trips, such as sorted shopping lists and reminders. And to help users plan their journeys in order to avoid crowds, the app will leverage the Google Places API to provide real-time numbers of shop visitors.

State of development

Having looked at existing software offerings, we realised that the typical decision process that the user has to engage with when organising their shopping with an app could be hugely streamlined, in terms of both input and output. Starting from a blank slate, we have been working to develop a prototype using the Bottle framework in order to provide a Python API that is also capable of easily running the SciPy-powered modules containing our optimization algorithms, which serves the data to a lightweight vanilla JS browser app that also works as a mobile hybrid. We first tried to use a relational database to handle the data, but realised after many frustrating hours that the model would be much better represented by no-SQL records, so we switched to MongoDB and are currently rewriting the controller code; work on the front-end has been suspended until it's all sorted again!

What's next

Once the initial implementation is finished, we can start with branding and marketing - we're looking to start with a relatively soft launch, targeting existing community groups at first to build our user base, generate interest and obtain feedback. For the next stage, we plan to use those initial insights to guide us as we work on more tools and different options for the optimization algorithm. Moreover, Google collects and provides real time data of shop visitors; this data is available via an API and we eventually plan to integrate it in the app. In the long term, tools such as shopping item recommendations and optimization of shopping habits are planned for future iterations; which happens first will depend on the feedback we get from our users!


Shops are natural points of physical interaction, where unrelated people have to temporarily share a small indoor space. Reducing the number of people who go to shops reduces the number of interactions and also leaves more space for the people in the shop. We believe that Shapp could help to reduce the number of visitors very easily, without show owners losing earnings or individuals abandoning needed goods. Our priority is to provide a straightforward and easy to use app, that is simple to integrate in everyday life.

After the crisis

The app helps to organize and reduce shopping trips, individually or shared between groups. This is of major importance during (semi-)lockdown scenarios, but also remains very helpful under 'normal' circumstances. Better organized shopping can save lots of free time and unnecessary shop visits - directly integrating visitor numbers into our app will help us to help users find a more convenient time to go shopping, and could therefore help to distribute shop visitors more equally.

Share this project: