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

Framework NestJS 10 + TypeScript
HTTP Fastify
ORM TypeORM + PostgreSQL 16
Auth Auth0 (passport-jwt + jwks-rsa)
Cache NestJS CacheModule (in-memory)
Testing Jest + @nestjs/testing
Validation class-validator + Joi
Security Helmet, CSRF, Throttler
Docs Swagger / OpenAPI
Infra Docker Compose, AWS EC2, Nginx
CI GitHub Actions

Highlights

ArtFolio by ClementVallois

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

View on GitHub