Project overview
A multi-tenant platform for managing homeowners' associations (HOAs) and subdivisions. One deployment hosts independent subdivisions, each with its own residents, finances, staff, and records. All financial activity is recorded as permanent, append-only entries rather than editable rows.
People and roles
Super Admin
Oversees the whole platform. Reviews and approves (or rejects) new subdivisions that sign up, manages subdivision admins, and can view a platform-wide audit log across every tenant.
Subdivision Admin / Staff
Runs the day-to-day operations of one subdivision: residents and households, billing and dues, income and expenses, payroll, inventory, projects, events, and announcements.
Resident
A self-service portal scoped to their own household: view balance, bills, and payment history, and see announcements, news, and events for their community.
How it works
Multi-tenancy
Each subdivision is a tenant identified by a URL slug. A user's access and role (Admin, Staff, or Resident) is defined by a membership row, so one account can belong to multiple subdivisions with different roles in each. Every request resolves the tenant context server-side before any data is read or written.
Onboarding & Approval
A new subdivision starts in Pending status. Only a Super Admin can approve it. Users attached to an unapproved subdivision see a pending-approval screen.
Immutable Financial Records
Payments, income, expenses, bills, and payroll are never edited or deleted in place. Corrections use void and reversal. Each change writes a linked audit log entry in the same transaction, so a mutation cannot commit without a matching trail.
Core modules
- Households & Residents
- Billing & Payments
- Accounting
- Payroll & Employees
- Inventory
- Projects
- Events & Announcements
- Settings & Audit Logs
