GRDN Freelance
← Retour aux projets

Nexus — Journal culturel personnel

App web React pour tracker films, séries, livres, jeux et musique

ReactTypeScriptDev personnel

Application de journal culturel multi-catégories (films, séries, livres, jeux, musique) avec recherche multi-API, wishlist, profil et visualisations statistiques.

Rôle : Développeur (solo)Durée : 2025 - en cours
Voir le projet en ligne ↗
Nexus — Journal culturel personnel

Contexte

D'où on part.

  • Besoin personnel de tracker sa consommation culturelle dans un seul endroit
  • 5 catégories de médias → 4 APIs différentes à normaliser
  • Hébergement statique (GitHub Pages) → pas de backend, persistance localStorage
  • Stack moderne : React 19 + Vite + TypeScript + Tailwind CSS v4

Objectif

Ce que je vise.

  • Créer une vraie app utilisable au quotidien, pas juste un exercice
  • Concevoir un pattern d'adapter unifié pour normaliser toutes les APIs
  • Proposer une UI soignée avec des stats et un profil culturel visuel
  • Déployer proprement sur GitHub Pages avec HashRouter

Ce que j'ai fait

Actions concrètes.

  • Architecture adapter pattern : chaque API normalisée en NormalizedMedia
  • Recherche multi-API avec filtres, pagination et dédoublonnage
  • Journal (LogMediaModal) avec tags, notes, dates et états de lecture
  • Wishlist persistée en localStorage
  • Profil avec 'ADN culturel' (recharts), top 10 et export/import JSON
  • Gestion des edge cases API (OpenLibrary TypedText, MusicBrainz 404...)

Outils & méthodes

Stack et pratiques utilisées.

  • React 19
  • Vite
  • TypeScript
  • Tailwind CSS v4
  • TMDB API
  • OpenLibrary
  • RAWG
  • MusicBrainz
  • localStorage
  • GitHub Pages

Résultats

Neutre et factuel.

  • App déployée et utilisée au quotidien sur https://gardenny.github.io/nexus/
  • 4 APIs intégrées et normalisées avec un pattern unifié
  • Journal, wishlist et profil fonctionnels avec persistance locale
  • Visualisations statistiques avec recharts (répartition, top 10)

Ce que j'ai appris

Synthèse perso.

  • Normaliser des APIs hétérogènes avec un adapter pattern évite la dette technique
  • Concevoir pour un usage réel pousse à soigner les edge cases
  • TypeScript + localStorage suffisent pour une app personnelle robuste
  • L'architecture initiale conditionne la facilité d'évolution

Projet similaire ?

Travaillons ensemble.

Travailler ensemble →