mathieuandClaude Opus 5 b6c4dbaa08 Decoupe la documentation par audience, et corrige trois defauts
Le README faisait 691 lignes, dont 295 de procedure de mise en production —
que personne ne lit avant d'avoir decide d'installer le projet. Or c'est le
premier document lu. Il tombe a 86 lignes et devient un aiguillage.

Un document, un lecteur, une question :

  README.md                    c'est quoi ?              un visiteur
  docs/installer.md            comment je l'heberge ?    qui installe
  docs/publier-une-version.md  comment je sors une v. ?  qui maintient
  docs/architecture.md         pourquoi le code ainsi ?  qui contribue

Trois defauts sortis de la comparaison entre le README et le tour du projet,
dont deux introduits ce matin :

⚠ Le README se contredisait sur example.org. Son « Journal du paquet »
documentait comme une panne reglee (« l'installation s'arretait net ») le
placeholder que le nettoyage vient de retablir. Ce n'est pas une regression —
publier.sh refuse desormais de publier avec, ce qui etait precisement le
garde-fou manquant en aout — mais qui lisait le journal concluait l'inverse.
Le journal est supprime : c'est de l'historique, il vit dans les commits et
dans CLAUDE.md.

⚠ La fusion des migrations n'etait nulle part. La section « Monter de version »
decrivait pas a pas une procedure qui echouerait depuis toute version anterieure
a la 0.5.0, et son « Si la mise a jour echoue » ne mentionnait pas cette cause.
L'avertissement est desormais en tete du README, d'installer.md et de la section
concernee.

⚠ Les trois portees — commune, personnelle, trace — decident de tout dans ce
projet et etaient absentes de son point d'entree. Elles ouvrent architecture.md.

Verifie : aucune ancre morte, aucun lien mort, et les 41 lignes non reprises
sont soit condensees dans le nouveau README, soit du journal supprime a dessein.
Trois d'entre elles sont revenues (build/dist ignore, l'inspiration radarr_ynh,
le renvoi aux commentaires de systemd.service).

626 tests au vert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 13:30:42 +02:00

MaBibli

Gestion de bibliothèque personnelle, auto-hébergée, pensée pour un foyer. Catalogue, prêts, scan de code-barres, consultation hors-ligne.

  • Catalogue des livres physiques et des ebooks — fiches uniquement, aucun fichier n'est hébergé. Revues et séries ont leurs propres fiches.
  • Prêts — à qui, depuis quand, et l'historique complet.
  • Scan ISBN au code-barres depuis le téléphone, ou saisie manuelle, avec pré-remplissage du titre, de l'auteur, de l'éditeur et de la couverture.
  • Statuts de lecture personnels — chacun sa progression, sur une collection commune.
  • Liste d'envies personnelle, exportable en .txt et .csv.
  • Consultation hors-ligne — PWA installable ; la bibliothèque reste consultable et cherchable sans réseau.

Les métadonnées viennent de la BnF puis d'OpenLibrary, deux sources libres et sans clé d'API. Aucune dépendance à Google Books.

Documentation

Document Répond à Pour qui
docs/installer.md Comment je l'héberge ? qui installe, sur YunoHost ou ailleurs
docs/publier-une-version.md Comment je sors une version ? qui maintient le projet
docs/architecture.md Pourquoi le code est ainsi ? qui veut comprendre ou contribuer
mabibli_ynh/doc/ADMIN.md Où sont les données, qui a accès ? l'administrateur, après installation

CLAUDE.md porte le contexte complet et l'historique des décisions, avec leurs mesures — y compris les raisonnements qui se sont révélés faux, gardés exprès pour ne pas les reconduire. IDEES.md recueille les pistes non actées.

En bref

Trois projets .NET, un seul processus en production : le client Blazor WebAssembly est compilé en fichiers statiques que l'API sert elle-même.

MaBibli.Client  ─┐
MaBibli.Shared  ─┼──►  dotnet publish MaBibli.Api  ──►  un service systemd
MaBibli.Api     ─┘         (self-contained)             sur 127.0.0.1
Backend C# / ASP.NET Core, .NET 10
Frontend Blazor WebAssembly, en PWA
Base SQLite + EF Core
Scan zbar compilé en WebAssembly (LGPL-2.1)
Authentification SSO YunoHost, via les en-têtes SSOwat — pas d'auth propre
Hébergement YunoHost, installation native (sans Docker)

Trois contraintes ne se négocient pas : x86_64, HTTPS (sans quoi le scan caméra ne s'ouvre jamais) et un domaine entier, pas un sous-chemin. Le pourquoi est dans docs/architecture.md.

Démarrer

dotnet build && dotnet test
dotnet run --project MaBibli.Api

L'API sert aussi le client compilé : une seule commande suffit.

⚠️ Avant de publier ce projet quelque part

Les URL de dépôt sont un placeholder volontaire, https://forge.example.org/mabibli. Une seule ligne les commande toutes — depot_code, en tête de mabibli_ynh/build/publier.sh — et publier.sh refuse de publier tant qu'elle n'est pas changée. Le détail est dans docs/publier-une-version.md.

⚠️ Depuis la 0.5.0, aucune base antérieure n'est migrable

Les migrations ont été fondues en une seule. Sur un serveur déjà installé, il faut remove --purge puis réinstaller, avec perte du catalogue — voir docs/installer.md.

Licence

AGPL v3 — voir LICENSE. L'AGPL attend que les utilisateurs d'un service en réseau puissent en obtenir la source : le lien vers le dépôt affiché dans la page « À propos » de l'application n'est pas un ornement.

S
Description
No description provided
Readme AGPL-3.0
6 MiB
2026-08-23 17:36:06 +02:00
Languages
C# 67.8%
HTML 25.8%
CSS 4%
JavaScript 2.2%
Dockerfile 0.2%