Giter Club home page Giter Club logo

ecobalyse's Introduction

Ecobalyse Build status

Accélerer la mise en place de l'affichage environnemental

L'application est accessible à cette adresse.

Note: le projet Ecobalyse s'appellait initialement Wikicarbone.

Socle technique et prérequis

Cette application est écrite en Elm. Vous devez disposer d'un environnement NodeJS 14+ et npm sur votre machine.

Installation

$ npm install

Configuration

Les variables d'environnement suivantes doivent être définies :

  • SENTRY_DSN: le DSN Sentry à utiliser pour les rapports d'erreur.
  • MATOMO_HOST: le domaine de l'instance Matomo permettant le suivi d'audience du produit (typiquement stats.beta.gouv.fr).
  • MATOMO_SITE_ID: l'identifiant du site Ecobalyse sur l'instance Matomo permettant le suivi d'audience du produit.
  • MATOMO_TOKEN: le token Matomo permettant le suivi d'audience du produit.

En développement, copiez le fichier .env.sample, renommez-le .env, et mettez à jour les valeurs qu'il contient ; le serveur de développement node chargera les variables en conséquences.

Développement

Environnement de développement local

Le serveur local de développement se lance au moyen des deux commandes suivantes :

& npm run db:build
$ npm start

Deux instances de développement sont alors accessibles :

  • localhost:3000 sert le frontend et le backend (API) ;
  • localhost:1234 sert seulement le frontend en mode hot-reload, permettant de mettre à jour en temps-réel l'interface Web à chaque modification du code frontend.

Mode débogage

Pour lancer le serveur de développement en mode de débogage:

& npm run db:build
$ npm run start:dev

Un server frontend de débogage est alors disponible sur localhost:1234.

Hooks Git avec Husky et Formatage de Code avec Prettier

Ce projet utilise Husky pour gérer les hooks Git, et Prettier pour le formatage automatique du code. Le build sur le CI échouera si les fichiers javascript et json ne sont pas proprement formattés.

Pré-requis

  • Husky
  • Prettier

Si vous clonez le dépôt pour la première fois, les dépendances devraient être installées automatiquement après avoir exécuté npm install. Si ce n'est pas le cas, vous pouvez les installer manuellement.

$ npm install --save-dev husky prettier

Vérification Automatique avant chaque Commit

Un hook de pre-commit a été configuré pour vérifier que le code est bien formaté avant de permettre le commit. Si le code n'est pas correctement formaté, le commit sera bloqué.

Pour résoudre ce problème, vous pouvez exécuter la commande suivante :

$ npm run format:json

Si vous ne souhaitez pas que la vérification se fasse de manière automatique, vous pouvez désinstaler les hooks :

$ npx husky uninstall

Compilation

Pour compiler la partie client de l'application :

$ npm run build

Les fichiers sont alors générés dans le répertoire build à la racine du projet, qui peut être servi de façon statique.

Déploiement

L'application est déployée automatiquement sur la plateforme Scalingo à chaque mise à jour de la branche master sur le dépôt.

Chaque Pull Request effectuée sur le dépôt est également automatiquement déployée sur une instance de revue spécifique, par exemple https://ecobalyse-pr44.osc-fr1.scalingo.io/ pour la pull request #44. Ces instances de recette restent actives 72 heures, puis sont automatiquement décommisionnées passé ce délai ou si la pull request correspondante est mergée.

Serveur de production

Variables d'environnement

Les variables d'environnement doivent être positionnées via l'interface de configuration Scalingo (voir la section Configuration).

Lancement du serveur

Pour lancer le serveur applicatif complet (frontend + backend), par exemple depuis un environnement de production, la démarche est la suivante :

$ npm run build
$ npm run server:start

L'application est alors servie sur le port défini par la variable d'environnement PORT (par défaut: 3000).

Ecobalyse data

Ce dépôt contient aussi les scripts (principalement python) utilisés pour importer et exporter les données du projet Ecobalyse.

Ces scripts se trouvent dans data/, et un fichier README spécifique en détaille l'installation et l'utilisation.

ecobalyse's People

Contributors

ccomb avatar cerve avatar dependabot[bot] avatar magopian avatar n1k0 avatar pascaldagras avatar paulboosz avatar tristanrobert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ecobalyse's Issues

[API] Error in the calculation of the sum of materials

Due to a javascript issue, in some cases, the API materials sum check does not work.

Using

materials[]=coton;0.7&materials[]=acrylique-r;0.2&materials[]=jute;0.1

the API returns this error

{"errors":{"materials":"La somme des parts de matières doit être égale à 1 (ici : 0.9999999999999999)"}}

In this case, we have 0.7 + 0.2 + 0.1 and it should not give error.

Ennoblissement : question (doute) sur le calcul (pr gwp)

Chère équipe Ecobalyse,

je comparais les calculs de notre propre outil et j'ai du mal à retomber sur mes pates quant au calcul de l'ennoblissement dans Ecobalyse. Je m'explique avec une exemple concret (voir screenshot, tshirt 100% coton, 0,5kg, tout en Chine!)
image

L'énergie pour la chaleur est 21,54 MJ, pour l'électricité 1,43 kWh. En faisant le calcul à la main (pr le gwp spécifiquement), j'obtiens 21,54 * 0,1068 (

) + 1,43 * 1.057 (https://github.com/MTES-MCT/ecobalyse/blob/662c8e6e7aecb2acb85fa232d99873374bec0c3a/data/textile/ior_correction/processes_pre_correction.json#L10C14-L10C21) ~= 3,81 kg co2e => dans le screenshot, vous pouvez voir que j'obtiens 6,6 kg co2e.

Soit je me goure complètement, soit il me manque une information. J'aurais aimé aider à regarder en détail dans le code (et j'ai essayé) mais je ne suis pas "fluent" sur Elm malheureusement :(

A bientot,

Antoine

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.