493cf806151197437ac70266ce819d9fce65f63e
SQLite ne sait pas comparer sans tenir compte des accents : sa collation NOCASE ne couvre que l'ASCII et il n'existe pas de unaccent() integre. La seule facon d'obtenir « Emile » vers « Émile » sans charger tout le catalogue en memoire est de stocker la forme mise a plat, et d'y chercher un terme passe par exactement la meme fonction. NormalisationTexte fait cette mise a plat. La ponctuation y devient une espace au lieu de disparaitre : « P.F. Hamilton » doit donner trois mots, sans quoi le rapprochement par initiales serait impossible. RapprochementAuteurs porte la frontiere decidee dans CLAUDE.md. La cle de regroupement — mots normalises tries — couvre casse, accents et ordre inverse, et servira d'index unique. Les initiales abregees lui echappent : elles demandent d'aligner les mots un a un, avec retour arriere, parce qu'une correspondance gloutonne echouerait sur « P. Peter » face a « Peter Paul ». Le verdict est a trois niveaux, et l'asymetrie est deliberee : ne pas fusionner laisse deux fiches a reunir d'un clic, alors qu'une fusion erronee melange les livres de deux personnes et se defait mal. Un patronyme seul face a un nom complet ressort donc « suggere », jamais « certain ». Meme exigence sur l'alignement complet : « P. H. » et « Peter Hamilton » s'alignent par les seules initiales, ce qui ne concorde sur rien de verifiable — un mot entier commun est exige. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
MaBibli
Application de gestion de bibliothèque personnelle, self-hosted sur YunoHost.
Demande initiale
Gérer une bibliothèque personnelle (livres physiques et numériques), avec :
- Liste des livres physiques
- Liste des livres ebooks
- Gestion de prêts — prêter un livre à quelqu'un, marquer comme récupéré, historique des prêts
- Récupération automatique des infos via ISBN (titre, auteur, éditeur, couverture) — scan caméra + saisie manuelle
- Consultation hors-ligne de la bibliothèque existante (le lookup ISBN, lui, nécessite le réseau)
- Statuts de lecture — à lire, en cours, lu, etc.
Contraintes techniques
- Langage : C# / ASP.NET Core
- Frontend : Blazor WebAssembly, en PWA (installable, utilisable hors-ligne pour la consultation de la bibliothèque déjà enregistrée)
- Scan code-barres : ZXing.Net (décodage EAN-13 en C#, pas de bibliothèque JS tierce)
- Accès : smartphone (GSM) et PC, via navigateur
- Multi-utilisateur : géré via le SSO de YunoHost (en-têtes SSOwat, pas d'auth custom) — collection commune au foyer, avec traçabilité de qui a ajouté chaque livre
- Base de données : SQLite
- Hébergement : YunoHost, en installation native (sans Docker) — packaging façon
_ynh, inspiré de radarr_ynh (déploiement .NET self-contained, pas de dépendance dotnet-runtime côté système) - Sources ISBN : cascade BnF (SRU) puis OpenLibrary — bases libres, sans clé API, pas de dépendance à Google Books. La BnF passe en premier pour la couverture du fonds francophone. Voir
CLAUDE.mdpour le détail - Ebooks : fiches d'inventaire uniquement, les fichiers ne sont pas hébergés par l'application
Statut
Projet en tout début de structuration. Voir CLAUDE.md pour le contexte complet à destination de Claude Code.
Releases
2
Languages
C#
67.8%
HTML
25.8%
CSS
4%
JavaScript
2.2%
Dockerfile
0.2%