You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
314 lines
9.5 KiB
Markdown
314 lines
9.5 KiB
Markdown
# 🎯 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 ! 🎉**
|