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.

Kavox product

Type
Desktop point of sale
Platform
Windows · Java · JavaFX

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.

ZadPOS runtime architectureFrom the interface down to the database, every layer runs locally on the point-of-sale machine.

On the point-of-sale machine

  1. JavaFXUser interface

    Sales and inventory screens with an Arabic, right-to-left interface.

  2. Service layerServices

    Sales and inventory rules in one place, separate from the UI.

  3. JDBI3 · HikariCPData access

    Plain SQL queries, with database connections managed in one place.

  4. 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.

  1. MavenBuilds the application.
  2. Launch4jWraps it as a Windows executable.
  3. Inno SetupProduces an installer with a bundled Java runtime (JRE), so the machine shouldn’t need a separate Java install.
  4. 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.