About
The passion for food when combines with zeal for entrepreneurship can bring us to innovation previous unthought of. Seemingly, on what looks like an extraordinary journey of discovering good food brought us to first-of-its-kind automated retail marketplace, a collaborative platform of food providers.
Frshly is an automated retail marketplace in the form of food vending machines controlled with attached tablet devices. Each tablet is a food order app with online menu with which a person can order food items from various vendors in the marketplace. A group of screens above vending machine displays available food items.
A user can select one or more food items in multiple quantities, subject to availability. The user receives a token number on the SMS. Another tablet displays token numbers ready to serve. The aim is to provide fresh and hygienic food all under 90 seconds!
The Solution
Another problem
Simple solution
Key features
A Flawed Architecture
At core of the entire solution architect is a Raspberry Pi. The single-board computer, which connects the vending machine to TV screens, order-tablet, token-tablet, and the internet.
The TV screens read the vending machine via the Raspberry Pi and displays food items available inside it and in what quantity. Likewise, via Raspberry Pi, the order-tablet, on a customer’s command, triggers the set of actions that obligates the vending machine to prepare the ordered food and prompt token-tablet to display the current order.
The architecture required the orders to be stored on Firebase Realtime Database and, ultimately, on Frshly servers before being marked ‘confirmed’. This is where the biggest limitation of this setup stood—a challenge we must solve.
The Big limitation
What if the internet connection that connects the Raspberry Pi and thus the whole setup to the system to web services is interrupted while a customer ordering. The Firebase Realtime Database would also go offline and, as a result, the order will fail.
If the internet goes down for some time, Firebase will become unavailable and the app will stop working and won’t take any new orders, which means business loss for Frshly and loss of brand. Also, the food items stored in the vending machines have a shelf life.
Coming up with a work around
Evidently, the team’s first priority became to make the tablet app accessible in offline mode for the time internet is down or got interrupted in midst of an order. For that, we needed to setup local database. Once the internet is up and running, to send order data to Firebase and sync it with Frshly server.
This meant complete restructuring of app rules and writing and editing many lines of code.
Technology stack
Editor
Android Studio
Database
MongoDB
Programming Languege
NodeJS
Realtime Data Update
Socket.io
Network request
Retrofit
Image Caching
Glide
Dependency Manager
Gradle
Crash reporting system
Fabric
Results
By cutting Frshly’s dependence on the internet, the tablet app could accept more orders than before. The vending machines’ idle time decreased by more than 25%. Native Android app led to a better customers satisfaction ratio.
Have a look at
Our success stories
Over the years, Peerbits have delivered several customized solutions to their clients across the globe. You can get a closer look at few of such success stories here.