docs: overhaul and expand technical documentation

Revamped the documentation structure and content to enhance usability and organization. Added detailed sections on architecture, pipeline, security, API reference, deployment steps, compliance, and supported modules. Introduced new visuals like cards, accordions, and callouts for improved readability and navigation.
This commit is contained in:
Mathis HERRIOT
2026-01-08 15:29:56 +01:00
parent 8b51b84d44
commit 99a350aa05
10 changed files with 463 additions and 82 deletions

View File

@@ -3,55 +3,73 @@ title: Fonctionnalités Techniques
description: Détails des fonctionnalités clés du projet Memegoat
---
## 🚀 Fonctionnalités Techniques
# 🚀 Fonctionnalités Techniques
Le projet Memegoat intègre un ensemble de fonctionnalités avancées pour garantir une expérience utilisateur fluide, sécurisée et performante.
### 📧 Emailing
Le système intègre un service d'envoi d'emails pour :
- La vérification des comptes lors de l'inscription.
- La récupération de mots de passe.
- Les notifications de sécurité (nouvelles connexions, changements de profil).
- Les alertes de modération.
## 🏗️ Infrastructure & Médias
### 📤 Publication & Traitement
Le coeur de la plateforme permet la publication sécurisée de mèmes et de GIFs avec un pipeline de traitement complet :
<Cards>
<Card icon="🛡️" title="Sécurité (Antivirus)" description="Chaque fichier uploadé est scanné en temps réel par ClamAV." />
<Card icon="🎞️" title="Transcodage" description="Conversion automatique vers WebP (images) et WebM (vidéos)." />
<Card icon="✅" title="Validation" description="Contrôle strict des formats (png, jpeg, webp, webm, gif) et des tailles." />
</Cards>
#### Détails du Pipeline :
- **Transcodage Haute Performance** :
- **Images & GIFs** : Conversion vers **WebP** (via `sharp`). Support de l'**AVIF** intégré.
- **Vidéos** : Conversion vers **WebM** (VP9/Opus via `ffmpeg`). Support de l'**AV1** implémenté.
- **Validation Stricte** :
- Limites de taille configurables (par défaut : 512 Ko pour les images, 1024 Ko pour les GIFs).
- **Gestion du Cycle de Vie** : Support du **Soft Delete** (Droit à l'oubli) et de la restauration temporaire.
### 📦 Stockage S3 (MinIO)
Pour la gestion des médias, Memegoat utilise **MinIO**, une solution de stockage d'objets compatible S3, auto-hébergée.
- **Sécurité** : Le serveur MinIO est isolé dans le réseau interne de Docker et n'est pas exposé directement sur internet.
- **Accès** : Le Backend fait office de proxy ou génère des URLs présignées pour l'accès aux fichiers, garantissant un contrôle total sur la diffusion des contenus.
- **Performance** : Optimisé pour le service rapide de fichiers volumineux comme les GIFs.
Pour la gestion des médias, Memegoat utilise **MinIO**, une solution de stockage d'objects compatible S3, auto-hébergée.
<Callout type="info" title="Isolation Réseau">
Le serveur MinIO est isolé dans le réseau interne de Docker et n'est pas exposé directement sur internet. Le Backend fait office de proxy ou génère des URLs présignées.
</Callout>
---
## 🔍 Expérience Utilisateur
### 🔍 SEO & Partage
La plateforme est optimisée pour le référencement naturel et le partage social :
- **Metatags dynamiques** : Génération de balises OpenGraph et Twitter Cards pour chaque mème.
- **Metatags dynamiques** : Le Backend détecte les robots (Twitter, Facebook, Google) et sert un rendu HTML spécifique avec les balises OpenGraph et Twitter Cards.
- **URLs Sémantiques** : Chaque mème possède un slug unique généré à partir de son titre (ex: `memegoat.fr/contents/mon-super-meme`).
- **Indexation** : Structure sémantique HTML5 et Sitemap dynamique.
- **Rendus côté serveur (SSR)** : Utilisation de Next.js pour un affichage instantané et une indexation parfaite par les robots.
- **Rendus côté serveur (SSR)** : Utilisation de Next.js pour un affichage instantané pour les utilisateurs.
### 🔗 URLs de Terminaison
À l'instar de plateformes comme Tenor, Memegoat utilise des structures d'URLs courtes et sémantiques :
- Format : `memegoat.fr/m/[slug-unique]` ou `memegoat.fr/g/[slug-unique]`.
- Les slugs sont générés de manière à être lisibles par l'humain tout en garantissant l'unicité.
### ⚡ Performance & Cache
Pour garantir une réactivité maximale, Memegoat utilise plusieurs niveaux de cache :
- **Cache Redis** : Les résultats des requêtes fréquentes (tendances, exploration) sont stockés dans un cache Redis côté serveur.
- **Directives HTTP** : Utilisation rigoureuse des headers `Cache-Control` pour permettre la mise en cache par les navigateurs et les CDNs.
---
## 🛡️ Gouvernance & Sécurité
### 🕵️ Audit des Actions
Chaque action sensible sur la plateforme est tracée dans la table `audit_logs` :
- Modification de profil, suppression de contenu, changements de permissions.
- Enregistrement de l'auteur, de l'action, de l'horodatage et des détails techniques (IP hachée, User-Agent).
- Outil essentiel pour la sécurité et la conformité RGPD.
### 👤 Gestion du Profil
Un système complet de gestion de profil permet aux utilisateurs de :
- Gérer leurs informations personnelles (nom d'affichage, avatar).
- Configurer la **Double Authentification (2FA)**.
- Consulter leurs sessions actives et révoquer des accès.
- Les données sensibles sont protégées par **chiffrement PGP** au repos.
### 🚩 Gestion des Signalements
<Callout type="info">
Toutes les données sensibles du profil sont protégées par **chiffrement PGP** au repos.
</Callout>
### 🚩 Modération & Signalements
Un système de modération intégré permet de maintenir la qualité du contenu :
- Signalement de contenus (mèmes, GIFs) ou de tags inappropriés.
- Workflow de traitement : `pending` -> `reviewed` -> `resolved` / `dismissed`.
- Signalement de contenus ou de tags inappropriés.
- Workflow : `pending` -> `reviewed` -> `resolved` / `dismissed`.
- Purge automatique des signalements obsolètes pour respecter la minimisation des données (RGPD).
### 📤 Publication de Contenu
Le coeur de la plateforme permet la publication de mèmes et de GIFs :
- Support des formats images standards et animés.
- Système de **Tags** pour catégoriser et faciliter la recherche.
- Gestion du cycle de vie des contenus (Publication, Edition, Soft Delete).