Scolaire
Biblio-City — application React de recherche de livres
Application web React et TypeScript réalisée en binôme pour rechercher et consulter des livres, à partir de l'API Open Library, avec un enrichissement par Wikipédia.
Ma contribution
J'ai pris en charge l'essentiel de la mise en place et de l'implémentation de l'application : structure React/TypeScript, navigation, accueil, fiche livre, composants principaux et configuration initiale des tests. Mon coéquipier a notamment développé les liens de navigation auteur / catégorie et fortement enrichi et restructuré la suite de tests.
Points clés
- Recherche avancée par titre, auteur, sujet et année, synchronisée avec l'URL
- Fiche livre détaillée, avec navigation vers les auteurs et les sujets
- Tests de composants avec Jest et Testing Library
Objectif
Construire une application web de recherche et de consultation de livres, sans backend propre : les données viennent de l’API publique Open Library, et certaines fiches sont complétées par un résumé issu de Wikipédia.
Architecture
Une application monopage en React 19 et TypeScript, construite avec Vite et mise en forme avec Tailwind. La navigation passe par React Router, entre trois vues : l’accueil, la recherche avancée et la fiche d’un livre. L’état reste local aux composants, et les critères de recherche sont portés par les paramètres d’URL : une recherche peut être partagée ou rechargée telle quelle. Les pages appellent directement les API externes.
Fonctionnalités
- Recherche rapide par titre, depuis la barre de navigation.
- Recherche avancée par titre, auteur, sujet et année de publication, synchronisée avec l’URL, avec une remise à zéro des filtres.
- Fiche livre : couverture, description, auteurs, informations de la première édition (date, éditeur, lieu, nombre de pages, format, ISBN-13), nombre d’éditions et sujets. Les auteurs et les sujets mènent à une nouvelle recherche.
- Enrichissement Wikipédia : un résumé de la page correspondant au titre du livre.
- États de chargement et d’erreur sur les vues qui appellent les API.
Tests
Des tests automatisés avec Jest et Testing Library couvrent les cartes de livre, la barre de recherche et la fiche livre, y compris son cas d’erreur, ainsi que les appels aux API Open Library et Wikipédia, simulés. L’accueil, la recherche avancée et la navigation entre les pages ne sont pas couverts.
Limites
Certaines fonctions prévues n’ont pas été finalisées, notamment les suggestions de recherche et la pagination des résultats. L’enrichissement Wikipédia repose sur le titre du livre et peut donc renvoyer une page homonyme.