projects / zadpos

ZadPOS

Offline Arabic Point of Sale

Personal project

Architecture and implementation

What it is

ZadPOS is an offline-first Arabic desktop point-of-sale application. It focuses on local reliability, versioned data migrations, Arabic RTL desktop UX, and reproducible Windows packaging.

The problem

Retail operators need a POS that works without constant network access, handles Arabic RTL interfaces naturally, and can be packaged reliably for Windows deployment.

What I worked on

  • Built JavaFX desktop architecture with a service-layer design.
  • Implemented SQLite WAL persistence with versioned migrations.
  • Used JDBI3 and HikariCP for data access and connection pooling.
  • Added Arabic RTL localization and feature/theme infrastructure.
  • Set up Maven packaging with Launch4j and Inno Setup.
  • Bundled JRE and wrote operator/admin documentation.
  • Ran migration and packaging checks before release builds.

Decisions

Offline-first with SQLite WAL

Local SQLite with write-ahead logging keeps sales and inventory available without network dependency.

Versioned migrations

Schema changes are applied through numbered migrations so upgrades are predictable.

Reproducible Windows packaging

Maven, Launch4j, and Inno Setup produce consistent installer builds with a bundled JRE.

Testing and verification

  • Migration checks before packaging.
  • Packaging validation on Windows builds.
  • Operator documentation for install and upgrade paths.

Stack

Desktop

Java · JavaFX · Arabic RTL localization

Data

SQLite WAL · JDBI3 · HikariCP · Versioned migrations

Packaging

Maven · Launch4j · Inno Setup · Bundled JRE

Private repository.

← Back to projects