Projet Ecopass — Plateforme Next.js (en version beta) pour la déclaration et la gestion du coût environnemental des produits textiles.
- Node.js (>= 22)
- Docker (pour PostgreSQL et Maildev)
- Yarn
-
Cloner le dépôt
git clone git@github.com:incubateur-ademe/ecopass.git cd ecopass
-
Configurer les variables d'environnement
Copiez le fichier
.env.dist
en.env
et adaptez les valeurssecret
si besoin :cp .env.dist .env
Pour correctement faire fonctionner le projet en local vous aurez besoin de specifier les secrets ProConnect (
PROCONNECT_CLIENT_ID
,PROCONNECT_CLIENT_SECRET
etPROCONNECT_DOMAIN
, à recuperer depuis l'env preprod scalingo ou demander à un dev), la clé d'encryption Ecobalyse (ECOBALYSE_ENCRYPTION_KEY
) et une clé INSEE (INSEE_API_KEY
, disponible sur https://api.insee.fr/catalogue/site/themes/wso2/subthemes/insee/pages/item-info.jag?name=Sirene&version=V3.11&provider=insee). Vous pourrez enfin genererENCRYPTION_KEY
etSTORAGE_ENCRYPTION_KEY
avec la commandeopenssl rand -hex 32
-
Lancer les services Docker
docker compose up -d
Cela démarre :
- PostgreSQL (bases de données, une pour le dev, port 5432 et une pour les tests unitaires, port 5433)
- Maildev (serveur mail pour tests)
-
Installer les dépendances
yarn install
-
Initialiser Prisma
Le projet utilise Prisma comme ORM. Les scripts suivants initialisent le schema de la base et ajoute des fixtures.
npx prisma generate npx prisma migrate deploy npx prisma db seed
-
Lancer le site
Pour lancer le site web vous pouvez utilisez :
yarn dev
-
Générer les données ecobalyse
Pour calculer le coût environnemental des produits, on utilise une version en local d'Ecobalyse avec le
server-app.js
ce dernier à besoin desprocesses_impacts.json
pour fonctionner. Ils sont décryptés à partir deprocesses_impacts.json.enc
et de la variable d'environnementECOBALYSE_ENCRYPTION_KEY
:yarn ecobalyse:data
-
Lancer la queue
Pour processer les téléchargements de zip et les produits déposés sur la plateforme vous devez lancer la queue :
yarn queue:watch
-
Tests unitaires
Les tests unitaires sont lancés avec Jest. La plupart des tests utilises des fonctions de mocks pour limiter leur scope. Les fonctions de db sont testés directement avec une vraie base.
npx jest
-
Tests e2e
Les tests e2e sont lancés avec playwright, attention de bien lancé au préalable le serveur web et la queue.
npx playwright test
- S3
En production et preprod, les fichiers CSV envoyés sont encryptés puis stocké sur un S3 scaleway (variables d'environnement S3_ACCESS_KEY
et S3_SECRET_KEY
). En local il est recommandé de stocker les fichiers en local (variable d'environnement LOCAL_STORAGE=true
, par defaut dans le .env.dist
)
- Application : http://localhost:3000
- Maildev : http://localhost:1080
Beta — Merci de remonter tout bug ou suggestion via les issues du dépôt.
Note :
Ce projet utilise Next.js (App Router), Prisma, PostgreSQL, Maildev et des variables d'environnement pour la configuration.