Aller au contenu principal
Architecture · stack publique

Architecture technique

Cette page documente la stack et les choix d'architecture de MonRhumato.fr. Elle est destinée aux développeurs potentiellement intéressés par rejoindre, aux investisseurs tech-due-diligent et aux auditeurs externes.

Vue d'ensemble

  ┌──────────────────────────────────────────────┐
  │   Visiteurs (médecins, patients, agents IA)  │
  └──────────────┬───────────────────────────────┘
                 │ HTTPS (TLS 1.3, HSTS)
  ┌──────────────▼───────────────────────────────┐
  │   Vercel Edge — cdg1 (Paris)                 │
  │   Next.js 16 App Router                      │
  │   ├─ Server Components (SSR + ISR)           │
  │   ├─ Client Components ("use client")        │
  │   └─ API Routes /api/*                       │
  └──────┬─────────────────┬─────────────────────┘
         │                 │
         │ Reads/Writes    │ Auth (PKCE)
         ▼                 ▼
  ┌──────────────────────────────────────────────┐
  │   Supabase (eu-west-1, Irlande)              │
  │   Postgres + RLS · ~13 tables                │
  │   Auth · Storage                             │
  └──────────────────────────────────────────────┘
         ▲
         │ Best-effort (cache 30j)
         │
  ┌──────┴──────────────────────────────────────┐
  │   APIs externes                             │
  │   ANS · PubMed · CT.gov · OpenAlex · HAL    │
  │   YouTube · OpenFDA · Wikimedia · Crossref  │
  │   Groq · Gemini (LLM)                       │
  └─────────────────────────────────────────────┘

Application

  • Next.js

    v16Framework React full-stack — App Router, Server Components

    Maturité de l'écosystème, performance Vercel native, SSR + ISR + Edge runtime sur la même base.

  • React

    v19UI library

    Server Components + Suspense, hooks bien établis, écosystème massif.

  • TypeScript

    vstrictTypage statique

    Pas de `any`. Typage strict des API Supabase, des routes, des composants.

  • Tailwind CSS

    v4Styling utility-first

    Design system maîtrisé via tokens (charte graphique projet), zéro CSS dupliqué.

  • framer-motion

    Animations sélectives

    Utilisé avec parcimonie sur les transitions de cards et reveals scroll.

  • three.js + react-three-fiber

    Anatomie 3D interactive

    Modèles GLB AnatomyTOOL CC-BY-SA, viewer multi-couches, vue éclatée, auto-rotation.

Infrastructure

  • Vercel

    Hosting + CDN + Edge Functions

    Région cdg1 (Paris). 2 projets : production www.monrhumato.fr (monrhumato-97wz) et secondaire (monrhumato-f5x3). Cron, Analytics, Speed Insights inclus.

  • Supabase

    Auth + base de données + storage

    Postgres managé eu-west-1 (Irlande, migration fra1 envisagée), Row Level Security, Auth PKCE, ~13 tables actives.

  • Resend

    SMTP transactionnel (auth, contact)

    Plan free 100/jour, à upgrader si volume.

Sources de données

  • ANS Annuaire Santé

    Référentiel rhumatologues FR

    API FHIR v2 + CSV LibreAccès data.gouv.fr (Licence Ouverte 2.0). 3 824 rhumatos en table `practitioners`.

  • PubMed E-utilities

    Articles scientifiques

    NCBI API rate-limited 3 req/s sans clé. Cache Supabase 30j dans `practitioner_articles`.

  • ClinicalTrials.gov v2 + ECLAIRE

    Essais cliniques

    v2 (CT.gov) primary + ECLAIRE (ANSM FR) en complément quand clé disponible.

  • OpenAlex + HAL + Crossref + Unpaywall + iCite + DataCite + EuropePMC

    Bibliométrie chercheurs

    14 fetches parallèles sur fiche praticien — h-index, OA, RCR, datasets.

  • Open FINESS data.gouv

    Établissements de santé

    551 FINESS utilisés par les rhumatos en table `establishments`. Re-run trimestriel.

  • YouTube Data API v3

    Atlas écho + vidéos patient

    Quota 10 000 unités/jour, fallback RSS Atom si quota dépassé (commit 2b3ce02).

  • Wikimedia Commons + Wikipedia API

    Photos cabinet, illustrations anatomie, recettes

    Sources libres. Pas de contrat, juste respect des licences CC.

  • CNAM Annuaire Santé Ameli

    Secteur de conventionnement

    CSV data.gouv (~150 MB). 1 414 rhumatos matchés sur 1 805 CNAM (78 %). Re-run trimestriel.

Intelligence artificielle

  • Groq Cloud (llama-3.3-70b-versatile)

    LLM primary — résumés, classification

    Free tier 30 req/min, latence très basse. Cache permanent Supabase `ai_summaries`.

  • Google Gemini API

    LLM fallback

    Bascule auto si Groq 429. Clauses no-training enterprise.

Conformité

  • RGPD

    Protection données

    Registre Art. 30, DPO joignable, droits Art. 15-22 automatisés.

  • AI Act 2024/1689

    Transparence IA

    Modules IA en Art. 50 (transparence), pas de système Annexe III haut risque.

  • MDR (UE) 2017/745

    Hors champ DM

    Voir /non-dispositif-medical pour le statement formel.

  • RFC 9116 — security.txt

    Coordonnées sécurité

    Scope, SLA, Hall of Fame, divulgation responsable.

Liens utiles pour la DD

Vous voulez nous rejoindre ?

On cherche des profils tech expérimentés santé numérique. Écrivez-nous.