From 4ccdb7ecaf699505b880f878e8fced0cbe479c5c Mon Sep 17 00:00:00 2001 From: Avnyr Date: Wed, 14 May 2025 12:50:40 +0200 Subject: [PATCH] docs: add SWR and PNPM usage details to documentation Documented the introduction of the SWR library for efficient data fetching along with key features. Added details about PNPM for workspace management, highlighting its benefits and usage examples. Adjusted section numbering accordingly. --- cdc.md | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/cdc.md b/cdc.md index 543d91c..1986cb0 100644 --- a/cdc.md +++ b/cdc.md @@ -23,6 +23,13 @@ L'application sera développée en utilisant les technologies suivantes: - Implémentation du SSR (Server-Side Rendering) pour améliorer le SEO et le temps de chargement initial - Utilisation des API Routes pour les endpoints spécifiques au frontend +- **SWR**: Bibliothèque React Hooks pour la récupération de données + - Mise en cache intelligente et revalidation automatique des données + - Stratégies de récupération optimisées (stale-while-revalidate) + - Gestion des états de chargement, d'erreur et de données + - Revalidation automatique lors du focus de la fenêtre et de la reconnexion réseau + - Déduplication des requêtes multiples vers le même endpoint + - **ShadcnUI**: Bibliothèque de composants UI pour un design cohérent - Composants accessibles et personnalisables - Thèmes adaptables pour le mode clair/sombre @@ -109,12 +116,36 @@ L'application suivra une architecture monorepo avec séparation claire entre le └── ... ``` -#### 2.2.2 Communication entre les Services +#### 2.2.2 Gestion du Workspace avec PNPM +Le projet utilise PNPM pour la gestion du workspace et des packages. PNPM offre plusieurs avantages par rapport à d'autres gestionnaires de packages: + +- **Efficacité de stockage**: Utilise un stockage partagé pour éviter la duplication des packages +- **Gestion de monorepo**: Facilite la gestion des dépendances entre les packages du monorepo +- **Performance**: Installation et mise à jour des dépendances plus rapides +- **Déterminisme**: Garantit que les mêmes dépendances sont installées de manière cohérente + +Exemples d'utilisation de PNPM dans le monorepo: + +```bash +# Exécuter une commande dans un package spécifique +pnpm --filter + +# Exemple : démarrer le frontend uniquement +pnpm --filter web dev + +# Installer une dépendance dans un package spécifique +pnpm --filter add + +# Installer une dépendance de développement dans un package spécifique +pnpm --filter add -D +``` + +#### 2.2.3 Communication entre les Services - API REST pour les opérations CRUD standard - WebSockets via SocketIO pour les communications en temps réel - Authentification via JWT pour sécuriser les échanges -#### 2.2.3 Architecture et Flux d'Interactions +#### 2.2.4 Architecture et Flux d'Interactions Le diagramme ci-dessous illustre les interactions entre les différents composants du système: ```mermaid @@ -182,7 +213,7 @@ Ce diagramme montre les principaux flux d'interactions: Cette architecture permet une séparation claire des responsabilités tout en offrant une expérience utilisateur fluide et réactive. -#### 2.2.4 Déploiement +#### 2.2.5 Déploiement - Conteneurisation avec Docker pour assurer la cohérence entre les environnements - CI/CD via GitHub Actions pour l'intégration et le déploiement continus - Infrastructure scalable pour gérer les pics de charge