≥ 1024px (lg)< 1024px| Route | Page | Description |
|---|---|---|
/ | Landing Page | Marketing homepage |
/login | Login | Dealer email/password login |
/register | Register | New dealer registration |
/forgot-password | Forgot Password | Password reset via email |
/onboarding | Onboarding | 4-step setup wizard (shop name, products, branch, preferences) |
/features | Features | Feature showcase page |
/pricing | Pricing | Plan comparison and pricing |
/contact | Contact | Contact form |
/terms | Terms of Service | Legal terms |
/privacy | Privacy Policy | Privacy policy |
/f/:token | Farmer Portal | Public farmer statement view (shared link) |
/:shopSlug/:branchSlug/staff | Staff Login | Staff PIN entry for specific shop/branch |
/:shopSlug | Shop Page | Public shop profile page |
/aqua-feed-billing-software | SEO Landing | SEO page for feed billing keywords |
/aqua-medicine-inventory-software | SEO Landing | SEO page for medicine inventory keywords |
/aquaculture-dealer-management-software | SEO Landing | SEO page for dealer management keywords |
/stock-management-for-aqua-dealers | SEO Landing | SEO page for stock management keywords |
| Route | Page | Description |
|---|---|---|
/admin/login | Admin Login | Admin email/password login |
/admin/dashboard | Admin Dashboard | Platform overview — active dealers, revenue, usage |
/admin/dealers | Dealer List | All registered dealers with search and filters |
/admin/dealers/:id | Dealer Detail | Individual dealer profile, subscription, usage metrics |
/admin/subscriptions | Subscriptions | Subscription management and billing |
/admin/addons | Addons | WhatsApp and other addon plan management |
/admin/products | Product Catalog | Master product catalog management |
/admin/support | Support Tickets | All support tickets from dealers |
/admin/support/:id | Ticket Detail | Individual support ticket conversation |
/admin/broadcast | Broadcasts | Announcement history |
/admin/broadcast/new | New Broadcast | Compose and send announcements |
/admin/reports | Admin Reports | Platform-level reports |
/admin/reports/:section | Report Section | Individual report section |
/admin/analytics | Analytics | Platform usage analytics |
/admin/settings | Admin Settings | Platform settings |
/admin/settings/:section | Settings Section | Individual settings section |
/admin/audit | Audit Log | All admin actions with timestamps |
All routes below require authentication. Routes with a Gate badge require the dealer's plan to include that feature.
| Route | Page | Feature Gate |
|---|---|---|
/dashboard | Dashboard | — |
/billing | New Bill | — |
/billing/:id | Bill Detail | — |
/billing/:id/edit | Edit Bill | billEditing |
/billing/:id/return | Create Return | returns |
/bill-history | Bill History | — |
/estimates | Estimate List | estimates |
/estimates/new | New Estimate | estimates |
/estimates/:id | Estimate Detail | estimates |
/farmers | Farmer List | — |
/farmers/new | Add Farmer | — |
/farmers/:id | Farmer Profile | — |
/farmers/:id/ledger | Farmer Ledger | — |
/farmers/:id/statement | Farmer Statement | — |
/farmers/:id/discounts | Farmer Discounts | — |
/farmers/:id/edit | Edit Farmer | — |
/dues | Dues Overview | — |
/payments | Payment History | — |
/payments/collect | Collect Payment | — |
/payments/collect/:farmerId | Collect from Farmer | — |
/inventory | Inventory List | — |
/inventory/:id | Inventory Detail | — |
/inventory/purchase | New Purchase | — |
/inventory/purchase/:id | Purchase Detail | — |
/inventory/transfers | Stock Transfers | multiBranch |
/inventory/transfers/new | New Transfer | multiBranch |
/suppliers | Supplier List | — |
/suppliers/new | Add Supplier | — |
/suppliers/:id | Supplier Detail | — |
/suppliers/:id/ledger | Supplier Ledger | — |
/suppliers/:id/pay | Supplier Payment | — |
/daily-book | Daily Book | — |
/daily-book/:section | Daily Book Section | — |
/cashbook | Cashbook | cashbook |
/expenses | Expense List | expenses |
/expenses/new | New Expense | expenses |
/reports | Reports Hub | — |
/reports/:section | Report Section | — |
/settings | Settings | — |
/settings/:section | Settings Section | — |
/branches | Branch List | multiBranch |
/branches/new | Add Branch | multiBranch |
/staff | Staff List | staffAccess |
/transactions | Transaction History | — |
The FeatureGate component wraps routes and page sections that require specific plan features. When a feature is not included in the dealer's plan, the gate renders a locked state with an upgrade prompt.
| Gate Key | Feature | Affected Routes |
|---|---|---|
estimates | Estimate/Quotation creation | /estimates/* |
billEditing | Edit existing bills | /billing/:id/edit |
returns | Product returns processing | /billing/:id/return |
multiBranch | Multi-branch operations | /branches/*, /inventory/transfers/* |
staffAccess | Staff member management | /staff |
cashbook | Cashbook feature | /cashbook |
expenses | Expense tracking | /expenses/* |
whatsapp | WhatsApp API integration | WhatsApp send buttons throughout app |
gst | GST billing | GST columns on invoices, HSN codes |
All 64 page components are loaded via React.lazy(). Each route produces its own JavaScript chunk, downloaded on demand when the user first navigates to that route. This keeps the initial bundle small and ensures users only download code for features they actually use.
// Example from App.tsx
const Dashboard = lazy(() => import('./features/dashboard/pages/Dashboard'));
const NewBill = lazy(() => import('./features/billing/pages/NewBill'));
// ... 62 more lazy imports
A <Suspense> boundary with a loading spinner wraps all routes. Prefetching is used on hover for commonly-navigated routes (e.g., Dashboard → Billing link prefetches the billing chunk).
<Outlet /> is code-split.