A small billing workflow needs reliable local records and printable invoices without depending on internet availability or a hosted database. This application packages billing, payment tracking, reporting, settings, and recoverable SQLite storage into one installable desktop tool.
Panarwala Billing Desktop App
An offline Windows billing application for customers, products, invoices, payments, reports, printing, PDF export, and local backup workflows.
About Panarwala Billing Desktop App
Panarwala Billing is an offline Windows desktop application for Panarwala & Associates. It keeps customers, products, invoices, payments, business settings, and reports in a local SQLite database and supports A4 invoice previews, printing, PDF export, CSV reports, and file-based backup and restore.
Product thinking
Challenge and approach
Invoice identifiers reset by Indian financial year and use a configurable prefix. Application data lives under the user's AppData directory rather than the installation folder, allowing it to survive updates or reinstalls, while restore creates a safety backup before replacing the active database.
Capabilities
Main features
Reusable customer and product or service master records
Financial-year invoice numbering, line items, discounts, tax, and amount in words
A4 invoice preview with printing and PDF export
Full or partial payments, multiple modes, and balance tracking
Invoice, payment, and customer-ledger reports with CSV export
Business settings plus file-based backup and guarded restore
Architecture
How the system is structured
- 01
Electron provides the desktop main process, preload bridge, native dialogs, printing, and IPC handlers.
- 02
React and Vite provide the renderer interface with React Router navigation.
- 03
better-sqlite3 stores billing data locally without an ORM or remote service.
- 04
Database initialization, migrations, validation, filesystem paths, and amount-to-words helpers are separated under the Electron layer.
Implementation
Technology and data
Technology stack
- Electron
- React
- Vite
- SQLite
- better-sqlite3
- React Router
- Electron Builder
- Jest
Engineering details
Technical considerations
PrivacyData and privacy
- The billing workflow runs offline and requires no internet connection.
- Customer, invoice, payment, and settings data remain in the local SQLite database.
- Backups are saved only to a location selected by the user.
ReliabilityRecovery and cleanup
- Automatic safety backup before a database restore
- Persistent AppData storage separate from application installation files
- Database initialization on first launch and migration support
- Jest coverage for invoice calculations, amount-to-words, financial-year logic, and payment validation
OperationsDeployment considerations
- The packaged product targets Windows and builds an NSIS installer.
- better-sqlite3 must be rebuilt for the Electron runtime during development.
- Restored databases are loaded after the application is closed and reopened.
- The repository license specifies private use for Panarwala & Associates.
Use cases
What the project supports
- Create, preview, print, and export sales invoices
- Track partial or full payments and outstanding balances
- Review invoice, payment, and customer-ledger reports
- Back up and restore billing records without a cloud service