← Portfolio/Illyas Akbar Cycle Works — POS System
Desktop Application — Electron + React

Illyas Akbar Cycle Works — POS System

A fully offline, bilingual (English/Urdu) Point-of-Sale and business management desktop application built for a cycle spare parts retail shop. Covers the complete business workflow, from inventory and billing to staff payroll, vendor accounts, and financial reporting.

Client
Illyas Akbar Cycle Works, Lahore
Year
2026
Duration
6 Weeks
Team
1 Developer
ElectronReactSQLiteDesktop AppPOSBilling SystemOffline AppUrdu RTLThermal PrintingInventory Management

šŸŽÆ The Challenge

The primary challenge was designing a system flexible enough to handle four fundamentally different billing workflows under one unified interface. Repair jobs required customer slips with cycle-specific details and storage fee warnings in Urdu. Wholesale orders needed multi-method payment splitting (cash + online + bank transfer simultaneously). Credit management required customer identity tracking across multiple bills over time, merging purchase history by phone number and auto-distributing surplus payments across outstanding balances. Additionally, all data had to be stored locally in a structured SQLite database with migration support, while the Electron security model required strict process isolation between the UI and the database layer via IPC and a contextBridge preload.

šŸ’” Our Solution

Built with Electron (main process) + React/Vite (renderer process) + SQLite via better-sqlite3. The architecture uses a strict IPC bridge pattern, the React frontend never touches the database directly; all 50+ operations are exposed through a typed preload API (window.electron.*). The database layer handles atomic transactions for all multi-step operations (bill creation, returns, smart payment distribution) to guarantee data consistency. The bilingual UI uses i18next with full RTL layout switching for Urdu. Thermal receipt printing is handled by spawning a hidden Electron BrowserWindow per print job, generating pure HTML invoices and sending them silently to the printer using webContents.print(), bypassing all browser print dialog interference. A custom barcode scanner hook detects hardware scanner input by measuring inter-keystroke timing (under 50ms threshold) and distinguishes it from manual keyboard typing in real time.

šŸ“Š Results

15 database tables managed in a single local SQLite file
50+ IPC handlers covering every business operation
4 bill types with independent pricing, payment, and print workflows
Bilingual English/Urdu UI with full RTL layout support
Silent thermal printing on 58mm and 80mm paper with zero print dialogs
Complete offline operation no internet required after installation
Customer credit profiles auto-merge bills by phone number across unlimited transactions

Want something like this?

Tell us about your project and we'll give you a free consultation and estimate.