Skip to content

betagouv/eva

Repository files navigation

eva

Évaluer en ligne les compétences transversales à travers des mises en situations professionnelles.

https://beta.gouv.fr/startup/eva.html

License: AGPL v3 js-semistandard-style

Pour voir les autres projets de eva :

Anciens dépôts que nous n'utilisons plus aujourd'hui :

Configuration de l'environnement

Dépendences

  • node.js (dont la version est spécifié dans le fichier .tool-version)

pour le développement :

  • OptiPNG version 0.7.7 ou supérieur

Cette utilitaire doit être installé au niveau système.

Installer node

Nous recommandons l'utilisation d'asdf pour installer node.

Assigner les variables d'environnement

Soit dans un fichier .env

Nécessite que votre machine interprète le fichier, avec par exemple le plugin dotenv de Oh My Zsh

# Indispensables
# --------------

# Adresse du serveur local
URL_API=http://localhost:3000/pro

# Optionnelles
# ------------

# Pour la gestion des erreurs
JETON_CLIENT_ROLLBAR=
ROLLBAR_ENV=

# Pour afficher un message à tout le monde
ANNONCE_GENERALE=

# Pour les analytics
HOTJAR_ID=
MATOMO_ID=

Soit directement en ligne de commande

export URL_API=http://localhost:3000/pro

Démarrer un serveur Webpack en local (mode développement)

Démarrer l'application avec webpack server

$> npm install && npm run dev

Et se rendre sur l'adresse affichée dans la sortie standard (http://localhost:7700 par défaut)

Démarrer l'application avec docker (mode production)

Installer docker si nécessaire, et exécuter la commande suivante.

$> docker build -t eva . && docker run --rm -ti -p 3000:80 eva

Une fois le message Successfully tagged eva:latest affiché, se rendre à l'adresse http://localhost:3000

Lancer les tests

Pour les tests, nous utilisons jest

npm test

Et en mode "watch" :

$> npm test -- --watch

Travailler avec le linter

Pour demander au linter de tenter de corriger les problèmes lancer :

$> npm run lint -- --fix

Certaines dépendences sont définies globalement dans webpack (ex. jQuery, mocha, etc.) et, à moins qu'elles soient déclarées comme « à ignorer », génèreront une erreur au niveau du linter. Pour déclarer au linter une dépendance globale à ignorer, l'ajouter dans le hash de configuration défini dans package.json :

"semistandard": {
  "globals": [
    "jQuery",
    // etc.
  ]
}

Il est également possible de demander au linter d'accepter les dépendances définies globalement en les déclarant en commentaire au début du fichier source :

/* global jQuery, etc. */

// début du code source

Tous les commits doivent passer le linter. À ce titre, nous recommandons d'ajouter la ligne suivante à la fin du script .git/hooks/pre-commit, à condition que votre script ne contienne pas déjà une commande exec :

exec /usr/local/bin/npm run lint -- --silent

Si vous êtes partis du template .git/hooks/pre-commit.sample vous pouvez simplement remplacer la ligne exec git diff-index --check --cached $against -- car le linter fera le travail de vérification des espaces.

Licence

Ce logiciel et son code source sont distribués sous licence AGPL.