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

# 🎯 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 ! 🎉**