Skip to content

mth-bou/foncier-france

Repository files navigation

foncier-france

Application cartographique open source pour explorer les données foncières françaises à partir d'une base locale PostGIS.

Le projet combine des données ouvertes administratives, DVF géolocalisées et cadastre afin de produire une carte interactive des niveaux région, département, commune, section cadastrale et parcelle.

État du projet

Le projet est utilisable en local, mais il reste expérimental:

  • l'application n'est pas encore dimensionnée pour une exposition publique large;
  • les données doivent être téléchargées et importées localement;
  • les niveaux cadastraux fins demandent une préparation locale par commune, département ou région;
  • le repo n'a pas encore de fichier LICENSE.

Fonctionnalités

  • Carte React/Vite basée sur MapLibre GL JS.
  • API Fastify lisant PostgreSQL/PostGIS.
  • Pipeline local download -> staging -> normalize -> aggregate -> serve.
  • Import DVF géolocalisées avec registre d'idempotence par checksum.
  • Agrégats régionaux, départementaux, communaux, sections et parcelles.
  • Queue Postgres et worker dédié pour la préparation cadastrale.
  • CI avec typecheck, smoke tests API/frontend et build.

Aperçu technique

  • frontend: Vite, React, TypeScript, MapLibre GL JS, TanStack Query
  • api: Fastify, TypeScript
  • database: PostgreSQL + PostGIS via Docker
  • package manager: pnpm

Prérequis

  • Node.js compatible avec le repo, idéalement Node 24
  • pnpm 10.24.0, déclaré dans packageManager
  • Docker et Docker Compose
  • une connexion internet pour télécharger les données ouvertes
  • de l'espace disque disponible pour les données DVF géolocalisées

Démarrage rapide

cp .env.example .env
pnpm install
pnpm doctor
pnpm data:bootstrap
pnpm dev

Une fois la stack lancée:

pnpm dev lance l'API, le frontend et le worker cadastre-worker.

Initialiser les données

Le bootstrap complet:

pnpm data:bootstrap

Cette commande:

  • démarre PostGIS;
  • applique le schéma;
  • importe régions, départements et communes ADMIN EXPRESS;
  • télécharge DVF géolocalisées pour les années configurées;
  • importe et normalise les transactions;
  • recalcule les agrégats;
  • vérifie l'état de la base;
  • peut préchauffer une couverture cadastrale si des variables de preload sont renseignées.

Par défaut, les années DVF sont configurées dans .env.example via DVF_GEO_YEARS.

Pour précharger le cadastre d'une zone pendant le bootstrap:

CADASTRAL_PRELOAD_COMMUNES=75115,33063 pnpm data:bootstrap
CADASTRAL_PRELOAD_DEPARTMENTS=59,62 pnpm data:bootstrap
CADASTRAL_PRELOAD_REGIONS=32 pnpm data:bootstrap

Important: pnpm data:bootstrap peut prendre du temps et télécharger des fichiers volumineux.

Rafraîchir une base existante

pnpm data:refresh

Utilise ce flux quand la base a déjà été initialisée une première fois.

Préparation cadastrale

Les couches sections/parcelles sont servies uniquement si les données existent localement. Pour préparer une commune:

pnpm db:sync:sections -- 75115
pnpm db:sync:parcels -- 75115

Pour préchauffer plusieurs communes ou une couverture plus large:

pnpm db:prewarm:cadastre -- 75115 33063
pnpm db:plan:cadastre-coverage -- --departments=59,62 --limit=25
pnpm db:prewarm:cadastre -- --departments=59,62
pnpm db:prewarm:cadastre -- --regions=32

Inspecter ou relancer la queue cadastrale:

pnpm db:cadastre-jobs
pnpm db:cadastre-jobs -- --status=failed
pnpm db:requeue:cadastre-jobs

Commandes de validation

Pour vérifier une contribution:

pnpm install --frozen-lockfile
pnpm lint
pnpm test
pnpm build
pnpm audit
pnpm supply-chain:check

Sources de données

Le projet s'appuie sur des données ouvertes:

  • ADMIN EXPRESS / GeoPF pour régions, départements et communes;
  • DVF géolocalisées pour les mutations foncières;
  • Cadastre Etalab pour sections et parcelles.

Les données sont chargées localement dans PostGIS. Le frontend ne consomme pas directement les APIs open data.

Structure du repo

api/        API Fastify, scripts data et worker cadastre
frontend/   interface cartographique React
infra/      PostGIS local et scripts d'initialisation SQL
scripts/    orchestration locale
docs/       documentation technique
data/       emplacements locaux ignorés pour données brutes et logs

Documentation

Variables d'environnement

Copie .env.example vers .env, puis ajuste si besoin:

  • DATABASE_URL: connexion PostgreSQL locale
  • API_PORT: port API, par défaut 4000
  • WEB_PORT: port frontend, par défaut 5173
  • VITE_API_BASE_URL: URL API utilisée par le frontend
  • DVF_GEO_YEARS: années DVF à télécharger
  • CADASTRAL_PRELOAD_COMMUNES: communes à précharger
  • CADASTRAL_PRELOAD_DEPARTMENTS: départements à précharger
  • CADASTRAL_PRELOAD_REGIONS: régions à précharger

Limites connues

  • Le projet n'inclut pas encore de fichier LICENSE.
  • L'API n'est pas durcie pour une exposition publique large.
  • Les tests couvrent surtout des smoke tests; les tests métier et intégration avec base chargée restent à renforcer.
  • Le premier bootstrap data peut être long selon le réseau et la machine.

About

Application cartographique open source pour explorer les données foncières françaises à partir d'une base locale PostGIS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors