Files

3.0 KiB

CLAUDE.md — photobooth-qr

Contexte

Application web de galerie photo événementielle par QR code.

Principe : les invités d'un événement (mariage, soirée, etc.) scannent un QR code, arrivent sur une page d'upload, et déposent leurs photos/vidéos qui atterrissent dans une galerie consultable par l'organisateur/admin. À la fin, l'admin peut exporter toutes les photos en ZIP.

Développé par Kévin Lecou, auto-entrepreneur, mixologue (projet Rêves Liquides). Ce projet est distinct de Rêves Liquides mais peut lui servir d'outil.

  • V1 : usage personnel de Kévin (ses propres événements / tests).
  • V2 / V3 : vente du service à des clients externes (mariages, événementiel professionnel). Le projet doit donc être pensé dès le début pour être multi-clients et réutilisable, sans pour autant sur-ingénierer la V1.

Stack imposée

  • Supabase pour la base de données (Postgres) et le stockage (Storage).
  • Front léger, mobile-first, sans framework lourd (pas de React/Vue/Next sauf décision contraire explicite plus tard). HTML/CSS/JS vanilla ou micro-lib, en priorité.
  • Pas d'application native.
  • Pas de compte invité : les invités uploadent sans créer de compte, sans authentification.

Contraintes non négociables

  1. Écoconception

    • Compression image côté client obligatoire avant upload (jamais envoyer une photo brute non compressée vers Supabase Storage).
    • Minimiser le nombre de requêtes réseau et le poids des pages.
    • Toujours proposer, par défaut, le choix le plus sobre en dépendances et en requêtes réseau — pas de librairie ajoutée "par confort" si une solution native (fetch, Canvas API, etc.) suffit.
  2. RGPD

    • Mention légale obligatoire sur la page d'upload (voir docs/rgpd.md).
    • Suppression automatique des données (photos + métadonnées) à échéance fixée (voir docs/decisions.md pour la règle exacte : J+7 après la date de l'événement, indépendamment du téléchargement du ZIP).
  3. Pas de dette technique inutile

    • Le projet est pensé pour durer et être réutilisé sur plusieurs clients (multi-tenant logique via la table events).
    • Éviter les raccourcis qui compliqueraient le passage V1 → V2/V3 (ex : éviter de hardcoder des valeurs propres à un seul événement).
    • Mais ne pas sur-architecturer non plus : pas de fonctionnalité pour un besoin hypothétique non encore confirmé par Kévin.

Mode de collaboration

  • Avant toute décision structurante (schéma de base de données, mécanisme d'authentification/admin, choix d'hébergement, changement de stack), demander confirmation à Kévin avant de trancher seul et d'implémenter. Proposer les options avec leurs compromis, pas juste une question ouverte.
  • Toute décision actée est à consigner dans docs/decisions.md.
  • Ne pas inventer de credentials, URLs, ou valeurs de config manquantes — demander si besoin (cf. règle globale dans ~/.claude/CLAUDE.md).