Documentation
Vue d'ensemble du projet DataBridge, son architecture et sa stack technique.
Le problème
L'ONG ELA (Equal Legal Aid) suit des indicateurs de plaidoyer liés aux flux migratoires en Grèce. Ces données sont publiées mensuellement par le gouvernement grec sous forme de rapports PDF sur le site migration.gov.gr.
La mise à jour manuelle de ces indicateurs est lente, sujette aux erreurs et nécessite de recopier des tableaux PDF dans des tableurs. Avec la multiplication des indicateurs suivis, ce processus devient un goulet d'étranglement.
La solution
DataBridge automatise l'ensemble du pipeline :
- Extraction intelligente des données depuis les PDFs via Claude (IA)
- Analyse d'impact avec comparaison Base vs Import avant écriture
- Import en mode upsert (mise à jour ou création, sans doublons)
- Sélection interactive des périodes à importer via la couverture temporelle
- Stockage structuré dans Airtable
- Visualisation interactive des séries temporelles et catégories
- Détection automatique des gaps de données
Architecture
migration.gov.gr
Rapports PDF officiels
Upload PDF
Sélection fichier(s)
Sélection périodes
Timeline interactive
n8n
Orchestration webhook
Claude API
Extraction IA du PDF
Analyse d'impact
Détection doublons
Comparaison
Base vs Import
Airtable
Upsert (create / update)
DataBridge UI
Visualisation & couverture
Flux d'import
- Sélection des périodes — L'utilisateur consulte la couverture temporelle interactive et sélectionne les périodes à importer ou mettre à jour
- Upload PDF — Un ou plusieurs PDFs officiels sont déposés dans la zone d'upload (drag & drop ou sélection fichier)
- Extraction IA (n8n + Claude) — Le PDF est envoyé au webhook n8n qui transmet à Claude API. Claude analyse le document et extrait les données structurées (JSON) selon le schéma de la table Airtable cible. La progression est affichée en temps réel via un pipeline animé
- Analyse d'impact — Les données extraites sont comparées aux enregistrements existants en base via des clés composites (période + attribut). Le système détecte automatiquement les mises à jour et les nouvelles lignes, et affiche un tableau comparatif Base vs Import avec mise en évidence des changements
- Confirmation & écriture — Après validation humaine, les données sont écrites dans Airtable en mode upsert : les lignes existantes sont mises à jour (PATCH), les nouvelles sont créées (POST), par batches de 10 records. Aucun doublon n'est généré
- Visualisation — Les indicateurs sont visualisés avec des graphiques temporels, des heatmaps de couverture et des ventilations par catégorie. L'historique des imports est consultable avec statut, durée et nombre de lignes
Stack technique
Frontend
- • React 19
- • TanStack Start / Router / Query
- • Tailwind CSS v4
- • Recharts
- • shadcn/ui
Backend & API
- • Airtable (base de données)
- • n8n (orchestration)
- • Claude API (extraction IA)
Infrastructure
- • Cloudflare Pages (hébergement SSR)
- • VPS Hostinger (n8n)
- • Cloudflare Access (auth)
À venir
- • Supabase (pgvector + Storage)
- • Chatbot RAG
- • Scraping automatisé
Indicateurs suivis
IND 1 — Migration Flows
Flux migratoires mensuels par point d'entrée en Grèce
IND 5a — Applications for International Protection
Nombre total de demandes de protection internationale
IND 5d — Applications per Nationality
Demandes de protection internationale ventilées par nationalité