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