====== Génération des artefacts techniques ======
===== Objectif =====
À ce stade, le projet dispose :
* du cahier des charges,
* de l'architecture fonctionnelle,
* du modèle de données,
* du modèle UML,
* de l'architecture Frontend,
* de l'architecture Backend,
* du backlog,
* du plan DevOps.
L'étape suivante consiste à produire les artefacts techniques directement exploitables par les développeurs.
----
====== Ordre recommandé de génération ======
L'ordre est important car certains artefacts dépendent des précédents.
^ Ordre ^ Livrable ^ Priorité ^
| 1 | Monorepo Frontend/Backend | Critique |
| 2 | Configuration NestJS | Critique |
| 3 | Configuration NextJS | Critique |
| 4 | OpenAPI YAML complet | Critique |
| 5 | DTO TypeScript | Critique |
| 6 | Entités Prisma / TypeORM | Critique |
| 7 | Docker Compose | Haute |
| 8 | GitHub Actions | Haute |
| 9 | Helm Charts Kubernetes | Haute |
| 10 | Terraform Infrastructure | Moyenne |
----
====== Monorepo cible ======
rental-platform/
├── apps/
│
│ ├── frontend/
│ └── backend/
│
├── packages/
│
│ ├── shared-types/
│ ├── ui-kit/
│ ├── sdk/
│ └── eslint-config/
│
├── docs/
│
├── deployment/
│
├── scripts/
│
└── .github/
----
====== Frontend ======
===== Arborescence =====
apps/frontend
├── src
│
├── public
│
├── generated
│
├── tests
│
├── package.json
│
└── next.config.ts
----
====== Backend ======
===== Arborescence =====
apps/backend
├── src
│
├── prisma
│
├── test
│
├── package.json
│
└── nest-cli.json
----
====== OpenAPI ======
===== Objectif =====
L'OpenAPI devient la source de vérité.
Tout est généré à partir de lui :
* SDK
* DTO
* Validation
* Swagger
* Documentation
----
===== Livrable attendu =====
docs/openapi/
openapi.yaml
Taille estimée :
* 8000 à 12000 lignes
----
====== Génération SDK ======
===== Frontend =====
openapi-generator-cli generate \
-g typescript-fetch
----
===== Résultat =====
packages/sdk
├── api.ts
├── models.ts
├── services.ts
└── index.ts
----
====== Entités Prisma ======
===== Source =====
Le schéma PostgreSQL précédemment défini.
----
===== Exemple =====
model Property {
id String @id @default(uuid())
code String @unique
title String
status String
ownerId String
owner Owner @relation(
fields: [ownerId],
references: [id]
)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
----
====== Entités TypeORM ======
===== Exemple =====
@Entity("properties")
export class Property {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column()
title: string;
@Column()
status: string;
}
----
====== Docker Compose ======
===== Objectif =====
Démarrage local complet.
----
===== Services =====
frontend
backend
postgres
redis
mailhog
minio
----
===== Commande =====
docker compose up -d
----
====== GitHub Actions ======
===== Pipeline Frontend =====
lint
typecheck
test
build
docker
deploy
----
===== Pipeline Backend =====
lint
unit-test
integration-test
build
docker
deploy
----
====== Helm Charts ======
===== Structure =====
deployment/
helm/
├── frontend
├── backend
├── postgres
├── redis
└── ingress
----
====== Variables Kubernetes ======
DATABASE_URL
REDIS_URL
JWT_SECRET
SMTP_HOST
S3_ENDPOINT
STRIPE_SECRET
----
====== Repository Git ======
===== Branches =====
main
develop
feature/*
release/*
hotfix/*
----
====== Livrables techniques restants ======
Les documents qui n'ont pas encore été détaillés et qui représentent le plus de valeur sont :
* OpenAPI YAML complet (250 endpoints)
* Prisma Schema complet (80+ tables)
* Entités NestJS TypeORM
* Monorepo Turborepo
* Docker Compose complet
* GitHub Actions complètes
* Helm Charts Kubernetes
* Terraform Infrastructure AWS/OVH
----
====== Recommandation ======
Le prochain document à produire devrait être :
**OpenAPI YAML complet**
car il permettra ensuite de générer automatiquement :
* SDK Frontend
* DTO NestJS
* Validation Zod
* Swagger
* Documentation API
* Mock Server
* Tests contractuels
et deviendra la véritable source de référence technique du projet.