📝 Note
personal/prieure/journal
fastapinextjspostgresqlcoolifyaie-invoicingportal
Journal — prieure
Sessions de travail · ordre antéchronologique Liens : Architecture · Decisions · TODO
2026-06-02 — Analyse profonde état du projet
Session d’analyse post-sprint : revue complète du codebase et mise à jour documentation.
✅ Fait
- Analyse de 50+ commits depuis scaffold initial
- Identification de tous les modules livrés (bien au-delà du plan Sprint 1→5)
- Documentation vault mise à jour (Journal, TODO, Architecture, Decisions)
🧠 Décisions
- Vault du projet dans
personal(décision utilisateur) - Documentation reflète l’état réel : tous les sprints complétés
⚠️ Points d’attention
- i18n FR/EN (next-intl) non implémenté — seul item Sprint 5 manquant
- Aucun test automatisé visible (pytest ni playwright)
- Infra migrée Scaleway → Hetzner + Coolify (voir Decisions)
➡️ Prochain
- Tests E2E (playwright) sur les flows critiques : devis, facturation, portail
- i18n front si clientèle internationale active
2026-05-27 — Stabilisation CI/CD prod (dernière activité git)
✅ Fait
- Fix healthcheck :
python3(curl absent image API) - Fix labels Traefik explicites (contourne bug Coolify
d0b3d92a) - Fix NEXT_PUBLIC vars via GitHub Actions build args
- Fix DATABASE_URL
postgres://→postgresql+asyncpg:// - Fix Suspense boundary sur prospects page (useSearchParams)
2026-05-22 — Infra Hetzner + Coolify + GitHub Actions GHCR
✅ Fait
- Migration infra Scaleway DEV1-S → Hetzner + Coolify
- Domaines :
prieure.fdubx.org/prieure-api.fdubx.org/prieure-db.fdubx.org - Workflows GHCR (
build-api.yml,build-web.yml) — push surmain→ build → deploy docker-compose.prod-coolify.yml— stack complète avec Caddy/Traefik géré par Coolify- Dockerfile.api : dépendances WeasyPrint (libgdk-pixbuf, libcairo2, fonts-liberation)
- Dockerfile.web : tsconfig ES2017, copy pnpm-lock.yaml pour flatpickr prod
🧠 Décisions
- Voir Decisions : migration Hetzner + Coolify
2026-05-21 — AI quote, Flatpickr, Portal magic link
✅ Fait
- Génération devis IA (Mistral) — résumé + lignes automatiques (
ai_quote.py) - Récapitulatif IA dans devis + édition/suppression devis
- Rédaction email IA + Flatpickr date range picker + palette email “terra”
- Magic link portail client (tokens single-use + middleware + cookies)
- Email auto création/reset accès portail
2026-05-20 — Comptabilité, EDL, Plan 2D, Signalements, e-Invoicing
✅ Fait
- Factures envoyées par email avec PDF pièce jointe
- Devis envoyés par email avec PDF pièce jointe
- Magic link automatique dans emails (créer accès, reset, facture)
- Programme événement + to-do list partagée admin/portail
- Tableau de bord routing fix + corrections SUPER PDP
- Plan 2D drag-drop éditeur (vue domaine avec zones éditables par drag)
- Panneau édition infos dans l’éditeur de plan
- Retours clients (signalements & améliorations) portail + admin
- Signature électronique EDL portail + devis portail
- Badge “Signé portail” sur liste devis admin
- Catalogue prestataires portail client avec sélections persistées
- Fix login portail : email insensible casse + conflit email unique
⚠️ Points d’attention
- Double head Alembic corrigé (
d409c5c2) — chaîne de migration fragile
2026-05-19 — SUPER PDP facturation électronique
✅ Fait
- Migrations : champs PDP sur clients, e-reporting sur factures, purchase_invoices
pdp_service.py+sync_pdp_events.py(Celery task)- Router
purchase_invoices+ routersignalements - Schema
purchase_invoice.py+ modelpurchase_invoice.py
2026-05-18 — Sprint 1→4 : scaffold → opérationnel complet
✅ Fait
- Scaffold monorepo + Docker Compose dev opérationnel
- FastAPI skeleton + health check + auth JWT (access 15min / refresh 7j)
- Migrations Alembic initial schema (toutes tables)
- Seeds : spaces, gites, articles, user admin
- Next.js 14 App Router + NextAuth + layout dashboard
- Tous modules métier : clients, prospects, events, calendrier, dashboard KPIs
- Devis (PDF, email, signature, IA), factures (PDF, email, paiement)
- EDL (templates par espace, signature, validation), maintenance, inventaire, staff
- Portail client (magic link, documents, hébergements, EDL, prestataires, médias)
- Médiathèque + consentement RGPD
- Plan 2D éditeur visuel, programme événement, to-do partagée
- Recherche globale, notifications, paramètres (articles, tarifs, espaces, gîtes)