Ma Bibliothèque — Médiathèque familiale

État : Prototype

Période
À compléter selon la période réelle du développement.
Stack
  • PHP 8.3
  • Laravel 12
  • Filament 3
  • SQLite
  • Tailwind CSS 4
  • Vite
  • Docker
  • Caddy

En bref

Ma première application web de gestion d’une médiathèque familiale : catalogue de livres, BD et jeux, recherche par ISBN, prêts, réservations, collections et avis. Une interface mobile accessible comme une application installable, complétée par une administration Filament et un déploiement Docker sur serveur Linux.

Le besoin

La gestion d’une bibliothèque familiale devient rapidement complexe lorsque les livres, bandes dessinées, jeux et collections se multiplient. Il faut pouvoir retrouver facilement un ouvrage, savoir qui l’a emprunté, suivre les retours et éviter les oublis ou les doublons.

Ce projet répond à ce besoin par une application centralisée permettant à chaque membre de la famille de consulter le catalogue, d’emprunter ou de réserver un document et de partager ses avis. Une interface d’administration complète facilite la gestion du catalogue, des profils, des collections et des prêts.

Choix d'architecture

L’application repose sur Laravel 12 et PHP 8.3, avec SQLite pour la persistance des données et Filament 3 pour l’administration. Les interfaces sont séparées selon leurs usages : un espace familial accessible via /famille, pensé pour une utilisation sur téléphone, et une administration accessible via /admin.

Tailwind CSS 4 et Vite assurent la compilation des styles. Le déploiement s’appuie sur Docker, avec des conteneurs distincts pour PHP-FPM et Nginx, derrière Caddy comme reverse proxy HTTPS.

Le code est développé sur le poste de travail puis versionné sur GitHub avant d’être récupéré sur le serveur. Cette organisation évite les modifications directes du code en production et facilite la maintenance et les mises à jour.

Ma contribution

Conception et développement de l’application, de la gestion du catalogue à l’interface familiale, en passant par l’administration et les fonctionnalités de prêt et de réservation.

Mise en place de l’intégration de sources bibliographiques externes pour faciliter l’ajout des ouvrages, des mécanismes de détection des doublons, des exports et des outils de suivi des emprunts.

Préparation du déploiement Docker sur un serveur Linux personnel, gestion du reverse proxy HTTPS et organisation des mises à jour à travers GitHub.

Difficulté technique et résolution

L’un des enjeux est de maintenir la cohérence entre le catalogue et les opérations de prêt. Un même document ne doit pas être prêté simultanément à plusieurs membres, et son statut doit rester cohérent avec son historique.

La gestion des réservations nécessite également de suivre une file d’attente et de distinguer les disponibilités réelles des documents déjà empruntés.

L’import bibliographique représente un autre défi : plusieurs sources externes peuvent fournir des informations différentes ou incomplètes. La recherche par ISBN, la récupération des couvertures et la détection des doublons facilitent la constitution d’un catalogue fiable.

Enfin, l’application doit rester agréable à utiliser sur un écran mobile, tout en proposant une administration adaptée aux tâches de gestion plus avancées.

Tests, sécurité et déploiement

Le projet dispose d’une suite de tests automatisés exécutable avec php artisan test, prévue pour vérifier le comportement des fonctionnalités et limiter les régressions.

La sélection des profils peut être protégée par un code PIN à quatre chiffres, avec une limite de cinq tentatives par minute. Les exports PDF et JSON sont réservés aux administrateurs connectés.

Le déploiement utilise Docker avec PHP-FPM et Nginx, derrière Caddy pour l’accès HTTPS. Le code source est versionné sur GitHub et les mises à jour sont réalisées depuis le dépôt, sans modifier directement les fichiers applicatifs sur le serveur.

La base SQLite, les couvertures et les autres données persistantes doivent être incluses dans une stratégie de sauvegarde adaptée.

Résultat

L’application est déployée sur un serveur personnel et accessible en ligne. Elle propose un espace familial et une administration permettant de gérer le catalogue, les emprunts, les réservations, les collections et les profils.

L’interface familiale peut être ajoutée à l’écran d’accueil d’un téléphone ou d’une tablette pour offrir un accès direct, dans une présentation proche de celle d’une application mobile.

Ce projet illustre la réalisation d’une application web complète, depuis la conception fonctionnelle jusqu’au développement, aux tests, à la conteneurisation et au déploiement.

Limites et améliorations envisagées

Les possibilités d’évolution concernent notamment le renforcement des sauvegardes et de la restauration, l’amélioration du suivi des prêts et des réservations, ainsi que l’enrichissement des données bibliographiques.

La qualité des informations importées dépend des sources externes et de leur disponibilité. L’utilisation de plusieurs catalogues permet de couvrir davantage de références, mais ne garantit pas que chaque ouvrage soit retrouvé ou décrit intégralement.

Les évolutions futures pourront également porter sur l’ergonomie mobile, les rappels de retour et la facilité de maintenance, en fonction des besoins constatés lors de l’utilisation.