AquaDealers is a vertical SaaS platform purpose-built for aqua feed and medicine dealers in India. It replaces paper billing books, Excel sheets, and WhatsApp-screenshot accounting with a single web application that handles billing, farmer credit tracking, inventory, and supplier management.
The entire application runs as a client-side SPA that communicates with Supabase's PostgREST API and custom RPC functions. There is no separate backend server — all business logic lives either in the frontend or in PostgreSQL functions and triggers.
Feed and medicine dealers in Andhra Pradesh and Telangana, India's largest aquaculture regions. These dealers:
Counter staff and branch managers who create bills and manage day-to-day operations on behalf of the dealer. Staff have:
Aqua dealers traditionally write bills in carbon-copy bill books. A single bill takes 2–3 minutes to write by hand, with frequent errors in totals and item calculations. AquaDealers reduces this to under 30 seconds — select farmer, pick products, enter quantities, done. The system auto-calculates totals, applies discounts, handles GST, and deducts stock in a single atomic transaction.
Tracking who owes what is the biggest pain point. Dealers maintain separate notebooks or Excel sheets, and reconciliation errors are common. AquaDealers maintains a real-time digital ledger per farmer with:
Dealers lose money to expired stock and have no visibility into what's selling. AquaDealers provides:
Farmers expect bills via WhatsApp. AquaDealers provides two mechanisms:
The WhatsApp addon is a paid feature with per-message quota management.
Dealers with multiple shops or godowns need unified management. AquaDealers supports:
branch_ids UUID[]| Capability | Status | Description |
|---|---|---|
| Billing | Implemented | Atomic bill creation with stock deduction, payment, farmer due update in single transaction |
| Farmer Management | Implemented | Farmer profiles, ledger, statements, product-specific discounts, credit limits |
| Inventory | Implemented | FIFO lot tracking, expiry management, movement history, rate adjustments |
| Supplier Management | Implemented | Supplier profiles, purchase recording, supplier ledger, payment tracking |
| WhatsApp Integration | Implemented | Bill notifications via authkey.io API, wa.me links for statements |
| Offline Billing | Implemented | Service worker caches app shell; offline bills sync via client_ref idempotency |
| Multi-Branch | Implemented | Branch-scoped inventory, billing, cash book; inter-branch stock transfers |
| Staff Access | Implemented | PIN login, branch-scoped, 14-module permission system |
| Daily Book | Implemented | Register-style daily view with 9 sub-pages, date navigation, prefetching |
| Estimates | Implemented | Quotations using same bill flow but no stock/payment impact; convertible to real bills |
| Returns | Implemented | Stock restored to original FIFO lots (LIFO), excess becomes return credit |
| Cashbook | Implemented | Daily cash entries, opening/closing balance, linked to bills and payments |
| Reports | Implemented | Sales register, profit report, stock report, dues report, monthly finance pack |
| GST Billing | Implemented | Configurable GST rates per product, HSN codes, GST breakdown on invoices |
| Bill Editing | Implemented | Edit quantities, prices, discounts, dates, payments with full audit trail |
| Bill Cancellation | Implemented | Same-day only, unpaid bills only; reverses stock and farmer dues |
| Transaction Undo | Implemented | Universal undo via transaction_events table, 48-hour window |
| Stock Transfers | Implemented | Inter-branch transfers preserving FIFO lot data and movement audit |
| Rate Adjustments | Implemented | Per-lot rate changes with reason tracking and movement audit |
| Farmer Product Discounts | Implemented | Per-farmer per-product discount rates, auto-applied during billing |
| Crop Cycle | Partial | Basic crop tracking on farmer profile; full cycle management not yet complete |
| Profit per Product | Partial | Profit calculation exists in reports; per-product breakdown is approximate |
Current version: 3.0.0 (as defined in package.json).
The application is a continuously deployed SPA. Version bumps in package.json mark significant milestones rather than individual releases.