Consigne l'état de fin de journée du 2026-09-16 (déploiement réel, bugs corrigés, DA en cours)
This commit is contained in:
@@ -181,16 +181,18 @@ Comme les invités uploadent des photos pouvant contenir des visages d'autres pe
|
||||
|
||||
## 📦 7. Livrables attendus du développeur
|
||||
|
||||
État au 2026-09-15 (fin de journée) — voir `docs/decisions.md` pour les décisions actées et le SQL complet dans `supabase/migrations/`.
|
||||
État au 2026-09-16 (fin de journée) — voir `docs/decisions.md` pour les décisions actées et le SQL complet dans `supabase/migrations/`.
|
||||
|
||||
- [x] Page publique d'upload (`/e/{slug}`) — code écrit (`src/e/`), compression + HEIC + gestion d'erreurs. **Non testée en navigateur réel** (pas de projet Supabase live pour l'instant).
|
||||
- [x] Page admin galerie + export ZIP (`/admin/{slug}?token=...`) — code écrit (`src/admin/gallery/`), consomme l'Edge Function `admin-gallery`. **Non testée en réel**, dépend de l'Edge Function ci-dessous.
|
||||
- [x] Génération du QR code (export PNG/SVG imprimable) — code écrit (`src/admin/qrcode/`), page démo utilisable dès maintenant.
|
||||
- [ ] Schéma Supabase (tables `pq_events`/`pq_photos` + RLS + policies Storage) — **SQL écrit et relu (sécurité OK après corrections), PAS ENCORE APPLIQUÉ**. En attente de validation finale de Kévin avant `apply_migration`.
|
||||
- [x] Compression image côté client avant upload — `browser-image-compression`, intégrée dans `src/e/upload.js`.
|
||||
- [x] Gestion de l'expiration (statut événement, blocage upload, suppression J+7) — blocage upload prêt côté schéma (`event_accepts_uploads`) ; job SQL `pq_expire_events` (pg_cron) écrit. **Reste ouvert** : mécanisme de déclenchement de la suppression des fichiers Storage (pg_net vs n8n, cf. `docs/decisions.md`) — à trancher avant implémentation.
|
||||
- [x] Mention RGPD intégrée sur la page upload — texte de `docs/rgpd.md` repris verbatim.
|
||||
- [x] Edge Function admin (liste photos + ZIP) — code écrit (`supabase/functions/admin-gallery/`), ZIP en streaming. **Non déployée, dépendance `zip.js` non testée en environnement réel** — à vérifier via `supabase functions serve` avant tout déploiement.
|
||||
- [x] Page publique d'upload (`/e/{slug}`) — **déployée et testée en réel** sur `https://photobooth.assistantaikev.eu/e/{slug}`, upload confirmé depuis un vrai téléphone.
|
||||
- [x] Page admin galerie + export ZIP (`/admin/{slug}?token=...`) — **déployée et testée en réel**, ZIP en streaming fonctionnel.
|
||||
- [x] Génération du QR code (export PNG/SVG imprimable) — déployée (`/admin/qrcode/`), + carton imprimable A5 bonus (`/admin/print-template/`).
|
||||
- [x] Schéma Supabase (schéma dédié `photobooth`, jamais exposé via PostgREST, accès via fonctions `SECURITY DEFINER`) — **appliqué et vérifié** sur le projet définitif `kevin-lecou-hub`.
|
||||
- [x] Compression image côté client avant upload — `browser-image-compression`, testée en conditions réelles.
|
||||
- [x] Gestion de l'expiration — blocage upload actif, job SQL `pq_expire_events`→`expire_events` (pg_cron) actif et vérifié planifié. Purge des fichiers Storage : Edge Function `expire-events` déployée et testée manuellement ; **déclenchement automatique (workflow n8n) créé mais pas encore activé** (credentials à finaliser côté Kévin).
|
||||
- [x] Mention RGPD — déplacée d'un bloc permanent vers une modale de bienvenue au 1er passage par événement (demande Kévin), texte légal inchangé, toujours consultable via un lien dédié.
|
||||
- [x] Edge Functions admin (`admin-gallery`, `expire-events`) — déployées et testées en réel sur `kevin-lecou-hub`.
|
||||
- [x] **Nouveau** : limite de photos par invité, réglable par événement (`max_photos_per_guest`), appliquée côté serveur.
|
||||
- [x] **Nouveau** : 3 passes de direction artistique (palette punchy corail/prune/doré, mode sombre automatique, finition animations/micro-interactions) — DA jugée "pas mal" par Kévin mais **pas encore validée définitivement** (retour direct : "pas encore vraiment fan des couleurs"), itération à poursuivre.
|
||||
- [ ] Documentation courte : comment créer un nouvel événement manuellement (en attendant l'automatisation n8n en V2) — pas encore rédigée.
|
||||
- [ ] Code source versionné (repo Git — **à préciser : GitHub perso de Kévin, ou autre ?** ⚠️ point ouvert) — dépôt local Git existant, pas de remote configuré à ce stade.
|
||||
|
||||
|
||||
@@ -5,6 +5,43 @@ la date à laquelle elles ont été prises. Toute nouvelle décision structurant
|
||||
(schéma DB, auth, hébergement, etc.) doit être ajoutée ici après validation
|
||||
par Kévin.
|
||||
|
||||
## 2026-09-16 (récap fin de journée)
|
||||
|
||||
Produit passé de "code écrit, rien de déployé" à **réellement en ligne et
|
||||
testé** : `https://photobooth.assistantaikev.eu` (VPS Hostinger, nginx +
|
||||
Traefik), backend sur le projet Supabase définitif `kevin-lecou-hub`.
|
||||
|
||||
- **Bugs réels trouvés et corrigés en cours de route** (tous via tests en
|
||||
conditions réelles, pas en théorie) :
|
||||
- MIME type `.mjs` mal servi par nginx (bloquait tout le JS qui importe
|
||||
un module vendorisé — upload invité ET générateur QR étaient cassés).
|
||||
- Chemins relatifs (`style.css`, `config.js`, `gallery.js`) cassés sur les
|
||||
URLs réécrites `/e/<slug>` et `/admin/<slug>` — passage en chemins
|
||||
absolus partout.
|
||||
- Bug de cascade CSS présent **depuis le tout premier commit** :
|
||||
`display: flex` déclaré en dur sur `.upload-form`/`.welcome-modal`
|
||||
empêchait `hidden` (JS) de masquer quoi que ce soit visuellement — le
|
||||
formulaire est resté affiché en permanence, superposé aux autres états,
|
||||
sans que personne ne s'en rende compte avant un test réel.
|
||||
- Faille d'abus sur `insert_public_photo` (spam de lignes sans upload
|
||||
réel) — corrigée, vérification d'existence du fichier Storage ajoutée.
|
||||
- **Nouvelle fonctionnalité** : limite de photos par invité par événement
|
||||
(`max_photos_per_guest`), appliquée côté serveur via un `guest_id`
|
||||
anonyme (localStorage) — pas une identité vérifiée, contournable, mais
|
||||
fait respecter la vraie limite côté base.
|
||||
- **RGPD** : mention légale déplacée d'un bloc permanent vers une modale de
|
||||
bienvenue personnalisée (nom de l'événement) au premier passage par
|
||||
événement — texte légal inchangé, juste la présentation.
|
||||
- **Direction artistique** : 3 passes (palette sobre → palette punchy
|
||||
corail/prune/doré/Fraunces → mode sombre + finition animations). Statut
|
||||
au 2026-09-16 soir : jugée "pas mal, vraiment fonctionnel" par Kévin,
|
||||
mais **couleurs/DA pas encore validées définitivement** — Kévin prévoit
|
||||
un retour détaillé à l'agent direction-artistique lors d'une prochaine
|
||||
session.
|
||||
- **Reste ouvert** : activation du workflow n8n de purge Storage
|
||||
(credentials à créer côté Kévin), documentation de création d'un
|
||||
événement (encore manuel en SQL), remote Git à définir.
|
||||
|
||||
## 2026-09-15
|
||||
|
||||
- **Expiration des données** : suppression à **J+7 à partir de la date de
|
||||
|
||||
Reference in New Issue
Block a user