ArtFolio
Réseau social pour artistes, backend NestJS avec architecture DDD
ArtFolio est une plateforme permettant aux artistes de partager leurs œuvres et d'interagir avec leur communauté. C'est mon projet de fin de formation à l'École O'Clock, et aussi celui sur lequel j'ai le plus investi. J'ai conçu et développé l'intégralité du backend : de l'architecture DDD aux pipelines CI/CD, en passant par l'auth, les tests et le déploiement.
Architecture DDD
Le domaine n'a aucune dépendance vers NestJS ou TypeORM. Les contrats sont définis par des interfaces dans la couche domain.
Presentation
Controllers, Swagger, DTOs
Application
Use cases, validators, handlers
Domain
Entities, value objects, interfaces
Infrastructure
Repositories TypeORM, Auth0, services
Stack technique
Redis sert de cache pour les requêtes fréquentes et de session store pour Auth0. Choix de Fastify (au lieu d'Express) pour les perfs brutes : 2x le throughput sur les benchmarks NestJS.
Points forts
- Architecture DDD avec couches domain, application, infrastructure et presentation
- 25 tests (unitaires + intégration), CI verte
- Transactions avec rollback et cleanup filesystem
- Auth0 avec guards et permissions par route
- Swagger complet pour la documentation API
- Docker Compose : backend + 2 frontends Vue.js + PostgreSQL + SonarQube
- Déployé sur AWS EC2 avec Nginx