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é