diff --git a/ROADMAP.md b/ROADMAP.md index ff18cb7..533d410 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -50,20 +50,46 @@ - **Fichiers** : `frontend/app.js` (~8875 lignes → 12 modules dans `frontend/js/`) - **Modules** : state, utils, auth, search, sidebar, viewer, ui, dashboard, config, sync, graph, legacy -### 3. Tests d'intégration +### 4. Tests d'intégration - **Effort** : 3-5 jours - **Impact** : 🟢 Couverture 49% → 70%+ - **Cibles** : `main.py` (26%), `watcher.py` (23%), `router.py` (37%), `create_admin.py` (0%), `image_processor.py` (15%) -### 4. Export PDF +### 5. Export PDF - **Effort** : 1 jour - **Impact** : 🟡 WeasyPrint déjà intégré (lazy import), manque GTK sur certaines plateformes - **Alternative** : Markdown → HTML → PDF via headless Chrome -### 5. Vue graphe des wikilinks -- **Effort** : 3-5 jours -- **Impact** : 🟢 Nouvelle fonctionnalité, visualisation des connexions entre notes -- **Stack** : D3.js ou Cytoscape.js +### 3. Vue graphe des wikilinks 🔄 EN COURS + +**Base existante** : API `/api/graph/{vault}` + `GraphViewManager` (canvas force-directed) +→ **Amélioration d'une feature existante**, pas création from scratch + +#### Phase 1 — Backend API +- [ ] **Full-vault view** : paramètre `scope=full` pour grapher tout le vault +- [ ] **Filtre par tag** : `?tag=recette` pour n'afficher que les fichiers taggés +- [ ] **Backlinks entrants** : edge `relation: "backlink"` en plus du wikilink sortant +- [ ] **Métriques de nœud** : `incoming_count`, `outgoing_count`, `tag_count` + +#### Phase 2 — Frontend rendu +- [ ] **Recherche visuelle** : barre de recherche qui surligne les nœuds matchants +- [ ] **Tooltips au survol** : nom complet, tags, nombre de liens, chemin +- [ ] **Couleurs adaptatives** : `var(--bg-primary)` etc. au lieu de hardcodées +- [ ] **Slider de profondeur** : contrôle depth 0-3 dans l'UI + +#### Phase 3 — Contrôles avancés +- [ ] **Filtre par type** : checkbox dossier/fichier/.md/autre +- [ ] **Mode focus** : clic-droit "Focus on this node" → recentre le graphe +- [ ] **Vue plein écran** : bouton pour passer la modale en fullscreen +- [ ] **Export PNG** : bouton pour sauvegarder le graphe en image + +#### Phase 4 — Performance +- [ ] **Barnes-Hut** : O(n log n) au lieu de O(n²) pour >200 nœuds +- [ ] **Lazy loading** : charger les wikilinks à la demande (pas tous au start) +- [ ] **Cache graphe** : ne pas refetch si mêmes paramètres + +- **Effort** : 2-3 jours +- **Fichiers** : `backend/main.py` (API), `frontend/js/graph.js` (rendu), `frontend/index.html` (UI) ---