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
Les principales opérations sont regroupées dans le package.json
.
yarn setup
installation ou mise à jour de vos fichiers d'environnement de développement depuis le vault.yml (server/.env
et ui/.env
)
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
.
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 disponiblesyarn cli seed
: Seed de la databaseyarn cli migrations:status
: Vérification du status des migrationsyarn cli migrations:up
: Execution des migrationsyarn cli migrations:create
: Creation d'une nouvelle migration
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
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
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
Deploie l'application sur l'environnement cible
yarn deploy <environnement> <OPTIONAL:--user USERNAME>
Optionel si vous avez configuré 1password
Cli pour créer une migration
yarn migration:create -d <name>
Ajouter une exception à talisman
yarn talisman:add-exception
Édition du vault ansible
yarn vault:edit
Un linter (via ESLint) est mis en place dans le projet, pour le lancer :
yarn lint
Note: eslint est run automatiquement à chaque commit
Prettier est mis en place dans le projet, pour le lancer :
yarn prettier:fix
Note: eslint est run automatiquement à chaque commit
L'application utilise TypeScript, pour vérifier que les erreurs liés au type veuillez lancer:
yarn typecheck
Création d'une release
yarn release:interactive
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:
-
D'avoir installé toutes les dépendances via la commande
yarn install
avant de lancer les tests -
D'avoir lancé l'application car les tests utilisent la base de donnée.
Pour mettre à jour les snapshots, utilisez la commande suivante dans /shared
yarn test --update
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.
Il est possible de débugger facilement sous VSCode grace à la configuration Vscode partagée.
- Lancer la task
Attach Server
- Lancer l'application en utilisant la commande
make debug
au lieu demake start
.
- 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/