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.
This commit is contained in:
Mathis H (Avnyr) 2025-05-14 12:50:40 +02:00
parent ddb83d838c
commit 4ccdb7ecaf

37
cdc.md
View File

@ -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 - 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 - 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 - **ShadcnUI**: Bibliothèque de composants UI pour un design cohérent
- Composants accessibles et personnalisables - Composants accessibles et personnalisables
- Thèmes adaptables pour le mode clair/sombre - 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 <package-name> <command>
# Exemple : démarrer le frontend uniquement
pnpm --filter web dev
# Installer une dépendance dans un package spécifique
pnpm --filter <package-name> add <dependency>
# Installer une dépendance de développement dans un package spécifique
pnpm --filter <package-name> add -D <dependency>
```
#### 2.2.3 Communication entre les Services
- API REST pour les opérations CRUD standard - API REST pour les opérations CRUD standard
- WebSockets via SocketIO pour les communications en temps réel - WebSockets via SocketIO pour les communications en temps réel
- Authentification via JWT pour sécuriser les échanges - 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: Le diagramme ci-dessous illustre les interactions entre les différents composants du système:
```mermaid ```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. 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 - 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 - CI/CD via GitHub Actions pour l'intégration et le déploiement continus
- Infrastructure scalable pour gérer les pics de charge - Infrastructure scalable pour gérer les pics de charge