Collecte TCOM pour Judilibre
- Architecture Modulaire : Basée sur NestJS, permettant une scalabilité et une maintenance facilitées.
- Gestion des Environnements : Supporte plusieurs environnements (local, développement, production).
- Tests Automatisés : Tests unitaires et d'intégration avec Jest pour assurer la qualité du code.
- Linting et Formatage : Utilisation d'ESLint et Prettier pour maintenir un code propre et cohérent.
- NestJS : Framework pour construire des applications Node.js performantes.
- TypeScript : Langage de programmation pour un typage statique.
- AWS SDK : Pour interagir avec le service stockage S3.
- Jest : Framework de tests pour JavaScript.
- Prettier : Outil de formatage de code.
- ESLint : Outil de linting pour identifier et reporter les motifs dans le code JavaScript.
@nestjs/common@nestjs/core@nestjs/config@nestjs/swagger@aws-sdk/client-s3axiosclass-transformerclass-validatorjoirimrafrxjsuuid
L'application nécessite node ainsi qu'un bucket S3, une connexion à une API de pseudonymisation (nlp-api) et une connexion à une API de sauvegarde (dbsder-api), n'hésitez pas à jeter un coup d'oeil à juridependencies.
La version de Node utilisée par ce projet est indiquée dans le fichier .nvmrc.
Pour installer les packages nécessaires au bon fonctionnement de l'application, ouvrir un terminal et executer la commande suivante :
npm installDupliquer le fichier .env.example et le rennomer .env selon le besoin, adapter les variables d'environnement si besoin
- Voici une liste des scripts disponibles dans
package.json:
| Commande | Description |
|---|---|
prebuild |
Supprime le dossier dist avant la construction. |
build |
Compile l'application NestJS. |
format |
Vérifie le formatage du code avec Prettier. |
start |
Démarre l'application en mode local. |
start:dev |
Démarre l'application en mode développement avec rechargement à chaud. |
start:debug |
Démarre l'application en mode debug avec rechargement à chaud. |
start:prod |
Démarre l'application en mode production. |
start:docker |
Démarre les conteneurs Docker en arrière-plan avec docker-compose.local.yml. |
stop:docker |
Arrête les conteneurs Docker. |
batch:start |
Exécute un script de normalisation batch en utilisant ts-node. |
batch:start:prod |
Exécute le script batch de normalisation en production. |
lint |
Vérifie le code TypeScript avec ESLint. |
test |
Exécute les tests unitaires et d'intégration. |
test:batch |
Exécute uniquement les tests pour le batch. |
test:api |
Exécute uniquement les tests pour l'API et lance les tests d'intégration. |
test:watch |
Exécute les tests en mode interactif avec surveillance des changements. |
test:cov |
Exécute les tests avec génération de rapports de couverture. |
test:debug |
Démarre les tests en mode debug avec Jest. |
test:integration |
Exécute les tests d'intégration avec la configuration jest-integration.json. |
fix |
Corrige les erreurs de formatage avec ESLint et Prettier. |
Démarrer l'application nécessite au préalable d'initaliser les fichiers de variables d'environnement.
-
Pour lancer JuriTCOM avec Docker (voir juridependencies pour un container S3 adapté et dbsder-api pour la brique de sauvegarde) :
npm run start:docker
-
Pour lancer l'API en phase de développement et afin de disposer d'une mise à jour à chaud du serveur à chaque changement:
npm run start:watch
-
Autres commandes utiles :
- Stopper tous les container :
npm run docker:stop
- Lancer le lint et le formatage du code :
npm run fix
- Stopper tous les container :
- Pour exécuter les tests, utilisez la commande suivante :
npm run test- Pour exécuter les tests en mode interactif :
npm run test:watch - Pour exécuter les tests avec un rapport de couverture :
npm run test:cov Pour effectuer des tests Postman sur l'environnement de développement :
- Récupérer le certificat client, la clé privée client et le certificat d'autorité de certification auto-signé
- Insérer la clé privée client et certificats sur Postman
- Récupérer les collections Postman dans le dossier de documentation
- Les importer dans Postman
Un Swagger est disponible à l'url /doc ou via /doc-json
L'API utilise le protocole OAuth 2 avec un flow client credentials, et l'utilisation d'un jeton JWT valide est requise pour accéder aux différents endpoints.