Bénéfriches est un outil numérique développé au sein de l'incubateur de l'ADEME.
Son objectif est de fournir une solution de calcul des impacts positifs de la reconversion de friches aux chargés d’opération d’aménagement pour favoriser la prise de décision (pour tout type de projet d’aménagement) et augmenter le nombre de reconversions.
L'outil est actuellement en phase de construction.
L'application est intégralement codée en Typescript. L'API est construite sur la plateforme NodeJS avec le framework NestJS. L'application web est construite avec les bibliothèques React et Redux.
Les données sont stockées dans une base PostgreSQL.
Le projet est organisé en monorepo et géré avec le gestionnaire de packages pnpm.
Le code commun au front-end et au back-end (types, fonctions de calculs, etc.) est placé dans le package shared.
- node (version 24 ou supérieure)
- pnpm (version 10.31.0 ou supérieure)
- docker (optionnel)
- PostgreSQL v17 (si docker non installé)
- talisman (protection contre les secrets dans les commits)
pnpm install- Utilisation des valeurs exposées dans
apps/web/.env.exampleetapps/api/.env.example.
cp apps/web/.env.example apps/web/.env
cp apps/api/.env.example apps/api/.env- Modifier les valeurs de
DATABASE_USERetDATABASE_PASSWORDen fonction de la méthode choisie pour lancer la base de données. Pour docker, utiliserDATABASE_USER=postgresetDATABASE_PASSWORD=secret.
# à la racine du projet
$ make dev-upLancer PostgreSQL et créer l’utilisateur et la base de données :
postgres=\# CREATE USER <USERNAME> WITH ENCRYPTED PASSWORD '<YOUR_PASSWORD>';
postgres=\# CREATE DATABASE benefriches_db WITH OWNER = <USERNAME>;pnpm --filter api knex:migrate-latest # lancement des migrations
pnpm --filter api knex:seed-run # chargement des données nécessaires à l'applicationLes jeux de données de référence chargés par les seeds sont documentés dans apps/api/data/.
La commande setup-env-vars génère le fichier public/js/env-vars.js à partir des variables WEBAPP_* du .env, afin de les exposer au navigateur au runtime.
pnpm --filter api dev
pnpm --filter web setup-env-vars
pnpm --filter web devLa stack complète peut être lancée via Docker Compose dans un environnement similaire à la production (tests manuels, debugging, etc.).
make e2e-up
make e2e-downServices disponibles (configuration par défaut dans .env.e2e) :
- Application web :
http://localhost:3001 - API :
http://localhost:4001 - Mailcatcher (emails envoyés par l'API) :
http://localhost:1080
pnpm run -r testLes tests E2E utilisent la stack Docker production-like.
# Installer les navigateurs Playwright (première fois uniquement)
pnpm --filter e2e-tests exec playwright install --with-deps
make e2e-test-headedpnpm run -r lint
pnpm run -r format:check
pnpm run -r typecheck
pnpm run -r buildConvention linguistique : ce README (orienté grand public et contributeurs externes) est en français. La documentation interne destinée aux développeurs et aux assistants IA —
CLAUDE.md, ADR, specs — est rédigée en anglais.
- Architecture Decision Records — décisions d'architecture importantes
- Spécifications — spécifications de fonctionnalités
- Scripts — scripts exécutés sur Scalingo, planifiés (cron) ou manuels
- Exemple de fonctionnalité de bout en bout