Où est mon doc ? - Bibliothèque PDF pour profs

‘Ma petite soeur est prof d arts plastiques. Elle avait des centaines de PDF pédagogiques éparpillés dans des dossiers, et passait un temps fou à retrouver le bon document avant un cours. Je lui ai construit un gestionnaire de bibliothèque qui indexe ses fichiers sans les copier, avec une IA locale pour les tagger automatiquement.’

III - Croissance ‘1 mois’ 2026-02-10 2026-03-14
XP
70%

La genèse

Ma petite soeur est prof d’arts plastiques. Un jour, je la regarde préparer un cours. Elle a 47 onglets ouverts dans son explorateur de fichiers. Des PDF partout : fiches de séquences, reproductions d’oeuvres, consignes d’évaluation, documents officiels. Tout est rangé dans des dossiers par année, par niveau, par thème. Sauf que le rangement par dossier ne suffit plus quand un même document sert à trois séquences différentes. Elle cherche un PDF sur le clair-obscur, elle sait qu’il existe, elle l’a utilisé l’an dernier, mais impossible de le retrouver. Vingt minutes de navigation dans l’arborescence pour un fichier qu’elle ouvrira trente secondes.

Le problème n’est pas le stockage. C’est l’accès. Les fichiers sont là, bien présents sur le disque. Ce qu’il manque, c’est une couche d’intelligence par-dessus qui permette de retrouver un document par notion, par thème, par séquence, sans avoir à se souvenir dans quel dossier on l’a rangé il y a six mois.

L’approche

L’application ne copie jamais les fichiers. Elle référence les chemins sur disque et ajoute tags, notions et collections par-dessus le système de fichiers existant. Ma soeur garde son organisation, l’outil ajoute une surcouche. SQLite en raw SQL, sans ORM, une base dans un seul fichier. Le tout structuré en monorepo npm workspaces : un serveur Fastify pour l’API et le scanner, un client Vue pour l’interface, un package de types partagés, un packaging Tauri pour l’app desktop native en .deb, et un site de documentation dédié en Astro.

Le tournant LLM

Tagger 200 PDF à la main, personne ne le fera. L’ajout d’Ollama change la nature du projet. Le scanner ne se contente plus d’indexer les fichiers dans la base : il en extrait le contenu textuel et propose des tags automatiquement via un LLM qui tourne en local sur le CPU, sans cloud, sans envoi de données. Ma soeur pointe un dossier de 200 PDF et obtient une classification exploitable sans effort, sans lire chaque document. Et comme les documents pédagogiques peuvent contenir des travaux d’élèves, la confidentialité est un vrai sujet. Tout reste sur la machine. Comme Whisper, c’est de l’IA locale, privée, qui fait le travail sans poser de questions.

Comment ça marche

Ma soeur installe l’application sur son poste. Elle pointe le scanner vers ses dossiers de cours. L’outil parcourt récursivement l’arborescence, indexe chaque PDF, génère des miniatures en mosaïque 2x2, et propose des tags via Ollama. À partir de là, elle navigue par tags, par collections, par recherche. Un clic et le document s’ouvre.

En classe, elle passe en mode projection : texte agrandi, contraste maximal, interface dépouillée pour le vidéoprojecteur. Plus besoin de jongler entre 47 onglets. Elle peut aussi regrouper des documents dans des collections thématiques, exporter un lot en ZIP pour le partager avec des collègues. L’application se met à jour silencieusement avec un système de hot-update intégré, et le tout tourne comme une app desktop native via Tauri.

Design Bauhaus brutaliste

Zéro border-radius. Monospace. Noir, blanc, rouge. Ma soeur enseigne les arts plastiques, l’outil devait avoir une identité visuelle qui lui parle. Le Bauhaus, c’est son univers : l’intersection entre art et fonctionnalité. C’est un parti pris esthétique radical, à l’opposé du “Soft Minimal” de Totem, mais tout aussi cohérent et opinionnée. Pensé pour être lisible avant d’être joli.

Stats

Durée~1 mois
Routes API10
Vues frontend7
URLmondoc.tordu-jardin.fr

Stack technique

‘Tauri 2’

‘App desktop native’

Installable en .deb, accès direct au système de fichiers

‘Ollama’

‘Auto-indexation LLM’

‘Tagger les PDF automatiquement sans envoyer de données’

‘Vue 3 + Fastify’

‘Interface et API’

‘SPA réactive avec un backend léger’

‘SQLite’

‘Base de données’

‘Un seul fichier

Dashboard principal

Dashboard principal

Bibliothèque

Bibliothèque

Scanner de fichiers

Scanner de fichiers

Vue détaillée

Vue détaillée

Tags

Tags

Collections

Collections

Mode projection

Mode projection

Dashboard principalBibliothèqueScanner de fichiersVue détailléeTagsCollectionsMode projection
Pipeline CI/CD GitLab

Pipeline GitLab CI/CD configuré pour le monorepo. Build, tests et packaging automatisés.

  • Pipeline GitLab CI/CD multi-stage
Site doc Astro, Tauri desktop, versioning

Site de documentation dédié en Astro. Packaging Tauri 2 en application desktop native .deb. Système de hot-update intégré.

  • Site documentation Astro dédié
  • Packaging Tauri 2 (.deb Linux)
  • Hot-update avec notification intégrée
Auto-indexation Ollama, miniatures PDF

Intégration Ollama pour proposer des tags automatiquement à partir du contenu textuel des PDF. Miniatures PDF en mosaïque 2x2 générées côté serveur.

  • Auto-indexation LLM via Ollama (inférence locale CPU)
  • Miniatures PDF mosaïque 2x2 (pdfjs-dist + @napi-rs/canvas)
Tags, collections, mode projection

Système de tags et collections pour organiser les documents. Mode projection adapté à la salle de classe : texte agrandi, contraste maximal.

  • Tags et collections flexibles
  • Mode projection salle de classe
  • Export ZIP groupé
Scaffolding monorepo, scanner, API

Jour 1. Monorepo npm workspaces (server, client, shared). Scanner récursif de dossiers PDF. 10 routes API Fastify. 7 vues Vue 3.5.

  • Monorepo npm workspaces (3 packages + Tauri + docs)
  • Scanner récursif de dossiers PDF
  • 10 routes API Fastify 5 + 7 vues Vue 3.5
  • SQLite raw SQL, zero ORM