← All case studies
Case Study / Point of Sale

Custom POS App for Retail & Restaurant Merchants

A Flutter point-of-sale app for Vencru Inc. that runs the same checkout on a phone, a tablet, a browser and a Windows or macOS till, with barcode scanning, thermal receipt printing and 64 currencies wired straight into the Vencru business platform.

Custom POS App for Retail & Restaurant Merchants sales register, cart review and receipt screens shown on desktop and mobile
Project Overview & Specs
Client
Vencru Inc., Calgary, Canada
Platforms
Android · iOS · Web · Windows · macOS · Linux
Architecture
GetX controllers, Beamer routing
Codebase
186 Dart files, ~29K lines
Category
Business / Point of Sale

01 / The Challenge

The same till, whether it's a phone in a market or a desktop in a store

Vencru already ran invoicing, inventory and accounting for small businesses on the web. The gap was the counter itself. A retailer serving customers needs a register that opens fast, scans a barcode, takes cash and closes a sale, and that register lands on wildly different hardware: a phone at a food truck, a tablet in a salon, a browser in a back office, a Windows PC on a shop floor. Shipping six separate POS apps was never on the table, but neither was one cramped layout stretched across all of them.

Checkout had to feel native on both a portrait phone and a landscape desktop till, not a single layout awkwardly resized to fit both

Receipts print to whatever thermal printer the merchant already owns, which in practice means Bluetooth, BLE, USB and network printers all needing support

Merchants sell in their own currency, so every price, tax line and total had to render the correct symbol rather than defaulting to dollars

The POS is one surface on a larger platform, so products, clients, taxes and invoices all had to stay in sync with the existing Vencru API rather than keeping a local copy of the truth

Counters lose connectivity, and a register that fails silently when the Wi-Fi drops costs a merchant the sale

02 / Here is What We Did

One codebase, two layout families, six build targets

We built Vencru POS as a single Flutter project that compiles to Android, iOS, web, Windows, macOS and Linux. Every screen exists as a mobile and a desktop variant sharing one GetX controller, so business logic is written once while the layout is authored properly for each form factor. Beamer drives URL-addressable routing across 37 named routes and eight location groups, which means the web build has real, shareable URLs and the desktop builds get proper back-button behaviour.

Fourteen GetX controllers hold the state; a single Dio service layer talks to 21 Vencru REST endpoints, so no screen owns its own networking.

STEP 01

Register Core & Responsive Shell

Built the sales register itself: paginated product and category loading, search, cart building with quantity and per-item tax, discounts and live subtotal maths, all behind a responsive shell that locks phones to portrait and desktops to landscape and swaps between the mobile and web screen sets automatically.

STEP 02

Checkout, Clients & Receipts

Wired the full checkout path, cart review through payment method to invoice creation against the Vencru API, added client capture with country-aware phone entry and device contact import, then built receipt output as both an A4 PDF and 58mm ESC/POS thermal print.

STEP 03

Printers, Settings & Desktop Packaging

Added printer discovery and connection across Bluetooth, BLE, USB and network on port 9100, built out settings for business information, currency, tax CRUD, register locations and language, then packaged the desktop builds with an Inno Setup installer for Windows and a DMG for macOS.

03 / Features

Everything a counter needs, on whatever hardware is on it

01

A sales register that loads products and categories page by page with search, so a merchant with a large catalogue gets a responsive grid instead of waiting on a full inventory download.

02

Barcode and QR scanning available at four points in the flow: the register search bar, the add-item form, the product-not-found state and the desktop item panel, so scanning a code either finds the product or starts creating it.

03

Six payment methods at checkout, cash, card, bank transfer, cheque, gift card and other, with amount received captured and change calculated before the invoice is written.

04

Thermal receipt printing over Bluetooth, BLE, USB and network printers, generated as 58mm ESC/POS byte streams with device discovery, connection state and reconnect handling built in.

05

A4 PDF receipts generated in-app with separate mobile and web implementations, so a merchant can print, save or email the same receipt from any build.

06

Client management at the counter: search existing clients, or add a new one with billing and shipping addresses, country-aware phone validation, and one-tap import straight from the device contact list.

07

Currency and tax settings covering 64 currency symbols, plus full create, edit and delete for tax rates that then apply per line item on the register.

08

Live connectivity monitoring with a dedicated no-internet state on every major screen, and English and French interface translations across roughly 270 keys each.

09

Deep links into the wider Vencru platform, back office, inventory, customers, team members, plans and accounting settings, so the POS stays a register while the full product stays one click away.

04 / Technologies

Flutter across six targets, over the Vencru REST platform

Flutter
Dart
GetX
Provider
Beamer
Dio
REST API
ESC / POS
POS Printer
Bluetooth
PDF / Print
QR Scanner
ScreenUtil
Phone Field
Prefs
Network
WebView
Inno Setup

05 / Results & Impact

A production register, shipped and packaged for every counter

6
Build targets from one Flutter codebase
186
Dart files across 88 screen and 43 shared widget files
21
Vencru REST endpoints through one Dio service layer
37
Named routes wired through 8 Beamer location groups
Live on Google Play
Published by Vencru Inc. and actively maintained
64 currencies
Correct symbol on every price, tax line and total
4 printer types
Bluetooth, BLE, USB and network ESC/POS support
Google Play

Turn your device into a powerful point of sale system. Streamline your retail operations, manage inventory, track sales, and access powerful analytics, all in one place.

Vencru Inc., Vencru POS on Google Play
Have something similar in mind?

Let's put your product on every screen your customers use.

Tell us the hardware your users actually work on and we'll bring the Flutter engineering to ship one codebase across phone, tablet, web and desktop, peripherals included.

Start a project