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
v16— Framework React full-stack — App Router, Server ComponentsMaturité de l'écosystème, performance Vercel native, SSR + ISR + Edge runtime sur la même base.
React
v19— UI libraryServer Components + Suspense, hooks bien établis, écosystème massif.
TypeScript
vstrict— Typage statiquePas de `any`. Typage strict des API Supabase, des routes, des composants.
Tailwind CSS
v4— Styling utility-firstDesign system maîtrisé via tokens (charte graphique projet), zéro CSS dupliqué.
framer-motion
— Animations sélectivesUtilisé avec parcimonie sur les transitions de cards et reveals scroll.
three.js + react-three-fiber
— Anatomie 3D interactiveModèles GLB AnatomyTOOL CC-BY-SA, viewer multi-couches, vue éclatée, auto-rotation.
Infrastructure
Vercel
— Hosting + CDN + Edge FunctionsRé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 + storagePostgres 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 FRAPI FHIR v2 + CSV LibreAccès data.gouv.fr (Licence Ouverte 2.0). 3 824 rhumatos en table `practitioners`.
PubMed E-utilities
— Articles scientifiquesNCBI API rate-limited 3 req/s sans clé. Cache Supabase 30j dans `practitioner_articles`.
ClinicalTrials.gov v2 + ECLAIRE
— Essais cliniquesv2 (CT.gov) primary + ECLAIRE (ANSM FR) en complément quand clé disponible.
OpenAlex + HAL + Crossref + Unpaywall + iCite + DataCite + EuropePMC
— Bibliométrie chercheurs14 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 patientQuota 10 000 unités/jour, fallback RSS Atom si quota dépassé (commit 2b3ce02).
Wikimedia Commons + Wikipedia API
— Photos cabinet, illustrations anatomie, recettesSources libres. Pas de contrat, juste respect des licences CC.
CNAM Annuaire Santé Ameli
— Secteur de conventionnementCSV 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, classificationFree tier 30 req/min, latence très basse. Cache permanent Supabase `ai_summaries`.
Google Gemini API
— LLM fallbackBascule auto si Groq 429. Clauses no-training enterprise.
Conformité
RGPD
— Protection donnéesRegistre Art. 30, DPO joignable, droits Art. 15-22 automatisés.
AI Act 2024/1689
— Transparence IAModules IA en Art. 50 (transparence), pas de système Annexe III haut risque.
MDR (UE) 2017/745
— Hors champ DMVoir /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
- • /api/health — disponibilité + ping Supabase
- • /api/version — commit SHA + branche + env Vercel
- • /status — état des services en temps réel
- • /changelog — historique évolutions
- • /securite — posture sécurité
- • /registre-traitements — RGPD Art. 30
- • /non-dispositif-medical — statement MDR
- • /.well-known/security.txt — RFC 9116
- • github.com/schemoul2/monrhumato ↗ — dépôt source
Vous voulez nous rejoindre ?
On cherche des profils tech expérimentés santé numérique. Écrivez-nous.
