# 🐐 Memegoat - Roadmap & Critères de Production Ce document définit les objectifs, les critères techniques et les fonctionnalités à atteindre pour que le projet Memegoat soit considéré comme prêt pour la production et conforme aux normes européennes (RGPD) et françaises. ## 1. 🏗️ Architecture & Infrastructure - [x] Backend NestJS (TypeScript) - [x] Base de données PostgreSQL avec Drizzle ORM - [x] Stockage d'objets compatible S3 (MinIO) - [x] Service d'Emailing (Nodemailer / SMTPS) - [x] Documentation Technique & Référence API (`docs.memegoat.fr`) - [x] Health Checks (`/health`) - [x] Gestion des variables d'environnement (Validation avec Zod) - [ ] CI/CD (Build, Lint, Test, Deploy) ## 2. 🔐 Sécurité & Authentification - [x] Hachage des mots de passe (Argon2id) - [x] Gestion des sessions robuste (JWT avec Refresh Token et Rotation) - [x] RBAC (Role Based Access Control) fonctionnel - [x] Système de Clés API (Hachées en base) - [x] Double Authentification (2FA / TOTP) - [x] Limitation de débit (Rate Limiting / Throttler) - [x] Validation stricte des entrées (DTOs + ValidationPipe) - [x] Protection contre les vulnérabilités OWASP (Helmet, CORS) ## 3. ⚖️ Conformité RGPD (EU & France) - [x] Chiffrement natif des données personnelles (PII) via PGP (pgcrypto) - [x] Hachage aveugle (Blind Indexing) pour l'email (recherche/unicité) - [x] Journalisation d'audit complète (Audit Logs) pour les actions sensibles - [x] Gestion du consentement (Versionnage CGU/Politique de Confidentialité) - [x] Droit à l'effacement : Flux de suppression (Soft Delete -> Purge définitive) - [x] Droit à la portabilité : Export des données utilisateur (JSON) - [x] Purge automatique des données obsolètes (Signalements, Sessions expirées) - [x] Anonymisation des adresses IP (Hachage) dans les logs ## 4. 🖼️ Fonctionnalités Coeur (Media & Galerie) - [x] Exploration (Trends, Recent, Favoris) - [x] Recherche par Tags, Catégories, Auteur, Texte - [x] Gestion des Favoris - [x] Upload sécurisé via S3 (URLs présignées) - [x] Scan Antivirus (ClamAV) et traitement des médias (WebP, WebM, AVIF, AV1) - [x] Limitation de la taille et des formats de fichiers entrants (Configurable) - [x] Système de Signalement (Reports) et workflow de modération - [ ] SEO : Metatags dynamiques et slugs sémantiques ## 5. ✅ Qualité & Robustesse - [ ] Couverture de tests unitaires (Jest) > 80% - [ ] Tests d'intégration et E2E - [x] Gestion centralisée des erreurs (Filters NestJS) - [ ] Monitoring et centralisation des logs (ex: Sentry, ELK/Loki) - [x] Performance : Cache (Redis) pour les tendances et recherches fréquentes