Architecture¶
HouseCairn is a Django application with HTMX for the interactive parts, in a single container. The main rules, each recorded in a decision:
One service layer holds the business rules; web views and API views call it and hold none of their own (ADR 0002).
Web and API parity: what the web interface does, the API does too, checked by a test (ADR 0003).
Every query is scoped to the homes of the user, or of the API token (ADR 0006).
Stable identifiers and addresses: UUIDs, soft deletion, addresses that do not change (ADR 0005, ADR 0010).
Background tasks with django-q2 and the database as broker (ADR 0008).
No external resource and a strict Content Security Policy (ADR 0011).
English source, French shipped, no hard-coded string (ADR 0013).
The code is in src/housecairn/, one Django application per domain
(accounts, apitokens, core, events, homes, rooms).