Table des matières

Génération des artefacts techniques

Objectif

À ce stade, le projet dispose :

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 :


Livrable attendu

docs/openapi/

openapi.yaml

Taille estimée :


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 :


Recommandation

Le prochain document à produire devrait être :

OpenAPI YAML complet

car il permettra ensuite de générer automatiquement :

et deviendra la véritable source de référence technique du projet.

DokuWiki Appliance - Powered by TurnKey Linux