Architecture¶
HouseCairn est une application Django, avec HTMX pour les parties interactives, dans un seul conteneur. Les règles principales, chacune consignée dans une décision :
Une seule couche de services porte les règles métier ; les vues web et les vues d’API l’appellent et n’en ont aucune en propre (ADR 0002).
Parité web et API : ce que fait l’interface web, l’API le fait aussi, vérifié par un test (ADR 0003).
Chaque requête est bornée aux logements de l’utilisateur, ou du jeton d’API (ADR 0006).
Identifiants et adresses stables : UUID, suppression logique, adresses qui ne changent pas (ADR 0005, ADR 0010).
Tâches de fond avec django-q2 et la base de données comme file (ADR 0008).
Aucune ressource externe et une Content Security Policy stricte (ADR 0011).
Anglais comme langue source, français livré, aucune chaîne en dur (ADR 0013).
Le code est dans src/housecairn/, une application Django par domaine (accounts, apitokens, core, events, homes, rooms).