Tablet App for Smart Store

About the Client

Our client is a startup company launched by former Google employees.

Company’s Request

The idea behind the company is to build 5-foot-wide “pantry boxes” that contain non-perishable food and other items similar to those found in convenience stores/bodegas.

Technology Set

Python 3.6
Utilized as the core programming language for its simplicity and efficiency, Python 3.6 supported the creation of a robust MVC application for store tablet interfaces.
Employed to develop the graphical user interface, PyQT facilitated the creation of intuitive and responsive touch screen displays for guiding user transactions.
Used for handling communications between the store tablets and the central store computer, ZeroMQ enabled reliable message passing that controls the state transitions of the user interface.
Served as the integrated development environment (IDE), PyCharm streamlined the coding, debugging, and testing process, enhancing productivity and ensuring code quality.


The goal of this project was to create a pilot app to be used on 20-40 stores/tablets. We created a simple Python MVC application (QT GUI as view, interactions with store computer via ZeroMQ, custom keyboard). We delivered a method of receipt to the user using an email screen (created specifically for easier email typing on the touchscreen). The touchscreens were connected to the store. The touchscreen tablet interface is a series of screens guiding the user through the transaction process.
The state (screen) of the interface transitions was based on messages from the store computer. This screen is capable of transition based on users’ touchscreen input.

Gui’s events:

  • Card swipe.
  • Store Unlock from app.
  • Valid Swipe.
  • Invalid Swipe.
  • Timeout.
  • Door Opened.
  • Door Locked.
  • Door Closed.
  • Skip Button Pressed.
  • Email Button Pressed.
  • Error message.
  • App transaction is finished.

In accordance with client requirements and guidelines, we created the design for the app.

Value Delivered

Receipt Transmission and Data Collection
The app collects information in order to send receipts to customers and provide statistics for managers.
User-Friendly Application Interface
The app is highly user-friendly.
Customer Input Collection for Marketing Purposes
All relevant customer input was collected and sent to the stores’ owners for marketing.