/labonnealternance

La bonne alternance a vocation à faciliter la mise en relation des jeunes avec les centres de formation d'apprentis (CFA) et les entreprises

Primary LanguageTypeScriptMIT LicenseMIT

LBA - La bonne alternance

Fiche Produit

Consultez la Fiche Produit pour plus d'informations sur le projet.

Installation

Pré-requis

Avant d'installer le projet, assurez-vous d'avoir les éléments suivants :

Clé GPG

Pour décrypter les variables d'environnement, vous avez besoin d'une clé GPG. Si vous n'en avez pas, vous pouvez en créer une en suivant la documentation GitHub ici.

Voici les étapes pour créer votre clé GPG :

  1. Lors de la création de la clé, choisissez les options suivantes :

    • Please select what kind of key you want > ECC (sign and encrypt)
    • Please select which elliptic curve you want > Curve 25519
    • Please specify how long the key should be valid > 0
    • Real Name: <Prenom> <Nom>
    • Email Address: email@mail.gouv.fr
  2. Pour utiliser votre clé au sein du projet, publiez-la en exécutant la commande suivante :

    gpg --list-secret-keys --keyid-format=long

    L'identifiant de votre clé correspond à la valeur sec ed25519/<identifiant>.

  3. Pour utiliser votre clé au sein de la mission apprentissage, vous devez la publier en exécutant la commande suivante :

    gpg --send-key <identifiant>
  4. Pour une meilleure sécurité, il est recommandé de sauvegarder les clés publique et privée nouvellement créées. Vous pouvez les exporter en exécutant les commandes suivantes :

    gpg --export <identifiant> > public_key.gpg
    gpg --export-secret-keys <identifiant> > private_key.gpg

    Ces deux fichiers peuvent être sauvegardés, par exemple, sur une clé USB.

  5. Communiquez votre clé à votre équipe afin d'être autorisé à décrypter le vault.

Une fois autorisé, vous aurez accès aux fichiers suivants :

  • .infra/vault/.vault-password.gpg
  1. Installer 1password cli et connecter votre compte

Développement

Gettting started

Avant de lancer l'application, assurez-vous d'installer toutes les dépendances nécessaires en exécutant la commande suivante :

yarn
yarn setup

Cette commande mettra à jour les dépendances du projet.

Le script vous demandera plusieurs fois la phrase secrète de votre clé GPG pour décrypter les variables d'environnement du vault.

Il est possible que vous rencontriez un problème avec le fichier .infra/local/mongo_keyfile lors du démarrage du container de mongodb (vous auriez des erreurs dans les logs du démarrage du container).

Si c'est le cas, vérifiez que les droits du ficher sont bien 440 pour MacOS et 400 pour Linux et que le fichier appartient à l'utilisateur lançant docker.

yarn dev
yarn seed

Vous pouvez maintenant accéder à l'application via l'URL http://localhost:3000

Vous pouvez maintenant accéder à l'API via l'URL http://localhost:5001

Vous pouvez maintenant accéder au SMTP via l'URL http://localhost:8025

Détails des commandes globales

Les principales opérations sont regroupées dans le package.json.

Installation .env

  yarn setup

installation ou mise à jour de vos fichiers d'environnement de développement depuis le vault.yml (server/.env et ui/.env)

Lancement de la stack compléte

Pour démarrer l'application en mode local, exécutez la commande suivante :

  yarn dev

Lance la stack local de développement (server, ui, services)

Cette commande démarre les containers définis dans le fichier docker-compose.yml.

CLI mna-lba

  yarn cli <command>

commande pour lancer les commandes du cli mna-lba

Lancement de l'application

  yarn server:dev

Lance le server en dev indépendamment de la stack

  yarn ui:dev

Lance l'ui en dev indépendamment de la stack

Gestion des services docker

Lance les services docker en local

  yarn services:start

Stopper les services docker en local

  yarn services:stop

Supprimer les services docker en local

  yarn services:clean

Hydratation du projet en local

  yarn seed <OPTIONAL:DB_URL>

Pour créer des jeux de test facilement il suffit de lancer les commandes suivante. Applique la base de données seed sur la base de données cible (par défaut la base de données locale)


Mise à jour de la base de données seed depuis votre local

  yarn seed:update

Deploiement depuis l'environnement local

Deploie l'application sur l'environnement cible

  yarn deploy <environnement> <OPTIONAL:--user USERNAME>

TODO: Optional only if 1password is configured

Gestion des migrations

Cli pour créer une migration

  yarn migration:create -d <name>

Talisman

Ajouter une exception à talisman

  yarn talisman:add-exception

Vault

Édition du vault ansible

  yarn vault:edit

Linter

Lint global du projet

  yarn lint

Release depuis l'environnement local

Création d'une release

  yarn release:interactive

Variables d'environnement local

Les variables d'environnement local du server sont stocké dans le vault (peut contenir des secrets). Si vous souhaitez overwwrite certaines variables ou changer le port de l'api par exemple, il est possible de créer un fichier server/.env.local et ui/.env.local

Exécution des tests

Pour exécuter les tests localement, utilisez la commande suivante :

yarn test

Cette commande exécutera tous les tests du projet et vous affichera les résultats.

Assurez-vous:

  1. D'avoir installé toutes les dépendances via la commande yarn install avant de lancer les tests

  2. D'avoir lancé l'application car les tests utilisent la base de donnée.

Exécution des tests cypress

Charger les variables d'environnement :

export $(cat cypress.env|xargs)

Pour ouvrir cypress localement, utilisez la commande suivante :

yarn e2e

Pour executer cypress sur les environnements spécifiques :

yarn e2e:production
yarn e2e:recette

Snapshots

Pour mettre à jour les snapshots, utilisez la commande suivante dans /shared

yarn test --update

Aller plus loin