Soliguide

🏛️ Comment Soliguide est construit

Cette page décrit toutes les briques du produit : ce que chacune fait, à qui elle s'adresse, et ce qui va changer pour elle. Une architecture qu'on ne peut pas lire d'un coup d'œil est une architecture que chacun se raconte différemment — et c'est là que les malentendus commencent.

Un point important pour bien lire ce qui suit : l'application Angular actuelle fait deux métiers à la fois. Elle porte le site public, celui que voient les personnes qui cherchent de l'aide, et le back-office, celui où les structures tiennent leurs fiches à jour. Seule la partie publique est reprise ici.

🏗️ Ce qui tourne aujourd'hui

L'existant, dans le dépôt historique. Une mention « à retirer » n'est pas un jugement sur la qualité du code : c'est simplement la trajectoire qu'on a décidée ensemble.

Applications

Ce que voient les personnes qui cherchent de l'aide, et les structures qui tiennent les fiches à jour.

  • Frontend

    Angular 17 · sans rendu serveur

    Une seule application Angular porte DEUX choses : le site public soliguide.fr, et le back-office où les structures tiennent leurs fiches à jour. Le contenu n'existe qu'une fois le JavaScript exécuté — les robots des moteurs génératifs n'en exécutent pas et voient une page vide.

    ➡️ Seule la partie publique migre vers Astro. Le back-office reste en Angular : aucun enjeu de référencement, et le réécrire n'apporterait rien.

    soliguide.fr ↗ · Espagne et Catalogne ↗ · Andorre ↗

    À retirer
  • Web-app

    SvelteKit · SSR

    app.soliguide.fr. Couvre déjà une partie du public en rendu serveur, mais dans une technologie qu'on abandonne : une équipe réduite ne peut pas entretenir Angular, Svelte et Astro en même temps.

    ➡️ Reprise en Astro dans soliguide-neo. Adieu Svelte.

    app.soliguide.fr ↗

    En service
  • Widget

    Angular 17

    L'intégration embarquée chez les partenaires, configurée par les paramètres de son iframe.

    En service

Services

Le back-office : données, recherche, géolocalisation.

  • API

    Node.js · NestJS · MongoDB

    Elle fait deux métiers : servir les données aux applications qui les affichent, et porter la logique du back-office (comptes, droits, validation des fiches). Tout est en Node.js, sans exception.

    api.soliguide.fr ↗

    En service
  • API publique v2

    NestJS · Fastify · Zod

    En construction. Versionnement par date à la manière de Stripe, specs OpenAPI générées et servies, schémas TypeScript produits automatiquement. Elle s'authentifie par clé : chaque intégrateur reçoit la sienne, ce qui permet de savoir qui appelle quoi et de couper un accès sans toucher aux autres.

    ➡️ Devient la source unique de données pour les applications publiques.

    🔌 Suivi par Ulrich

    Cible
  • Suggestions de recherche

    Node.js · module de l'API

    Ce qui propose des besoins et des lieux pendant que la personne tape sa recherche. C'est souvent le premier contact avec le produit : si les suggestions sont mauvaises, la recherche l'est aussi.

    🧭 Suivi par Yassine

    En service
  • Location API

    NestJS

    Géocodage et résolution des territoires.

    🧭 Suivi par Yassine

    En service

Les outils de l'équipe

Ce qui sert à alimenter et vérifier la base, sans jamais être vu par le public. Ces outils ne remontent pas dans les moteurs de recherche, et c'est très bien ainsi.

  • SoliHub

    NestJS · Prisma · PostgreSQL · Angular

    Le hub des intégrations. Il rapproche des bases publiques — aujourd'hui le répertoire FINESS des établissements de santé, soit environ 60 000 lieux — avec les fiches Soliguide existantes, pour repérer ce qui manque et ce qui pourrait être enrichi. Un serveur pour le traitement, un tableau de bord pour lire les résultats.

    ➡️ Il vit aujourd'hui dans soliguide-tools, à côté de projets qui n'ont rien à voir avec lui. Il rejoindra le périmètre back-office.

    En service

Briques partagées

Ce qui circule entre les paquets — et ce qui diverge.

  • common

    TypeScript · 529 fichiers

    Le modèle de données : lieux, structures, catégories, traductions, recherche. 188 commits sur douze mois, dont plus de la moitié coordonnés avec l'API ou une application.

    ➡️ Reste propriété de soliguide. Consommé par contrat, pas copié.

    En service
  • taxonomy

    Générateur d'icônes · 280 SVG

    La taxonomie des catégories et la police d'icônes générée depuis les SVG sources.

    ➡️ Va être réordonnée. Seuls ses produits sont consommés.

    En service
  • design-system

    Svelte

    L'ancien système de composants. Abandonné au profit de Tailwind et DaisyUI.

    ➡️ Remplacé par les tokens Figma et le paquet ui.

    À retirer

🎯 Ce qu'on construit

La cible, dans ce dépôt-ci. Tout ce qui est public passe à Astro — le site, la web-app et le widget. Le back-office, lui, ne bouge pas.

Applications

Une application = un déploiement qui vit sa vie, avec sa propre adresse.

  • Site public

    Astro · SSR

    Le HTML porte le contenu sans JavaScript — c'est le critère qui justifie tout le chantier. Les parties interactives deviennent des îlots chargés à la demande.

    🧩 Suivi par Younes

    Cible
  • Documentation

    Astro · statique

    Le point d'entrée du dépôt et la page que tu lis : architecture, migration, design system, développement, skills. Le design system y a sa branche — tous les composants y sont visibles, et aucun ne peut exister sans y figurer.

    En service
  • Widget

    à décider

    L'intégration que les partenaires embarquent dans leur propre site : une vitrine de Soliguide chez les autres, qui mérite le même soin que nos propres pages.

    ➡️ En attente depuis le 27 août 2026 : sa conception va être entièrement revue, on ne reprend pas l'existant. L'emplacement apps/widget reste vivant, rien n'y est décidé.

    🧩 Suivi par Younes

    Cible
  • Web-app

    Astro

    app.soliguide.fr, reprise dans la même technologie que le site public. Une seule pile pour tout ce qui est public : une équipe réduite ne peut pas entretenir deux savoir-faire en parallèle.

    🧩 Suivi par Younes

    Cible

Briques partagées

Des paquets jamais publiés sur un registry, consommés par workspace.

  • routes

    TypeScript · middleware Astro

    La nomenclature des adresses — la langue en tête, puis la page — reprise à l'identique de l'ancien site et suivie par les trois apps. C'est elle qui redirige une adresse sans langue et qui renvoie un vrai 404 sur une langue inconnue.

    Cible
  • legal

    Markdown par pays

    Les textes légaux — mentions, CGU, confidentialité, cookies, accord de protection des données — en une version par pays, dans sa langue officielle. Le site public et la web-app affichent les mêmes ; le widget n'en a pas.

    Cible
  • ui

    CSS · registre de composants

    Tout ce qui se voit à l'écran, en un seul endroit : les couleurs venues de Figma, les images rangées par pays, la police d'icônes, la feuille de style unique et le registre des composants. Une app qui ajoute son propre CSS fait échouer la vérification.

    Cible
  • Identification des personnes

    solution à choisir

    Savoir de façon fiable qui se connecte. L'exigence monte nettement par rapport à aujourd'hui : le jeton fabriqué maison ne suffira plus. On veut aussi pouvoir se connecter avec son compte Google, et rester reconnu d'une application à l'autre.

    ➡️ Une authentification par pays : pas de session à partager entre soliguide.fr, soliguia.cat et soliguia.ad. Rien n'est arrêté pour autant — ni le fournisseur, ni le protocole, ni le niveau d'exigence. C'est le sujet d'Ulrich.

    🔌 Suivi par Ulrich

    Cible
  • Back-office

    Angular · inchangé

    La gestion des fiches et la modération, qui restent telles quelles. Elles se détachent simplement du site public et prennent leur propre adresse, ce qui permet aux deux d'évoluer chacun à son rythme.

    backoffice.soliguide.fr ↗

    Cible
  • Chaîne de fabrication

    GitHub Actions

    Ce qui vérifie, compile et met en ligne à chaque modification : les contrôles de qualité, les tests, les budgets de performance et le déploiement. C'est elle qui fait respecter nos règles sans que personne ait à y penser.

    🧭 Suivi par Yassine

    Cible
  • api-client

    Généré depuis l'OpenAPI

    Le client typé, produit depuis la spec versionnée de l'API publique. Régénérable en une commande, jamais retouché à la main.

    🔌 Suivi par Ulrich

    Cible

📖 Pour aller plus loin

Cette page montre les briques. Les quatre suivantes expliquent comment on travaille avec.