Forum Programmation.php Application de Gestion de Bibliothèque

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
-18
20
sept.
2026

Bonjour,

Je me permets de vous présenter un petit projet personnel sur lequel je travaille depuis quelque temps : GestionLivres.

À la base, je cherchais simplement un moyen de gérer ma propre collection de livres, BD et mangas. J'avais envie de quelque chose de relativement simple, que je puisse installer moi-même sur un hébergement web, sans dépendre d'un service en ligne.

J'ai donc développé une petite application en PHP/MySQL, avec Claude Code et entièrement en français.

L'ajout d'un livre se fait notamment à partir de son ISBN. L'application récupère automatiquement le titre, l'auteur et la couverture, en utilisant Google Books, puis Open Library et la BnF si nécessaire.

On peut ensuite organiser sa collection, créer des listes de lecture, déplacer les livres par glisser-déposer, ajouter des tags, indiquer son statut de lecture et écrire des notes personnelles. Il y a également une recherche avancée, des statistiques et différents formats d'export.

Le projet est prévu pour une utilisation personnelle, avec un seul utilisateur.

Le code et quelques captures sont disponibles ici :

https://github.com/abesneits/GestionLivres

Le projet est encore en évolution, donc je suis surtout intéressé par vos retours : bugs, idées de fonctionnalités, remarques sur l'installation ou simplement votre avis sur le concept.

Merci d'avance à ceux qui prendront le temps d'y jeter un œil.

  • # retour à l'envoyeur

    Posté par  (site web personnel) . Évalué à 3 (+1/-0).

    et l'étude de l'existant ?

    • [^] # Re: retour à l'envoyeur

      Posté par  . Évalué à 1 (+0/-0).

      Je n'ai pas trouvé de solution simple et en français, la plupart propose trop de fonctionnalité pour mon utilisation. D'où l'idée d'essayer de faire quelque chose de plus simple moi même et de le proposer.

      • [^] # Re: retour à l'envoyeur

        Posté par  (site web personnel) . Évalué à 6 (+4/-0). Dernière modification le 20 septembre 2026 à 13:23.

        L'étude de l'existant ne se limite pas aux logiciels similaires ; avant de se lancer dans des développements, on regarde tout de même les modèles de données et les fonctionnalités standards du domaine.

        Par exemple, il te manque la notion de série :

        • « Cycle de Fondation » pour Asimov pour les livres
        • idem pour les mangas

        Il te manque la notion de « à acheter » (ou emprunter à la bibliothèque pour garder trace de ce que tu as déjà lu…).

        Tu as l'air de te baser sur l'ISBN : comment fais-tu lorsqu'il n'y en a pas ? Recherches approchantes basées sur le titre ?

        Tu ne respectes aucune bonne pratique de développement :

        bref, non maintenable.

        • [^] # Re: retour à l'envoyeur

          Posté par  . Évalué à 1 (+0/-0).

          Merci d'avoir pris le temps de répondre. Je suis complétement débutant et je vais m'atteler à modifier mon projet.
          Je vais ajouter la fonction pour les séries je verrais plus tard pour le a acheter ou à emprunter qui ne m'intéresse pas pour le moment.
          J'ai fait une petite doc je vais l'ajouter dans le dossier.
          Quand il n'y as pas d'ISBN je fait un ajout manuel sans recherche par titre.

          • [^] # Re: retour à l'envoyeur

            Posté par  (site web personnel) . Évalué à 5 (+3/-0).

            Quand il n'y as pas d'ISBN je fait un ajout manuel sans recherche par titre.

            de l'intérêt de regarder l'existant… l'informatique c'est pour automatiser, pas s'embêter avec du manuel
            Tu te bases sur Google Books, Open Library et la BnF : ils ont sûrement d'autres données qui pourraient t'intéresser.
            Par exemple, la langue du bouquin.

            Plutôt que de saisir l'ISBN, le scanner serait plus pratique…

            et documenter les cas d'usage / besoins couverts :

            • à des fins de stats ? (tes données récupérées sont pauvres, il n'y a même pas l'éditeur, poche/grand format, la collection…)
            • en vue d'achats ou lectures ultérieures pour éviter de racheter ce que tu as déjà ?
            • tu auras besoin de listes en mode non connecté (ça ne capte pas super bien à Gibert Joseph ni dans pas mal de fnac…) et donc d'exports correctement formatés
            • pas d'appli mobile en vue (pour trimballer des listes…) ?
            • ainsi que lister des évolutions gardées pour la suite…
            • [^] # Re: retour à l'envoyeur

              Posté par  . Évalué à 2 (+1/-0).

              Merci encore d'avoir pris le temps de regarder, j'ai fait pas mal de modifications pour séparer contenu, fonctions, et formulaire, et mis à jour la doc et listé les évolutions possibles.

              • [^] # Re: retour à l'envoyeur

                Posté par  (site web personnel) . Évalué à 4 (+2/-0).

                moui, une première prise en compte de MVC. Effectivement, les notions de vue et de contrôleur sont les plus facilement compréhensibles (c'est ce avec quoi on interagit), mais tu sembles être passé à côté de la notion de modèle qui demande un peu plus d'abstraction :/ As-tu déjà fait de la programmation orientée objet ?

                Bon, au moins il y a le schéma de la base disponible pour une collection1. Mais ce n'est pas suffisant ;-)
                Typiquement, tu as conservé de la création de tables « à la volée » dans ton code : cela te fait 2 endroits où maintenir la cohérence du modèle, c'est contre-productif et source d'erreurs (même si ce n'est qu'un copier/coller…).

                Le MVC n'est pas l'idéal : pour un petit projet, cela oblige à modifier plusieurs fichiers pour ajouter une fonctionnalité (surtout quand il faut la propager à partir du modèle) et requiert une bonne vue de l'organisation de son code (ce que l'on n'a pas forcément au début). Mais en terme de maintenance et d'évolutions, cela permet d'avoir une méthode connue et classique.

                On pourrait revenir sur tes commits qui ne sont pas lisibles, mais c'est un autre axe d'améliorations :D (utilisation de branches par fonctionnalité/évolution/refactoring et non d'un dépôt privé).


                1. cadeau issu de ton schema.sql vois-tu 2-3 éléments incohérents de ton modèle de données ? (exemples : pas de lien entre table des auteurs et livres ? pourquoi la couverture n'est pas rattachée à livres et non listes_lecture ? pourquoi la description est dupliquée entre les deux tables ou ce n'est pas fonctionnellement la même ? et ce n'est qu'en première lecture :p). ↩

                • [^] # Re: retour à l'envoyeur

                  Posté par  (site web personnel) . Évalué à 4 (+2/-0).

                  Bon, au moins il y a le schéma de la base disponible pour une collection. Mais ce n'est pas suffisant ;-)

                  tu as gardé dans BookManager plein de définitions qui vont dans la partie modèle, typiquement.

                  Pour t'aider, tu peux découper ton code en

                  • modèle/
                  • vue/
                  • contrôleur/

                  ça sera dans des répertoires différents, mais ça te permet de mieux répartir ton code.

                  et concernant l'architecture, il te manque l'architecture fonctionnelle et ton architecture logicielle est plutôt une liste des pré-requis/logique d'appels, pas leurs interactions (donc pas une architecture).

                  Les fonctions à faire apparaître seraient par exemple : gestion de fiche, gestion de liste, statistiques, exports…. s'appuyant sur des fonctions édition en masse, de recherche/import interne ou en lien avec sites externes, sécurité… Et tu peux mettre à côté toutes tes fonctions non liées à l'appli elle-même (tests de non-régression, documentations utilisateur/logiciel/installation…)

                  Ton paragraphe de architecture.md « couche de données » mélange un peu tout et ne fait pas la séparation modèle / vue / contrôleur et doit être raccroché à l'architecture fonctionnelle.

      • [^] # Re: retour à l'envoyeur

        Posté par  (Mastodon) . Évalué à 8 (+6/-1). Dernière modification le 20 septembre 2026 à 14:00.

        D'où l'idée d'essayer de faire quelque chose de plus simple moi même

        Bravo tu as raison. Pondre du code ne coûte plus rien, autant se faire plaisir et utiliser des outils sur mesure.

        et de le proposer.

        Là, tu as moins raison. On s'en fout, en cas de besoin on pondra notre propre code basé sur notre besoin (qui par définition sera légèrement différent du tien).

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

  • # Bof

    Posté par  (site web personnel) . Évalué à 10 (+8/-0). Dernière modification le 20 septembre 2026 à 12:01.

    Vibe-codé avec Claude, 3 commits qui ont 14h et donc ne méritent en rien une grande annonce publique ici par un compte nouvellement créé, pas d'étude de l'existant. Point notable : le README est en français.

  • # À partir de combien de livres faut-il un gestionnaire de bibliothèque ?

    Posté par  . Évalué à 4 (+2/-0).

    J'ai quelques livres chez moi (sans doute autour d'un millier), et je ne me suis jamais trop posé la question de leur classement ou de leur inventaire. Quand je prête un livre, j'ai un bout de papier dans un tiroir, sur lequel je le note.

    Quelle est la motivation à suivre son inventaire personnel de livres de près ? Ça me rend un peu curieux. Pour des séries un peu copieuses comme certains mangas qu'on achète pas forcément dans l'ordre en fonction du chinage, je peux comprendre l'intérêt, mais sinon ?

  • # option papier/numérique epub

    Posté par  . Évalué à -1 (+0/-2).

    Bonjour, tout est dans le sujet, ajouter si c'est un version papier ou numérique.
    Même si le projet semble perfectible je suis toujours admiratif de ceux qui se lance.

    Bon courage.

    Desktop: Cinnamon v: 6.4.8 Distro: Linux Mint 22.2 Zara Kernel: 6.14.0-37-generic arch: x86_64 bits: 64

    • [^] # Re: option papier/numérique epub

      Posté par  . Évalué à 0 (+0/-1).

      Bonne remarque, je n'avais pas pensé au numérique (EPUB notamment). Je vais d'abord trier ma bibliothèque numérique avant de l'ajouter au projet.

      Merci pour votre message.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.