Skip to content

Latest commit

 

History

History
268 lines (171 loc) · 6.6 KB

developpement.md

File metadata and controls

268 lines (171 loc) · 6.6 KB

Développement

Pré-requis

Suivre la documentation dédié

Démarrage

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 seed
yarn dev

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.

Initialisation de l'environnment

  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.

Server CLI

La cli du server s'éxécute sur le fichier compilé server/dist/index.js ainsi il est nécéssaire de:

  • soit avoir la commande dev lancée pour watch les changements
  • soit build avec la commande build:dev dans /server

Commandes:

  • yarn cli --help: List l'ensemble des commandes disponibles
  • yarn cli seed: Seed de la database
  • yarn cli migrations:status: Vérification du status des migrations
  • yarn cli migrations:up: Execution des migrations
  • yarn cli migrations:create: Creation d'une nouvelle migration

Lancement de l'application

  yarn workspace server dev

Lance le server en dev indépendamment de la stack

  yarn workspace 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>

Optionel si vous avez configuré 1password

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

Un linter (via ESLint) est mis en place dans le projet, pour le lancer :

yarn lint

Note: eslint est run automatiquement à chaque commit

Prettier

Prettier est mis en place dans le projet, pour le lancer :

yarn prettier:fix

Note: eslint est run automatiquement à chaque commit

Typescript

L'application utilise TypeScript, pour vérifier que les erreurs liés au type veuillez lancer:

yarn typecheck

Release depuis l'environnement local

Création d'une release

  yarn release:interactive

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.

Snapshots

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

yarn test --update

Emails

Le server SMTP de test Mailpit est utilisé localement pour prendre en charge l'envoi d'emails localement.

Vous pouvez accéder à l'interface utilisateur à l'addresse suivante http://localhost:8025.

Debugger sous VSCode

Il est possible de débugger facilement sous VSCode grace à la configuration Vscode partagée.

Server Inspect

  • Lancer la task Attach Server
  • Lancer l'application en utilisant la commande make debug au lieu de make start.

Organisation des dossiers

  • Le dossier /.infra contient la configuration de l'instructure.
  • Le dossier /.github contient l'ensemble des Github Actions.
  • Le dossier /server contient l'ensemble de l'application coté serveur, à savoir l'API Node Express.
  • Le dossier /shared contient le code partagé entre l'ui et le server
  • Le dossier /ui contient l'ensemble de l'application coté front, à savoir le code NextJs.
  • Le fichier /docker-compose.yml va définir la configuration des services de l'application, _pour plus d'informations sur Docker cf: https://docs.docker.com/

Aller plus loin