Android · Native · Fully Offline

Shop Inventory
Management.
Built for real business.

A complete offline-first Android ERP for wholesale retail — barcode scanning, GST-ready billing, PDF invoices, stock ledgers, customer accounts, and financial reports. No internet. No subscription. No recurring cost.

Kotlin + Jetpack Compose Barcode Scanning GST Billing PDF Invoices 100% Offline Room Database ML Kit OCR
50+Screens
12+Report Types
25+DB Entities
0Cloud dependency
Maa Labs · NaveenCodes
Shop Inventory
Management
₹2.4LStock Value
847Products
₹68kToday Sales
23Low Stock
INV-2025-0142 · Paid₹3,450
PO-2025-0038 · Pending₹12,800
Gift Box Premium · 48 pcsStock OK
Rose Body Mist · 3 pcsLow Stock
Invoice
INV-2025-0142
Rahul EnterprisesCustomer
Gift Box Premium × 12₹1,440
Perfume Set × 6₹2,100
₹3,540Total
GST 18%₹637
Share PDF Invoice ↗
Why it exists

A wholesale shop was running
its books on paper and memory.

The shop this app was built for — a wholesale gift & cosmetics business — had no software at all. Stock counts lived in a notebook, prices were remembered rather than recorded, invoices were handwritten, and there was no easy way to answer "what do we owe this supplier" or "what's actually left of this SKU" without walking the shelves.

📓
The problem: paper doesn't scale
No stock truth without a physical count, no GST-ready billing — invoices were handwritten and slow — and no record of what was owed to which supplier or by which customer. A cloud-only POS wasn't a practical fit either, given the shop's connectivity.
No stock truthManual invoicesNo ledgers
🎯
Who it's for
Single-location wholesale and retail shops that need real inventory and GST billing, not an enterprise ERP — and that won't pay a monthly fee for it. Built for businesses where internet isn't guaranteed, so the app had to work fully offline.
Single locationGST billingOne-time unlock

The build target was concrete, not hypothetical: one real shop's actual catalogue, actual suppliers and actual customers — which is why the feature set below reads as specific business logic rather than a generic template.

What it does

Every module a wholesale
business actually needs.

Built end-to-end for a real wholesale gift & cosmetics shop — not a template, not a demo. Each module handles real business logic correctly.

📦
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
Built with

Native Android, zero shortcuts.

No Firebase. No cloud backend. No third-party PDF/ZIP/charting libraries. Everything built from first principles on platform APIs.

🎯
Kotlin
Primary language
🎨
Jetpack Compose
UI framework · Material 3
🏗️
MVVM + Repository
Architecture pattern
🗄️
Room (SQLite)
Local database · 25+ entities
💉
Hilt
Dependency injection
Coroutines + StateFlow
Async & reactive state
📷
CameraX + ML Kit
Barcode scan · OCR
🔔
WorkManager
Background reminders
📄
PdfDocument API
Native PDF · no library
🔒
HMAC-SHA256
Offline licensing
🧭
Navigation Compose
40+ composable routes
🖼️
Coil + DataStore
Images · preferences
What's inside

50+ screens across every module.

Every screen built from scratch with a unified design system — one reusable header component across all 50+ views so the entire app reads as one cohesive product.

Dashboard
  • Stock value & sales snapshot
  • 7-day sales trend chart
  • Low stock alerts
  • Outstanding receivables
Products
  • List & grid view toggle
  • Barcode scanner
  • OCR capture entry
  • Custom barcode generator
  • Full product detail
Sales
  • Invoice creation
  • Line items + discounts
  • PDF generation & share
  • Payment collection
  • Invoice history
Customers
  • Customer list & detail
  • Running balance ledger
  • Credit limit tracking
  • Call / WhatsApp / email
Purchases
  • Supplier bills entry
  • Bill image capture
  • Stock inward logging
  • Supplier payments
Orders
  • Sales & purchase orders
  • Stock reservation
  • Partial delivery
  • Reorder suggestions
Reports
  • Daily / monthly sales
  • Product-wise report
  • Inventory valuation
  • CSV & PDF export
  • Receivables & payables
Settings
  • Backup & restore
  • Trial & license
  • About & tribute screen
Get the app
Download for Android.
Install. Run. Done.

Android 6.0+. Enable Install from unknown sources in settings. APK file — no Play Store required.
Built & delivered by NaveenCodes in partnership with Maa Labs.

⬇ Download APK v1.0 · ~88 MB Android 6.0+ · Offline · No subscription