With COVID-19, less and less people are shopping physically at supermarkets and many are opting for safer approaches, such as ordering items for pickup or ordering items for delivery. However, not all stores have adapted to this change, and many aren't optimized to handle such a large increase in demand for pickups and deliveries, especially as it requires workers to know where items are to collect them for fulfilling an order. This is especially problematic with newer workers and volunteers, who haven't received the chance to get familiar with the store layout and the location of many items around the store. We believe that there was a more efficient solution for this problem, and so we created Efika. Efika is a mobile app that helps store employees work more efficiently.
What it does
Each employee of a store would create an account in Efika and link it to their store. When they log in, they are brought to a list of active orders, sorted from oldest to newest. When they click on an order, they get more information about the order's details, such as the number of items it contains, the estimated time it'll take to complete, and whether or not all the items would be able to fit in a basket. Once the worker chooses to fulfill the order, they are brought to a page where they can view the order's items and see more specific information related to each item.
For this first item, it hasn't been registered in the database yet, so the worker will need to locate the item by scanning through the aisle, which can get tedious over time. However, this is where Efika shines. Instead of having future workers scanning through the same aisle again for the same item in the future, when the worker checks off the item, they are brought to a page where they can perform short and simple steps to help future workers find the item more easily.
Firstly, it's easier to find an item when you know what the general location around the item looks like, so the worker can take a picture of the item along with its surroundings to help give more context about where a particular item is. Once they are satisfied with their image, they can then also help future workers pinpoint exactly where an item is using the compass on their phone. By standing at the start of an aisle and pointing the phone directly at the position of the item, they can save the offset of the compass bearing of a certain item relative to its aisle so that when future workers enter an aisle, they can use Efika to locate the item using their phone's compass.
When the worker is finished performing these steps, they are then brought to their next item, and as you can see, the previous item is crossed off so that they can keep track of the items that they've collected. Now, this product already has an entry in the Efika cache, so you can scroll through the images other workers have taken of the item and its surroundings, helping you find the item more quickly. As well, when you reach the aisle, you can stand at the start and toggle on Efika's compass feature, which shows a green sliver pointing at where the item is located based on the saved compass bearing offsets from other workers using Efika.
Efika also comes with profiles, where you can view the contribution of your co-workers and yourself to fulfilling orders and saving items. This provides motivation among the employees in the store, which is a really powerful way to get workers to become more efficient. You can search for your fellow co-workers and view their profiles, or check up on yours to make sure you're not slacking off.
Our app also comes with a handy feature for workers who need to pack items on a certain shelf or space. We used Paccurate to help workers most efficiently fit items on a shelf. This is especially useful for stores who have many assorted items on display, such as stores displaying many books on tables where there's a limited amount of space. Here, you can see generated images about how some sample items should be placed on the shelf or display.
How I built it
We built the app using Flutter, which allowed us to create a beautiful UI in a short amount of time. The backend was created with Node.js and hosted on Heroku.
Challenges I ran into
Despite our previous experience with Flutter, we came across a couple of challenges that ate away at our precious hackathon time. For example, I spent two hours trying to figure out how to avoid a Flutter RenderFlex error until I decided to simply change my app layout to avoid the error altogether.
In addition, it was also hard to find a data source for our app. We ended up web scraping some big retail websites and using randomly generated data for things like item dimensions simply because we weren't able to find a satisfactory source of this information online.
Accomplishments that I'm proud of
We're proud of creating a complete Flutter app in only 48 hours!
What I learned
Despite me believing that I already know a lot about Flutter, I keep finding new problems in Flutter and trying to search for solutions to these problems. In this hackathon, I learned how to use the camera in Flutter, how to use the Compass package and also learned a bit more about Flutter state management.
What's next for Efika
There were a lot of original ideas that we couldn't implement due to the lack of time. For example, we originally wanted to integrate echoAR into our app to display arrows on the ground pointing to the item. However, we realized that we needed an indoor position system to be able to pinpoint items accurately, which we weren't able to find. Thus, we had to switch up our approach by finding a unique use of compasses to solve this problem. Of course, there are many flaws with a compass-based approach (such as it only working from one side of the aisle, not always as accurate as you would hope, etc.), so we're still on the hunt for a better solution to solve this issue!
Flutter App Github Repo: https://github.com/AbstractLion/Efika
Node Backend Github Repo: https://github.com/AbstractLion/EfikaBackend
Backend hosted on Heroku: http://efika-geom.herokuapp.com/