LVD Portal – Overview
Purpose
The LVD Portal is a web-based administrative interface for Local Value Determination (LVD) partners to manage property rate data within the iDARMS ecosystem. It enables partners to import, review, and adjust LVD records, track bills and payments, generate financial reports, and manage property information across Metropolitan, Municipal, and District Assemblies (MMDAs).
Navigate to: https://[domain]/lvd
Key Modules
| Module | Description |
|---|---|
| Login / Forgot Password | Username + password authentication with OTP verification |
| Dashboard | KPI cards, quick actions, and recent LVD changes |
| LVD Import | Upload Excel files with property/LVD data for bulk import |
| LVD History | Server-paginated list of all imported LVD records with search |
| Property Management | Grid-view property list and detailed property information |
| Bill Management | Bill list with stats, filters, and payment history |
| Payment Management | Payment list with stats, filters, and status tracking |
| Financial Reports | Debit/credit transaction reports with export options |
| Settings | Profile editing, organization info, and password change |
| Help Center | Search, FAQ categories, and contact support form |
Sidebar Navigation
The sidebar is server-driven — menu items are fetched dynamically via GET /sys/usermenu. The available icon mapping includes: operationaldashboard, financialdashboard, property, propertyowners, gismapping, billmanagement, paymentmanagement, accountingfinance, entity, usermanagement, ussdmanagement, settings, communication, ratepayerinformation.
!!! tip "Testing focus for this app" Confirm that LVD import correctly parses Excel data and submits it to the server, that all table views handle server-side pagination and filtering correctly, and that the RBAC bypass (all users treated as admin) does not expose restricted endpoints unintentionally.
!!! warning "Known Issues"
- RBAC is disabled — the useUser hook returns isAdmin: true for all users
- Dashboard data is hardcoded demo data — KPI cards and recent changes do not reflect real API data
- QueryClient in render — a new QueryClient is created on every render in App.tsx