AI developer & architect, building production-ready intelligent systems.

©2026
← Back to projects

Client buildPlatforms & SaaS ● 2026

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.

RLSOn every tenant table
6 → 15Configurable COA segments
MFATOTP for every admin
Product film
Role

Full-Stack Engineer — FastAPI, PostgreSQL & Next.js

Tech
Year

2026

Live

Private build — demo on request

Overview

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.

The problem

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.

Tech stack
App
Backend & data
Hosting, domain & DNS
Architecture
Casa Harmony system architecture
A Next.js front end over a FastAPI backend. Every request binds its tenant into Postgres, where row-level security decides what rows exist.
  1. 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.

  2. 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.

  3. 03

    Procure to pay

    PO lines carry flexfield distributions; multi-level approval by amount; AP invoices are 2-way matched (invoice ≤ PO) before approval.

  4. 04

    Create accounting

    Subledger Accounting drafts GL journal batches — debit expense, credit AP — grouped per fund, so each fund's journal nets to zero.

  5. 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.

Inside the product
The HOA admin dashboard in the demo (fictional association and residents).
The service desk: tickets by category and status.
Payables: invoices matched against purchase orders before payment.
Journal entry with an Oracle-style code combination — balanced.
The board dashboard: operating and reserve funds, kept separate.
Under the hood: Next.js, FastAPI, row-level security, Postgres.
Features

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.

Highlights
  • 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
Key decisions

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.

What's next
  • →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.
Gallery

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.

Next projectWassupOS →