From 4dbb85878290eebd8ef449cc98e1df35eddacbf4 Mon Sep 17 00:00:00 2001 From: Avnyr Date: Thu, 15 May 2025 18:17:18 +0200 Subject: [PATCH] docs: update README with revised architecture and setup instructions Streamlined project structure documentation by detailing separate backend and frontend directories, updated setup commands, added Docker usage examples, and improved clarity on environment configuration. --- README.md | 100 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 405b055..57d7802 100644 --- a/README.md +++ b/README.md @@ -57,18 +57,23 @@ Cette application permet aux utilisateurs de créer et gérer des groupes de per ## 🏗️ Architecture Technique -L'application suit une architecture monorepo avec séparation claire entre le frontend et le backend: +L'application suit une architecture avec séparation claire entre le frontend et le backend: ``` / -├── apps/ -│ ├── web/ # Application frontend NextJS -│ └── api/ # Application backend NestJS -├── packages/ # Packages partagés -│ ├── database/ # Configuration DrizzleORM et modèles -│ ├── eslint-config/ # Configuration ESLint partagée -│ ├── tsconfig/ # Configuration TypeScript partagée -│ └── ui/ # Bibliothèque de composants UI partagés +├── backend/ # Application backend NestJS +│ ├── src/ # Code source du backend +│ │ ├── database/ # Configuration et schéma de base de données +│ │ │ ├── migrations/ # Système de migrations de base de données +│ │ │ └── schema/ # Schéma de base de données avec DrizzleORM +│ │ └── modules/ # Modules NestJS (auth, users, projects, etc.) +│ └── drizzle.config.ts # Configuration de DrizzleORM pour les migrations +├── frontend/ # Application frontend NextJS +│ ├── app/ # Pages et routes Next.js (App Router) +│ ├── components/ # Composants UI réutilisables +│ ├── hooks/ # Hooks React personnalisés +│ └── lib/ # Utilitaires et configurations +├── docs/ # Documentation du projet ``` ### Flux d'Interactions @@ -152,49 +157,66 @@ flowchart TD # Cloner le dépôt git clone git@git.yidhra.fr:WorkSimplon/brief-20.git -# Installer pnpm si ce n'est pas déjà fait -npm install -g pnpm +# Installer les dépendances du backend +cd backend +npm install -# Installer les dépendances -pnpm install - -# Configurer les variables d'environnement +# Configurer les variables d'environnement du backend cp .env.example .env # Éditer le fichier .env avec vos propres valeurs -# Démarrer l'application en mode développement -pnpm dev +# Installer les dépendances du frontend +cd ../frontend +npm install -# Construire l'application pour la production -pnpm build +# Configurer les variables d'environnement du frontend (si nécessaire) +cp .env.example .env.local (si le fichier existe) +# Éditer le fichier .env.local avec vos propres valeurs -# Démarrer l'application en mode production -pnpm start +# Démarrer le backend en mode développement +cd ../backend +npm run start:dev + +# Dans un autre terminal, démarrer le frontend en mode développement +cd ../frontend +npm run dev ``` -### Gestion du Workspace avec PNPM - -Ce projet utilise PNPM pour la gestion du workspace et des packages. PNPM offre plusieurs avantages : - -- **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 - -Pour travailler avec les différents packages du monorepo : +Vous pouvez également utiliser Docker pour démarrer l'application complète : ```bash -# Exécuter une commande dans un package spécifique -pnpm --filter +# À la racine du projet +docker-compose up -d +``` -# Exemple : démarrer le frontend uniquement -pnpm --filter web dev +### Gestion des Projets Backend et Frontend -# Installer une dépendance dans un package spécifique -pnpm --filter add +Ce projet est organisé en deux applications distinctes (backend et frontend) qui peuvent être développées et déployées séparément. Chaque application a ses propres dépendances et scripts npm. -# Installer une dépendance de développement dans un package spécifique -pnpm --filter add -D +Pour travailler avec les projets backend et frontend séparément : + +```bash +# Naviguer vers le répertoire backend +cd backend + +# Démarrer le backend en mode développement +npm run start:dev + +# Naviguer vers le répertoire frontend +cd ../frontend + +# Démarrer le frontend en mode développement +npm run dev +``` + +Vous pouvez également utiliser Docker Compose pour démarrer l'ensemble de l'application : + +```bash +# Démarrer tous les services (backend, frontend, base de données) +docker-compose up -d + +# Arrêter tous les services +docker-compose down ``` ## 🔒 Sécurité et Conformité