Back to main page
hyena-logo

POS app for the legal recreational cannabis industry in the US. This application includes customers management, inventory management, orders history and various levels of access. It can scan barcodes to find products faster, it works offline, controls cash drawer, label printer, receipt printer, cales and synchronizes data with Salesforce instance.

From design to MVP

5 weeks, 326 hours

Final results

Remote Assembly delivered an offline-capable android app using an in-app database with version control capabilities to synchronize inventory between multiple POS app instances. We have overcome the offline capabilities challenges, Salesforce bi-directional synchronization challenges, and even hardware integration challenges despite the fact that all of us worked remotely.

Backend

Google Cloud Functions, CouchDB

Frontend

React Native, PouchDB

Offline capabilities challenges

This app must function properly despite possible internet connection interruptions. To make the app work without the internet connection, we decided to use an in-app database. But if a shop has multiple POS instances, then all of them have to manage the same inventory. To make this possible, we had to establish app-to-server synchronization the same way git version control works. So, if 2+ POS apps modify the same inventory entry, the server will handle it: it will modify the relevant inventory record properly and synchronize it between all POS apps.

Salesforce synchronization challenge

Salesforce added another layer of complexity to this project. In-app databases must be synchronized with a server-side database and the latter one must be synchronized with Salesforce instance.

Hardware integration challenge

We are an all-remote development shop, yet we had to find a way to make app control cash drawer, label printer, receipts printer and scales. We got our hands on some of the required devices and emulate others.