Ce document décrit le premier livrable logiciel réellement exécutable.
À l'issue de cette étape, un développeur doit pouvoir exécuter :
git clone rental-platform cd rental-platform docker compose up -d pnpm install pnpm dev
et obtenir :
rental-platform/ ├── apps/ │ │ ├── frontend/ │ └── backend/ │ ├── packages/ │ │ ├── sdk/ │ ├── ui/ │ ├── shared/ │ └── eslint-config/ │ ├── deployment/ │ │ ├── docker/ │ ├── kubernetes/ │ └── helm/ │ ├── docs/ │ ├── scripts/ │ ├── .github/ │ ├── docker-compose.yml │ ├── pnpm-workspace.yaml │ ├── turbo.json │ └── package.json
Turborepo + PNPM
{
"name": "rental-platform",
"private": true,
"packageManager": "pnpm@10",
"scripts": {
"dev": "turbo run dev",
"build": "turbo run build",
"lint": "turbo run lint",
"test": "turbo run test"
}
}
NextJS 15 React 19 TypeScript Tailwind TanStack Query React Hook Form Zod shadcn/ui
apps/frontend ├── src │ ├── app │ ├── components │ ├── features │ ├── generated │ ├── hooks │ ├── providers │ ├── styles │ └── types
http://localhost:3000
Affichage :
Rental Platform Frontend OK
NestJS Prisma PostgreSQL Redis Swagger Passport JWT
apps/backend ├── src │ ├── modules │ ├── core │ ├── infrastructure │ ├── shared │ ├── prisma │ └── test
GET /health
Réponse :
{
"status": "UP"
}
http://localhost:8080/docs
const config =
new DocumentBuilder()
.setTitle("Rental Platform API")
.setVersion("1.0.0")
.addBearerAuth()
.build();
apps/backend/prisma ├── schema.prisma ├── migrations ├── seed.ts
pnpm prisma migrate dev
PostgreSQL 16
rental_platform
rental_admin
redis://localhost:6379
Capturer les emails en local.
http://localhost:8025
Simulation S3 locale.
http://localhost:9001
frontend backend postgres redis mailhog minio
| Service | Port |
|---|---|
| Frontend | 3000 |
| Backend | 8080 |
| PostgreSQL | 5432 |
| Redis | 6379 |
| Mailhog | 8025 |
| MinIO Console | 9001 |
DATABASE_URL= REDIS_URL= JWT_SECRET= JWT_REFRESH_SECRET= SMTP_HOST= SMTP_PORT= S3_ENDPOINT= S3_ACCESS_KEY= S3_SECRET_KEY=
NEXT_PUBLIC_API_URL= NEXT_PUBLIC_APP_NAME=
Install ↓ Lint ↓ TypeCheck ↓ Tests ↓ Build
Install ↓ Lint ↓ Tests ↓ Build ↓ Prisma Validate
typescript-eslint
Prettier
Husky
feat: fix: refactor: test: docs:
npm audit snyk dependabot
Aucun secret dans Git.
Utilisation :
.env .env.local .env.production
Le bootstrap est terminé lorsque :
Une fois ce socle validé, le premier sprint métier recommandé est :
Module Authentification
À la fin du Sprint 1, les développeurs disposeront d'une plateforme sécurisée sur laquelle construire tous les autres modules métiers.