# 🎯 Guide de Démarrage Rapide Bienvenue dans le projet **BricoLoc Architecture Evolution** ! --- ## 🚀 Démarrage Rapide (5 minutes) ### Étape 1 : Vérifier les prérequis ```bash # Node.js node --version # Doit être >= v20.x # pnpm pnpm --version # Doit être >= 9.x # Git git --version # Doit être >= 2.x ``` **Pas installé ?** → Suivre [Setup WSL Guide](docs/guides/setup-wsl.md) ### Étape 2 : Explorer la Documentation | Document | Description | Temps de Lecture | |----------|-------------|------------------| | **[README.md](README.md)** | Vue d'ensemble du projet | 10 min | | **[ARCHITECTURE.md](ARCHITECTURE.md)** | Architecture détaillée | 20 min | | **[Cahier des Charges](docs/specifications/cahier-des-charges.md)** | Spécifications complètes | 15 min | | **[Roadmap](docs/roadmap.md)** | Planning 10 semaines | 10 min | | **[ADR](docs/architecture/ADR/)** | Décisions architecturales | 5 min / ADR | ### Étape 3 : Comprendre l'Architecture ``` ┌─────────────────────────────────────────────────┐ │ Applications BricoLoc │ ├─────────────────┬───────────────────────────────┤ │ LEGACY │ MODERNE │ │ Node.js/Express│ Next.js 14 + Supabase │ │ Monolithe │ Microservices Hybride │ │ 2013-2025 │ 2025+ │ └─────────────────┴───────────────────────────────┘ ``` **Objectif** : Démontrer l'évolution d'une architecture monolithique vers une architecture microservices moderne. --- ## 📂 Structure du Projet ``` bricoloc-architecture-evolution/ │ ├── apps/ # Applications principales │ ├── legacy/ # Application Legacy (à créer) │ └── moderne/ # Application Moderne (à créer) │ ├── packages/ # Packages partagés │ ├── microservices/ # 6 microservices │ │ ├── auth/ │ │ ├── catalogue/ │ │ ├── reservation/ │ │ ├── inventory/ │ │ ├── payment/ │ │ └── notification/ │ │ │ └── shared/ # Code partagé │ ├── types/ │ ├── ui/ │ ├── utils/ │ ├── di/ # Dependency Injection │ └── events/ # Event Bus │ ├── docs/ # Documentation complète ✅ │ ├── architecture/ │ │ ├── ADR/ # Architecture Decision Records │ │ └── c4-diagrams.md # Diagrammes C4 │ ├── specifications/ │ │ └── cahier-des-charges.md │ ├── guides/ │ │ ├── setup-wsl.md │ │ └── git-workflow.md │ └── roadmap.md │ ├── tools/ # Outils et scripts │ ├── README.md # Vue d'ensemble ✅ ├── ARCHITECTURE.md # Architecture détaillée ✅ ├── CONTRIBUTING.md # Guide de contribution ✅ ├── LICENSE # MIT License ✅ ├── package.json # Scripts pnpm ✅ ├── pnpm-workspace.yaml # Configuration workspaces ✅ ├── tsconfig.base.json # TypeScript config ✅ └── eslint.config.mjs # ESLint config ✅ ``` **Légende** : - ✅ Déjà créé (Sprint 0 - Documentation) - 🔲 À créer (Sprints 1-5) --- ## 📖 Documentation Disponible ### Architecture & Design | Fichier | Contenu | Statut | |---------|---------|--------| | **ARCHITECTURE.md** | Architecture microservices hybride, patterns SOLID | ✅ | | **ADR-001** | Mono-repo avec pnpm workspaces | ✅ | | **ADR-002** | Next.js 14 framework frontend | ✅ | | **ADR-003** | Supabase backend (PostgreSQL, Auth, Realtime) | ✅ | | **ADR-004** | Architecture microservices (6 services) | ✅ | | **ADR-005** | Patterns (Repository, Service Layer, DI, Factory, Observer) | ✅ | | **C4 Diagrams** | Diagrammes Context, Container, Component (Mermaid) | ✅ | ### Guides Pratiques | Fichier | Contenu | Statut | |---------|---------|--------| | **setup-wsl.md** | Installation Node.js, pnpm, Git, VS Code, Supabase | ✅ | | **git-workflow.md** | Git Flow, branches, commits, PR process | ✅ | | **CONTRIBUTING.md** | Standards de code, tests, documentation | ✅ | ### Planning & Spécifications | Fichier | Contenu | Statut | |---------|---------|--------| | **roadmap.md** | 10 semaines, 5 sprints, 215h estimé, User Stories | ✅ | | **cahier-des-charges.md** | Contexte, objectifs, contraintes, livrables | ✅ | --- ## 🎯 Prochaines Étapes ### Sprint 0 : Fondations (Semaines 1-2) - EN COURS #### ✅ Semaine 1 : Documentation (TERMINÉE) - [x] ✅ Structurer le mono-repo - [x] ✅ Rédiger README.md et ARCHITECTURE.md - [x] ✅ Créer Cahier des Charges - [x] ✅ Rédiger 5 ADR - [x] ✅ Créer diagrammes C4 - [x] ✅ Créer Roadmap détaillée - [x] ✅ Initialiser Git (commit initial) #### 🔲 Semaine 2 : Setup Technique (À FAIRE) - [ ] 🔲 Installer dépendances (`pnpm install`) - [ ] 🔲 Créer structure `apps/legacy/` - [ ] 🔲 Créer structure `apps/moderne/` - [ ] 🔲 Setup Supabase (projet + tables) - [ ] 🔲 Configuration CI/CD (GitHub Actions) - [ ] 🔲 Premier déploiement test **Commandes** : ```bash # 1. Installer les dépendances pnpm install # 2. Créer la structure apps/ mkdir -p apps/legacy apps/moderne # 3. Setup Supabase # → Aller sur supabase.com et créer un projet # 4. Commit git add . git commit -m "chore: setup project structure and dependencies" ``` --- ## 💡 Conseils Importants ### Pour Démarrer 1. **Lire d'abord** : README.md → ARCHITECTURE.md → Roadmap 2. **Comprendre l'objectif** : C'est un projet **d'architecture**, pas juste de développement 3. **Documentation first** : La doc est aussi importante que le code 4. **Architecture patterns** : Focus sur Repository, Service Layer, DI, Event Bus ### Pendant le Développement - ✅ **Commits fréquents** : Toutes les 30min - 2h - ✅ **Tests avant push** : `pnpm lint`, `pnpm type-check`, `pnpm test` - ✅ **Branches feature** : `feature/nom-descriptif` - ✅ **Pull Requests** : Même si seul, pour traçabilité - ✅ **ADR** : Documenter chaque décision architecturale importante ### Ressources Utiles - **Clean Architecture** : https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html - **Microservices Patterns** : https://microservices.io/ - **DDD** : https://martinfowler.com/bliki/DomainDrivenDesign.html - **SOLID** : https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design --- ## 🤝 Contribution Si vous travaillez en équipe ou souhaitez contribuer : 1. Lire [CONTRIBUTING.md](CONTRIBUTING.md) 2. Suivre [Git Workflow](docs/guides/git-workflow.md) 3. Respecter les standards de code (ESLint, Prettier, TypeScript strict) --- ## 📊 État d'Avancement ### Sprint 0 (Fondations) : **50% Terminé** | Tâche | Statut | Responsable | |-------|--------|-------------| | Documentation Architecture | ✅ Terminée | - | | ADR (5 documents) | ✅ Terminée | - | | Diagrammes C4 | ✅ Terminée | - | | Roadmap | ✅ Terminée | - | | Guides (Setup, Git) | ✅ Terminée | - | | Configuration tooling | ✅ Terminée | - | | Setup technique | 🔲 À faire | - | | Structure apps/ | 🔲 À faire | - | | Supabase setup | 🔲 À faire | - | ### Prochains Sprints - **Sprint 1** (Semaines 3-4) : Application Legacy - **Sprint 2** (Semaines 5-6) : Foundation Moderne - **Sprint 3** (Semaines 7-8) : Catalogue & Inventory - **Sprint 4** (Semaine 9) : Reservation & Payment - **Sprint 5** (Semaine 10) : Finitions & Présentation --- ## 🎓 Compétences Démontrées ### Architecture Logicielle - ✅ Décomposition en microservices - ✅ Clean Architecture (DDD) - ✅ Event-Driven Architecture - ✅ API Gateway / BFF Pattern ### Design Patterns - ✅ Repository Pattern - ✅ Service Layer Pattern - ✅ Dependency Injection - ✅ Factory Pattern - ✅ Observer Pattern ### Principes SOLID - ✅ Single Responsibility - ✅ Open/Closed - ✅ Liskov Substitution - ✅ Interface Segregation - ✅ Dependency Inversion --- ## 📞 Support - **Documentation** : Dossier `docs/` - **Issues** : GitHub Issues (si repo public) - **Questions** : Voir `CONTRIBUTING.md` --- **Dernière mise à jour** : Octobre 2025 **Auteur** : MAALSI Architecture Project **License** : MIT --- ## 🚀 Commandes Rapides ```bash # Installer les dépendances pnpm install # Développement Legacy pnpm dev:legacy # Développement Moderne pnpm dev:moderne # Les deux en parallèle pnpm dev:all # Build pnpm build:all # Tests pnpm test # Linting pnpm lint # Format code pnpm format ``` --- **Prêt à commencer ?** → Lire [README.md](README.md) puis [ARCHITECTURE.md](ARCHITECTURE.md) **Bon développement ! 🎉**