← Back

ArtFolio is a platform for artists to share their work and interact with their community. It was my final project at École O'Clock, and the one I invested the most into. I designed and built the entire backend: DDD architecture, auth, tests, CI/CD pipelines, and deployment.

DDD Architecture

The domain has zero dependencies on NestJS or TypeORM. Contracts are defined through interfaces in the domain layer.

00

Presentation

Controllers, Swagger, DTOs

01

Application

Use cases, validators, handlers

02

Domain

Entities, value objects, interfaces

03

Infrastructure

TypeORM repositories, Auth0, services

Tech Stack

Caching (NestJS CacheModule, in-memory with TTL) eases the load on PostgreSQL for data that is read often but rarely changes. Fastify was chosen over Express for its performance, well recognized in the Node.js ecosystem.

FrameworkNestJS 10 + TypeScript
HTTPFastify
ORMTypeORM + PostgreSQL 16
AuthAuth0 (passport-jwt + jwks-rsa)
CacheNestJS CacheModule (in-memory)
TestingJest + @nestjs/testing
Validationclass-validator + Joi
SecurityHelmet, CSRF, Throttler
DocsSwagger / OpenAPI
InfraDocker Compose, AWS EC2, Nginx
CIGitHub Actions

Highlights

ArtFolioby ClementVallois

Full NestJS backend with DDD architecture, Auth0, Docker Compose, and AWS EC2 deployment.

View on GitHub