📦
Inventory Management
Full product catalog with categories, brands, SKU/barcode, cost & selling price, tax, min-stock threshold, and a complete audit trail of every stock movement.
Barcode scanOCR entryStock ledger
🧾
Sales & GST Billing
Full invoice flow with per-item discount & tax, invoice-level discount, payment collection. Auto-numbered invoices. PDF invoice shareable via WhatsApp / email instantly.
PDF invoicesGST-readyPartial payments
🛒
Purchase Management
Supplier-side billing mirror — purchase entry, stock inward, supplier payments, bill image attachment. Auto cost-price update from latest purchase.
Bill scanAuto cost price
👥
Customer & Supplier Ledgers
Running-balance ledger for every party. Debit/credit auto-generated from invoices, purchases, and payments. Direct call / WhatsApp / email from the detail screen.
Running balanceCredit limits
📋
Orders & Reorder Suggestions
Sales & purchase orders with stock reservation. Partial delivery support. Automatic low-stock reorder quantity calculation grouped by supplier.
Stock reservationAuto reorder
📈
Reports & Exports
12+ report types — daily/monthly sales, product-wise, customer-wise, inventory valuation, receivables/payables. CSV & PDF export. Native charting — no third-party library.
CSV exportPDF reports12+ types
↩️
Returns, Damage & Adjustments
Sales and purchase returns with per-line condition (good/damaged) and refund method. Dedicated damaged-stock module with restore or dispose options.
Full audit trail
🔐
Offline Trial & Licensing
7-day trial tracked tamper-resistantly. On expiry, app shows the device's unique ID. Developer generates an offline HMAC-SHA256 unlock code — one payment, permanently unlocked. Zero network calls.
HMAC-SHA256Device-lockedZero cloud
💾
Backup & Restore
Full backup to a custom .ggcbackup archive — database + all images + manifest with checksums. Restore validates integrity before touching any data.
Offline-onlyIntegrity check
⚡ Engineering Highlight
Offline licensing without a server — HMAC-SHA256 unlock system
The hardest problem: let a client fully evaluate the app before paying, without a server and without the client using it free forever. Solved with a deterministic HMAC-SHA256 scheme where the developer generates an 8-character unlock code offline from the device ID. One-time entry, permanently unlocked — zero network calls in the entire flow.
1
App runs in 7-day trial, tracked tamper-resistantly (isolated from backup/restore so restoring cannot reset the clock)
2
On expiry, a "Trial Ended" screen shows the device's unique hardware ID
3
Developer runs an offline Python script against the device ID → generates the 8-character unlock code
4
Client types it in once → permanently unlocked on that device. Verified by a Kotlin + Python unit-test suite proving both produce identical codes