Casa Harmony
Enterprise accounting for homeowner associations
A secure multi-tenant service desk and ERP for homeowner associations, modelled on Oracle E-Business Suite — configurable chart of accounts, double-entry general ledger, and database-enforced tenant isolation.
Full-Stack Engineer — FastAPI, PostgreSQL & Next.js
2026
Private build — demo on request
Homeowner associations need real accounting — dues, receivables, general ledger — plus a service desk, without one association ever seeing another’s data.
Casa Harmony enforces isolation at the database: every tenant table carries a tenant_id and PostgreSQL row-level security. The chart of accounts follows Oracle’s Key Flexfield model with configurable segments, value sets and cross-validation rules.
An Accounts Receivable subledger posts balanced double-entry journals to the GL — the pattern future AP, cash and fixed-asset subledgers follow. Security scaffolding covers TOTP MFA, field-level encryption, immutable audit logs, card tokenisation and CCPA data-subject flows.
Homeowner associations collect dues, pay vendors and hold reserve funds that must stay separate by law — but most run on spreadsheets and small-business accounting tools that don't understand funds, approvals or a service desk.
A property-management firm serving several associations needed one system for all of them, where staff can work across communities and no association can ever see another's books.

- 01
Bind the tenant
Each transaction runs SELECT set_config('app.current_tenant', …, true) — a SET LOCAL — so every query is filtered by RLS policies, not by remembering a WHERE clause.
- 02
Raise and route work
Residents report issues on the service desk; tickets carry priority, owner and SLA, and turn into purchase orders when a vendor is needed.
- 03
Procure to pay
PO lines carry flexfield distributions; multi-level approval by amount; AP invoices are 2-way matched (invoice ≤ PO) before approval.
- 04
Create accounting
Subledger Accounting drafts GL journal batches — debit expense, credit AP — grouped per fund, so each fund's journal nets to zero.
- 05
Post and report
A GL accountant approves control totals and posts; balances land by period, code combination and fund, and the trial balance exports by fund.
Row-level security
Tenant isolation enforced by PostgreSQL itself, not just application code.
Oracle-style chart of accounts
Key Flexfield segments (6 by default, up to 15), qualifiers, value sets and validated code combinations.
Double-entry subledgers
Accounts Receivable posts balanced journals to the general ledger.
Compliance scaffolding
TOTP MFA, field-level encryption at rest, audit logging, card tokenisation and CCPA flows.
- 01FastAPI + SQLAlchemy 2 + Alembic migrations on PostgreSQL 16
- 02Superadmin and per-association sysadmin roles
- 03Compliance control map and TLS guidance documented with the code
- 04Docker Compose locally, Render blueprint for deployment
Isolation in the database
tenant_id plus Postgres row-level security on every tenant table. A missed filter in application code returns nothing instead of another association's data.
Borrow Oracle's model, not its weight
Key Flexfield chart of accounts, GL_CODE_COMBINATIONS and subledger accounting follow Oracle EBS table design, so accountants recognise it and future AP, cash and fixed-asset modules follow one pattern.
Funds can't be skipped
Distribution resolution rejects any account combination without a Fund value, which makes fund accounting a guarantee rather than a convention.
One front end, two data modes
The same 45 screens run on an in-browser demo store or the live API, so the client could review the product before the backend shipped.
- →Cash management and fixed-asset subledgers on the same Subledger Accounting pattern.
- →Go-live checklist: data migration from the client's current books and a deploy runbook on Render / Railway.
- →Field-level encryption and CCPA access / portability / erasure flows, moved from scaffolding to production use.
- →Scheduled assessments and dunning runs on the job scheduler.

Want something like this?
I can build one for you.
Tell me what you have in mind — I'll reply with questions, a plan and a quote.