diff --git a/CLAUDE.md b/CLAUDE.md index 39c8b2f..46c6aba 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,6 +2,8 @@ Ce fichier donne le contexte complet du projet à Claude Code. Lis-le en entier avant de commencer à coder. +Voir aussi **`IDEES.md`** : améliorations identifiées mais **non encore actées**. Rien n'y fait autorité — ce fichier-ci reste la référence. + ## Objectif du projet Application self-hosted de gestion de bibliothèque personnelle, à héberger sur YunoHost, accessible depuis smartphone et PC. diff --git a/IDEES.md b/IDEES.md new file mode 100644 index 0000000..22ff925 --- /dev/null +++ b/IDEES.md @@ -0,0 +1,76 @@ +# IDEES.md — améliorations envisagées + +Ce fichier recueille les idées et corrections identifiées en cours de route, **pas encore implémentées**. Il n'a pas valeur de décision : rien ici n'est acté tant que ce n'est pas repris dans `CLAUDE.md` ou traité dans une phase. + +Le travail visuel de fond (couleurs, typographie, mise en page) est repoussé volontairement : il sera fait quand les fonctionnalités seront en place. + +--- + +## Interface — retours d'usage + +### Agrandir la couverture au clic + +Cliquer sur l'image d'un livre doit l'afficher en grand. Aujourd'hui elle est figée à la taille de la vignette. + +À prévoir : gérer le cas où il n'y a pas de couverture (le substitut à initiale ne doit pas être cliquable), et la fermeture au clic extérieur ou via Échap. + +### Statut de lecture en lecture seule dans la liste + +Actuellement les trois boutons *À lire* / *En cours* / *Lu* sont modifiables directement depuis chaque fiche du catalogue. Ils devraient être **en lecture seule** à cet endroit, et remontés **au niveau de la ligne du type de livre**. + +La modification du statut se fera alors depuis l'écran d'édition. + +### N'afficher que « Numérique » + +Le format ne doit apparaître **que pour les ebooks**. Un livre est **physique par défaut** — c'est le cas majoritaire, l'afficher partout n'apporte rien et alourdit la liste. + +Conséquence à vérifier au moment de l'implémenter : le formulaire d'ajout doit alors proposer *Physique* comme valeur par défaut sélectionnée, et non un choix vide. + +### Fiche livre en lecture seule, avec bouton « Éditer » + +Cliquer sur un livre ouvre aujourd'hui directement l'édition. Il faudrait afficher **la même page en lecture seule**, avec un bouton pour basculer en modification. + +Évite les modifications accidentelles, notamment sur mobile où l'on ouvre une fiche simplement pour la consulter. + +### Regrouper les livres par auteur + +Cliquer sur le nom d'un auteur doit afficher **tous les livres de cet auteur présents dans la bibliothèque**. + +Point d'attention : l'auteur est aujourd'hui un simple champ texte sur `Livre`, sans table dédiée. Un regroupement par égalité de chaîne fonctionnera pour l'essentiel, mais échouera sur les variantes d'orthographe (« Émile Zola » vs « Emile Zola »). À rapprocher du point sur les accents ci-dessous. + +--- + +## Qualité des données + +### Titres BnF contenant le nom de l'auteur + +**Cas constaté** — ISBN `9782749942636` : + +``` +dc:title = "Le plus grand défi de l'histoire de l'humanité : face à la + catastrophe écologique et sociale (Nouvelle éd. augmentée) + Aurélien Barrau" +dc:creator = "Barrau, Aurélien (1973-....). Auteur du texte" +``` + +Le nom de l'auteur est collé en fin de titre **sans le séparateur ISBD ` / `**. La règle de nettoyage documentée dans `CLAUDE.md` ne peut donc pas s'appliquer : il n'y a pas de ponctuation à couper. Ce n'est ni un doublon, ni un défaut de notre parsing — la notice est sale à la source. + +Correction envisagée : une fois `dc:creator` nettoyé, si le titre **se termine** par ce nom exact, le retirer. Heuristique volontairement stricte (comparaison en fin de chaîne uniquement) pour ne pas mutiler les titres qui contiennent légitimement un nom de personne. + +### Recherche insensible aux accents + +« Emile » ne trouve pas « Émile ». Gênant sur un fonds francophone, et lié au regroupement par auteur ci-dessus. + +--- + +## Pour plus tard — livres souhaités + +Idée de fonctionnalité, **hors périmètre v1**, à ne pas implémenter sans décision explicite. + +Pouvoir suivre les livres qu'on aimerait acquérir. Le déclencheur serait le regroupement par auteur : en cliquant sur un auteur déjà présent dans la bibliothèque (exemple donné : Bernard Werber), afficher **sa bibliographie complète**, avec les ouvrages déjà possédés grisés — et la possibilité de marquer les autres comme souhaités. + +Ce que ça impliquerait, à évaluer le moment venu : + +- Une source pour les bibliographies par auteur. La BnF sait interroger par auteur, mais l'ordre et l'exhaustivité restent à vérifier ; OpenLibrary expose les œuvres liées à un auteur. +- Un moyen d'identifier un auteur de façon stable, donc probablement une **table `Auteur`** plutôt que le champ texte actuel — c'est le changement de modèle le plus lourd de cette idée. +- Un statut « souhaité » distinct des statuts de lecture existants, ou une entité séparée pour ne pas mélanger inventaire et liste d'envies.