projects / zadpos
ZadPOS
Offline Arabic Point of Sale
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
Status
Private repository.