```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. ```