eva icon indicating copy to clipboard operation
eva copied to clipboard

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

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.

  • https://asdf-vm.com/
  • https://github.com/asdf-vm/asdf-nodejs

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.