feat: Ajout d'une page de recherche de Services et Structures par mots-clé #242
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🍣 Problème
Nous sommes souvent sollicités par nos utilisateurs qui nous demandent d'ajouter des possibilités de recherche textuelle sur la plateforme DORA.
Nous nous posons la question de savoir dans quelle mesure proposer de la recherche textuelle pour les Services ou les Structures à nos usagers Accompagnateurs leur permettrait de trouver plus vite, facilement et efficacement une solution adaptée à la situation du Bénéficiaire qu'ils aident.
Nous souhaitons mener une expérimentation à peu de frais (temps, argent, code, déploiement, énergie) pour évaluer cette hypothèse métier.
🍓 Solution
Ajouter une nouvelle page expérimentale –
/recherche-textuelle
– qui intègre un moteur de recherche de Google (Google Custom Search Engine), lequel s'appuie sur l'indexation et la recherche des structures et services référencés via Google Search (grâce au sitemap de DORA).VITE_XXX
dans le fichier.env
). Si cette variable n'est pas définie, alors la page n'affiche que l'encart pour indiquer qu'il s'agit d'une modalité en cours de test, sans rien d'autre.🤖 Implémentation
1/ Déclaration et configuration d'un nouveau Programmable Search Engine dans le panneau de contrôle (https://programmablesearchengine.google.com/controlpanel/all) :
q
)À la fin, nous obtenons un identifiant de moteur (publique) ainsi qu'un snippet de code à intégrer dans notre application front-end / Sveltekit.
2/ Dans la mesure où il s'agit d'une expérimentation et que le code sera retirée et oublié dans quelques semaines, nous prenons le parti de ne pas over-engineerer la solution. Nous nous contentons d'intégrer le snippet de code directement dans la page
/recherche-textuelle/+page.svelte
. Pour cela, nous surchargeons l'en-tête de la page via le tag<svelte:head>
.Le composant fourni par Google se charge bien et les styles définis dans le panneau de contrôle sont bien appliqués.
Toutefois, il y a quelques éléments qui gâchent un peu le rendu d'un point de vue esthétique (un padding général autour des composants et des images "Impulsés / Optimisés par Google" de mauvais effet, malgré que nous ayons bien obtenu le droit auprès de Google de cacher la marque et activé l'option idoine). Nous sommes obligés de forcer du CSS dans l'en-tête (lorsque les styles sont définis en bas de page, le composant ne s'affichait plus).
Par défaut, le composant Google charge de nombreuses ressources sous-jacentes (images, scripts, etc.). Nous sommes obligés de les intégrer en partie dans nos CSP. Nous ignorons les ressources que nous estimons trop invasives, inutiles ou nocives pour les données et l'expérience Web de nos utilisateurs (ex : ce qui a trait au tracking ou à la publicité).
3/ Afin de recueillir des retours qualitatifs directement de la part de nos usagers, nous ajoutons un lien vers un formulaire (Tally).
4/ TODO : Lorsque la solution sera déployée, il faudra ajouter dans notre solution de suivi (Matomo) les bons tags & events.
☑️ Recette
dora.xxx/recherche-textuelle