Nuit d'Encre
Stack technique
TypeScriptReact 19GraphQLTypeORMPostgreSQLTailwind CSSDocker
Frontend
React 19 + TypeScript (Vite), React Router v7 (lazy loading, guards par rôle), Apollo Client, React Hook Form, Tailwind CSS 4 (design system maison, accessibilité, skeletons de chargement).
Backend
Apollo Server 4, TypeGraphQL, TypeORM + PostgreSQL 15. Authentification JWT en cookie HTTP-only (Argon2), gestion des rôles utilisateur/admin, validation double couche (frontend + class-validator).
Architecture
Monorepo pnpm workspaces, déploiement Docker Compose (frontend, backend et PostgreSQL 15 en services isolés).
Contexte
Conception et développement full-stack d'une plateforme sociale de bibliothèque en ligne, qui réunit la découverte d'ouvrages et le suivi de ses lectures dans une interface sobre et rapide.
Aperçus
Fonctionnalités clés
- Recherche hybride de livres (base interne + Google Books API + Open Library) avec import et complétion progressive des fiches.
- Système de gamification : XP par action, calcul de niveaux, titres et badges débloquables.
- Critiques et votes (une critique par utilisateur et par livre, bonus d'XP) et recommandations.
- Upload d'images (couvertures, avatars, bannières) via Cloudinary.
Ce que le projet démontre
Ce projet illustre ma capacité à concevoir et livrer seul une application full-stack complète, de la modélisation des données jusqu'à l'interface. Il met en avant la conception d'une API GraphQL typée de bout en bout, la sécurisation de l'authentification et des autorisations par rôles, l'intégration d'APIs tierces et l'industrialisation de l'environnement via une architecture conteneurisée. Au-delà de la technique, la gamification et la dimension sociale traduisent une réflexion produit centrée sur l'engagement des lecteurs.