# UrlStateService - Quick Start Guide ## 🚀 DĂ©marrage en 5 minutes ### Étape 1: Lancer le backend (Terminal 1) ```bash cd c:\dev\git\web\ObsiViewer node server/index.mjs ``` **Attendu**: Logs du serveur, port 4000 actif ``` [Config] { MEILI_HOST: 'http://127.0.0.1:7700', ... } [Server] Listening on port 4000 ``` ### Étape 2: Lancer le frontend (Terminal 2) ```bash cd c:\dev\git\web\ObsiViewer npm run dev ``` **Attendu**: Angular dev server, port 3000 actif ``` âś” Compiled successfully. âś” Application bundle generation complete. âžś Local: http://localhost:3000/ ``` ### Étape 3: Ouvrir le navigateur (Terminal 3) ```bash # Ouvrir une URL avec paramètres http://localhost:3000/?note=Allo-3/test-new-file.md ``` **Attendu**: Note s'ouvre directement --- ## đź“‹ Tests Rapides (5 minutes) ### Test 1: Deep-link note ``` URL: http://localhost:3000/?note=Allo-3/test-new-file.md RĂ©sultat: Note ouverte âś… ``` ### Test 2: Filtre dossier ``` URL: http://localhost:3000/?folder=Allo-3 RĂ©sultat: Liste filtrĂ©e par dossier âś… ``` ### Test 3: Filtre tag ``` URL: http://localhost:3000/?tag=home RĂ©sultat: Vue recherche, filtre par tag âś… ``` ### Test 4: Recherche ``` URL: http://localhost:3000/?search=test RĂ©sultat: Barre de recherche remplie âś… ``` ### Test 5: Interaction → URL ``` Étapes: 1. Cliquer un dossier dans la sidebar 2. Observer l'URL RĂ©sultat: URL change vers ?folder=... âś… ``` --- ## 🎯 URLs PrĂŞtes Ă  Tester Copier/coller dans le navigateur: ``` # Ouvrir une note http://localhost:3000/?note=Allo-3/test-new-file.md # Filtrer par dossier http://localhost:3000/?folder=Allo-3 # Filtrer par tag http://localhost:3000/?tag=home # Rechercher http://localhost:3000/?search=home # Combinaison: dossier + note http://localhost:3000/?folder=Allo-3¬e=Allo-3/test-new-file.md # Combinaison: tag + recherche http://localhost:3000/?tag=home&search=test ``` --- ## ⚠️ Troubleshooting ### Problème: Écran bleu/vide **Solution**: 1. VĂ©rifier que le backend tourne: `curl http://localhost:4000/api/vault/metadata` 2. Hard reload: `Ctrl+F5` 3. VĂ©rifier la console: `F12 → Console` ### Problème: URL ne change pas après interaction **Solution**: 1. VĂ©rifier que vous ĂŞtes en mode Nimbus (bouton "✨ Nimbus" en haut) 2. VĂ©rifier que le backend rĂ©pond 3. VĂ©rifier la console pour les erreurs ### Problème: Note ne s'ouvre pas **Solution**: 1. VĂ©rifier que le chemin de la note existe 2. VĂ©rifier la casse (sensible Ă  la casse) 3. VĂ©rifier que le dossier "Allo-3" existe ### Problème: Erreur dans la console **Solution**: 1. Copier l'erreur complète 2. VĂ©rifier les logs du serveur 3. Consulter `URL_STATE_INTEGRATION_TEST.md` pour les cas connus --- ## 📊 VĂ©rification Rapide ### Backend OK? ```bash curl http://localhost:4000/api/vault/metadata ``` **Attendu**: JSON avec liste des notes ### Frontend OK? ```bash curl http://localhost:3000 ``` **Attendu**: HTML de l'application ### Proxy OK? ```bash # Dans le navigateur, ouvrir: http://localhost:3000/?folder=Allo-3 # VĂ©rifier que la liste se filtre ``` --- ## 🎓 Concepts ClĂ©s ### URL Parameters - `?note=...` → Ouvre une note - `?folder=...` → Filtre par dossier - `?tag=...` → Filtre par tag - `?quick=...` → Filtre par quick link - `?search=...` → Applique la recherche ### PrioritĂ© - Si `note` est prĂ©sent → ouvre la note - Sinon si `tag` est prĂ©sent → filtre par tag - Sinon si `folder` est prĂ©sent → filtre par dossier - Sinon si `quick` est prĂ©sent → filtre par quick link - Sinon → affiche toutes les notes ### Synchronisation - URL change → AppComponent reçoit l'update → UI se met Ă  jour - Utilisateur clique → AppComponent appelle urlState → URL change --- ## 📝 Prochaines Étapes 1. **Tester les 5 tests rapides** (5 min) 2. **ExĂ©cuter le guide complet** (`URL_STATE_INTEGRATION_TEST.md`) (30 min) 3. **Documenter les rĂ©sultats** 4. **Corriger les bugs Ă©ventuels** 5. **DĂ©ployer en production** --- ## 📞 Aide Rapide | Question | RĂ©ponse | |----------|---------| | OĂą est le guide de test? | `URL_STATE_INTEGRATION_TEST.md` | | OĂą est la documentation complète? | `URL_STATE_INTEGRATION_SUMMARY.md` | | Comment lancer le backend? | `node server/index.mjs` | | Comment lancer le frontend? | `npm run dev` | | Quel port pour le backend? | 4000 | | Quel port pour le frontend? | 3000 | | Mode Nimbus activĂ©? | Bouton "✨ Nimbus" en haut Ă  droite | | Erreur NG0201? | VĂ©rifier que UrlStateService est injectĂ© | | URL ne change pas? | VĂ©rifier que vous ĂŞtes en mode Nimbus | --- **Bon test! 🚀**