Why it exists
Keep stock, invoices, negotiated prices, and returns consistent at a shop counter, even without internet access.
2026 / Project case study
Offline Automotive Stock & Invoicing
A production-minded Windows application for a Tunis automotive-parts shop, covering stock, clients, suppliers, negotiated invoices, returns, reporting, backups, and multilingual delivery.
Keep stock, invoices, negotiated prices, and returns consistent at a shop counter, even without internet access.
Built the Electron and React workspace, protected IPC boundary, transactional SQLite workflows, printing, and backup tools.
Offline Windows product · Client-ready delivery
Explore the implementationI designed and engineered Ben Mahmoud Stock as a professional offline desktop application for Etablissement Ben Mahmoud. Electron keeps the shop independent from internet availability, while a typed IPC boundary protects the React renderer from raw Node and filesystem access. SQLite migrations, integer-millime money, transactional invoice finalization, immutable sale snapshots, returns, audit history, PDF printing, backup and restore, and a French-first interface make the system practical for everyday counter work.
Client product for an automotive-parts shopReferences, OEM codes, compatibility, shelf locations, suppliers, prices, quantities, alerts, and movement history.
Customer-specific unit prices, whole-invoice adjustments, drafts, automatic numbering, A4 preview, PDF export, and reprint.
Partial or complete returns restore only the accepted items, preserve the reason, and can open a replacement invoice.
Stock movements, invoice changes, cancellations, returns, and business events remain traceable locally.
Day, week, month, and year views report net sales, estimated margin, and best-selling parts after returns.
CSV stock exports and verified SQLite backups support everyday reporting and recoverable client delivery.
A French-first interface switches to English or right-to-left Arabic without changing the underlying workflow.
The shop can sell, print, report, and restore data without a remote API, subscription, or internet connection.
Every counter action crosses a narrow desktop boundary before business services update the local ledger, historical invoice snapshot, and recovery layer.

The React renderer never receives raw filesystem or Node.js access. A sandboxed preload exposes only typed business operations; the Electron main process validates each request and owns database, invoice, backup, export, and print services.
The product was shaped around a real parts counter: stock must remain available when the internet is not, negotiated prices must be visible before validation, and the client must be able to back up data without technical help.
Actual project screens and documented visuals. Open any image for the full view.
All money is stored in integer millimes, while invoice numbering, snapshots, totals, stock reductions, and movements finalize in one transaction.
Historical invoices remain immutable; cancellations and returns use explicit reversing records so the ledger can explain what happened.
Backup, restore, PDF, print, and delivery flows were designed for a shop owner, not for a developer maintaining a database.
Open a technology to see its role in this project.
Packaged Windows runtime with offline operation
Stock, sales, invoicing, reporting, and settings workflows
Shared business contracts from renderer to services
Separate main, preload, and renderer production bundles
Local database with eight explicit migrations
Currency calculations without floating-point drift
Traceable deliveries, adjustments, sales, cancellations, and returns
Numbering, snapshots, totals, and stock changes commit together
Narrow renderer access with context isolation and sandboxing
Preview, export, reprint, and consistent shop documents
Integrity-checked backups, safe restore, and automatic copies
Fast-launch client folder and portable Windows release
French, English, and right-to-left Arabic are exercised in the automated UI smoke test.
A clean installation upgrades predictably while preserving existing shop data across app updates.
Stock, invoicing, returns, reporting, printing, export, backup, and restore require no remote service.
Explore the available resources or talk with me about the design and engineering behind this project.