Offline Arabic point of sale
ZadPOS
An Arabic desktop point of sale built to run reliably on the local machine, with sales, inventory, SQLite storage and versioned, upgradeable data migrations.
What it is
ZadPOS is point-of-sale software that runs on the shop’s own machine. Sales, inventory and data are all local, and the interface is Arabic, right to left.
It focuses on three things: sales keep going without a constant internet connection, the Arabic interface holds up in daily use, and installs and updates come out the same every time.
Why offline-first matters
At the counter, a dropped connection is not a hypothetical. If the software stops when the network does, the sale stops too — with the customer standing there.
So ZadPOS doesn’t wait for the network. Everything needed to complete a sale and update stock is on the machine.
Runtime architecture
Four layers on the same machine. Each layer only knows the one below it, which keeps sales rules away from the screens and from storage details.
On the point-of-sale machine
- JavaFXUser interface
Sales and inventory screens with an Arabic, right-to-left interface.
- Service layerServices
Sales and inventory rules in one place, separate from the UI.
- JDBI3 · HikariCPData access
Plain SQL queries, with database connections managed in one place.
- SQLite (WAL)Database
A local data file on the machine, in WAL mode.
Versioned migrationsEach schema change is numbered and applied in order on update.
Arabic desktop UX and local reliability
- Arabic from the start
- The interface is designed for Arabic and right-to-left, in the screens a cashier uses all day.
- SQLite in WAL mode
- In this mode, reads don’t wait for writes to finish. We chose it to keep screens responsive while a sale is saved.
- Versioned migrations
- When the software updates, existing shop data moves to the new schema in known, ordered steps.
- A clear service layer
- Sales and inventory logic sits in its own layer that can be tested and changed without touching the UI.
From code to a Windows install
Installation is part of the product. Every release goes through the same path, so the software lands on the machine the same way each time.
- MavenBuilds the application.
- Launch4jWraps it as a Windows executable.
- Inno SetupProduces an installer with a bundled Java runtime (JRE), so the machine shouldn’t need a separate Java install.
- Pre-release checksPackaging and data-migration checks before a release is accepted.
The result: a repeatable Windows install.
Current status
ZadPOS is a product built by Kavox. This page describes how it is built and run, nothing more. If your business needs a point of sale or desktop software that works locally, let’s talk through the details.
Have a process that needs sorting out?
Describe it as it is. You don’t need a technical spec before the first conversation.