```dokuwiki id="project-bootstrap-roadmap"
====== Passage du dossier d'architecture au socle de code ======
===== État actuel du projet =====
Le projet dispose désormais de tous les livrables d'architecture nécessaires :
* Cahier des charges fonctionnel
* Modèle de données PostgreSQL
* UML complet
* Architecture Hexagonale NestJS
* Architecture Frontend NextJS
* OpenAPI 3.1
* Backlog Agile
* UX/UI
* DevOps & Industrialisation
Le risque principal n'est plus un manque de documentation mais une divergence entre la documentation et le code.
----
====== Nouvelle stratégie ======
À partir de maintenant, la documentation doit devenir :
Documentation = générée depuis le code
et non
Code = généré depuis la documentation
L'objectif est donc de produire un socle de code unique qui devient la source de vérité.
----
====== Ordre réel de génération recommandé ======
===== Phase A : Fondation =====
Objectif :
Obtenir un projet exécutable en moins d'une journée.
Livrables :
* Monorepo
* Docker Compose
* PostgreSQL
* Redis
* NestJS
* NextJS
* Prisma
* CI/CD minimal
Résultat :
docker compose up
↓
Application accessible
↓
Connexion base PostgreSQL
↓
Swagger accessible
↓
NextJS accessible
----
===== Phase B : Modèle de données =====
Livrables :
* Prisma Schema
* Migrations
* Seed Data
* Factories
Résultat :
npx prisma migrate dev
↓
Base complète créée
↓
Données de démonstration injectées
----
===== Phase C : Backend =====
Livrables :
* Entités domaine
* DTO
* Use Cases
* Controllers
* Repositories
Modules prioritaires :
* Auth
* Users
* Properties
* Reservations
Résultat :
Premier backend fonctionnel.
----
===== Phase D : Frontend =====
Livrables :
* Design System
* Auth
* Recherche
* Fiche Bien
* Réservation
Résultat :
Premier parcours utilisateur complet.
----
===== Phase E : Production =====
Livrables :
* Kubernetes
* Monitoring
* Sauvegardes
* Sécurité
Résultat :
Version SaaS exploitable.
----
====== Monorepo cible ======
rental-platform/
├── apps/
│
│ ├── frontend/
│ └── backend/
│
├── packages/
│
│ ├── sdk/
│ ├── shared/
│ ├── ui/
│ └── config/
│
├── deployment/
│
├── docs/
│
└── scripts/
----
====== Livrable n°1 ======
===== Monorepo =====
Le premier livrable réellement utile n'est pas Prisma ni OpenAPI.
C'est :
Monorepo complet
+
Docker Compose
+
NestJS
+
NextJS
+
Prisma
Pourquoi ?
Parce qu'il permet immédiatement :
* Démarrer le projet
* Créer les branches Git
* Développer en parallèle
* Valider les pipelines
* Déployer un environnement Dev
----
====== Livrable n°2 ======
===== Prisma Schema =====
À partir du modèle PostgreSQL :
80 à 90 tables
↓
Prisma Schema
↓
Migrations
↓
Seed Data
Le schéma Prisma devient ensuite la référence des données.
----
====== Livrable n°3 ======
===== OpenAPI réel =====
Le document OpenAPI produit précédemment sert désormais à générer :
DTO
SDK
Swagger
Validation
Tests
Mais il doit être généré depuis les contrôleurs NestJS.
----
====== Livrable n°4 ======
===== Génération SDK =====
Source :
NestJS
↓
Swagger
↓
OpenAPI
↓
SDK Frontend
et non l'inverse.
----
====== Livrable n°5 ======
===== Helm + Kubernetes =====
Uniquement lorsque :
* MVP terminé
* Tests validés
* Recette réalisée
----
====== Décision d'architecture ======
Pour ce projet, la pile recommandée est :
Frontend
NextJS 15
TypeScript
TanStack Query
Tailwind
shadcn/ui
Backend
NestJS
Prisma
PostgreSQL
Redis
Infra
Docker
GitHub Actions
Kubernetes
Monitoring
Prometheus
Grafana
Loki
----
====== Ce qu'il reste réellement à produire ======
Les documents sont désormais suffisants.
Les artefacts techniques prioritaires sont :
^ Priorité ^ Livrable ^
| P1 | Monorepo |
| P1 | Docker Compose |
| P1 | Prisma Schema |
| P1 | NestJS Bootstrap |
| P1 | NextJS Bootstrap |
| P2 | CI/CD |
| P2 | SDK |
| P2 | Helm Charts |
| P3 | Terraform |
----
====== Recommandation finale ======
Le prochain livrable ne devrait plus être un document.
Le prochain livrable devrait être :
Repository initial complet
avec
- Monorepo
- NextJS
- NestJS
- Prisma
- PostgreSQL
- Redis
- Docker Compose
- GitHub Actions
Ce livrable constitue le véritable point de départ du développement.
À partir de là, chaque sprint produira du code métier plutôt que de la documentation supplémentaire.
```