Multi-Building Rental Property Management System
Overview
Property owners and management companies running multiple buildings in Vietnam typically operate on fragmented Excel files — one spreadsheet per building, meter readings jotted by hand, invoices recalculated every month, and tenant transfers reconciled manually. The result: billing errors in months with mid-period move-ins or move-outs, lost receivables, and no clean data for tax filings.
The Multi-Building Rental Property Management System consolidates the entire workflow into one place: define buildings, floors, and units; sign and amend leases; record meter readings with photographic evidence; close periods and generate invoices; capture payments and auto-reconcile against bank statements; then produce financial reports, receivables aging, operations dashboards, and tax filing packages. The entire interface is in Vietnamese, designed to match how building managers actually work.
Key Features
Building, Floor, Unit, and Asset Management
Define the building–floor–unit hierarchy, along with in-unit assets and handover records. Each unit clearly shows the current tenant, past tenants, and total revenue collected.
Full Contract Lifecycle
New leases, amendments, unit transfers, early termination, and deposit settlement. Contracts starting or ending mid-month are pro-rated by actual days, with a cap check so a 31-day month never bills more than 100%.
Meter Readings with Evidence
Enter electricity and water readings per unit on the web, or bulk-import via Excel template. Meter photos are mandatory at period close, and meter-replacement events are logged so old-reading history is preserved.
Period Closing and Invoicing
Close periods with a checklist of issues that must be resolved before locking. Invoices split rent and service charges, use custom templates, and can be exported as PDF or shared via a public link with a payment QR code.
Payments, Allocation, and Receivables
Record payments and auto-allocate to line items in declared priority order. The receivables ledger tracks balances by tenant, unit, and period.
Bank Reconciliation
Upload bank statements and the system matches transactions to invoices by reconciliation code. Unmatched transactions are surfaced in a separate list for manual handling.
Payment Request Documents
Combine multiple invoices into a single payment request, printed in the tenant's required format. Routing rules let groups of receivables flow into separate bank accounts.
Expenses and Maintenance
Record operating expenses by category, with support for recurring costs. Manage repair requests, maintenance schedules, and repair logs per unit and per building.
Reports and Tax Filing
Four report categories: financial, receivables, operations, and tax filing packages. Figures are pulled directly from recorded invoices and payments — no manual re-entry.
Tenant Portal
Tenants can view their invoices via a dedicated link — no account required. Automated payment reminders are sent via Email, Zalo, or Telegram using pre-configured templates.
Role-Based and Building-Scoped Access Control
Each user is assigned a role and a list of buildings they can access. Out-of-scope access is blocked at the API layer. Every data-modifying operation is logged in the audit trail.
Technical Specifications
| Specification | Value |
|---|---|
| Backend | NestJS 11 (Node.js, TypeScript) |
| Frontend | Next.js 16 (App Router) + React 19 |
| Database | PostgreSQL 16 + Prisma 6 — 77 tables |
| File Storage | S3-compatible (MinIO) |
| Deployment | Docker Compose |
| API Scale | 335 endpoints / 46 controllers / 33 business modules |
| Number of Screens | 69 |
| Testing | 300 test files — unit, integration on real PostgreSQL, E2E Playwright |
| Monetary Data Type | Decimal(18,2) |
| Data Import/Export | Excel (ExcelJS) — meter readings, master data, reports |
| Notification Channels | Email (SMTP), Zalo, Telegram |
| UI Language | Vietnamese |
