Skip to content

Cour-de-cassation/juritcom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API JURUTCOM

Collecte TCOM pour Judilibre

Caractéristiques

  • 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.

Technologies

  • 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.

Dépendances

Le projet JURITCOM utilise les dépendances suivantes :

  • @nestjs/common
  • @nestjs/core
  • @nestjs/config
  • @nestjs/swagger
  • @aws-sdk/client-s3
  • axios
  • class-transformer
  • class-validator
  • joi
  • rimraf
  • rxjs
  • uuid

Pré-requis

  • Installer nvm afin d'avoir la version utilisée pour cette application et lancer la commande :
nvm install

Installation

Pour installer les packages nécessaires au bon fonctionnement de l'application, ouvrir un terminal et executer la commande suivante :

npm install

Configuration

Configurer les variables d'environnement:

Dupliquer le fichier `docker.env.example` et le rennomer `docker.env` ou `.env` selon le besoin, adapter les variables d'environnement si besoin

Scripts

  • 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.
docker:build Construit l'image Docker avec docker-compose.local.yml.
docker:start Démarre les conteneurs Docker en arrière-plan avec docker-compose.local.yml.
docker:stop Arrête les conteneurs Docker.
docker:kill Supprime les conteneurs Docker, les orphelins, les volumes et les images.
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.
docker:start:s3 Démarre le conteneur S3 et crée des buckets via Docker.
docker:stop:s3 Arrête le conteneur S3.
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 dans un environnement local

Démarrer l'application nécessite au préalable d'initaliser les fichiers de variables d'environnement.

  • Pour lancer l'ensemble de JuriTCOM avec Docker :

    npm run docker:build
    npm run docker:start
  • Pour lancer l'API en phase de développement et afin de disposer d'une mise à jour à chaud du serveur à chaque changement:

    npm run docker:build
    npm run docker:start:s3
    npm run start:dev
  • Autres commandes utiles :

    • Stopper tous les container :
      npm run docker:stop
    • Stopper le container du S3 :
      npm run docker:stop:s3
    • Arrêter et nettoyer l'environnement docker de l'application :
      npm run docker:kill
    • Lancer le lint et le formatage du code :
      npm run fix
      

Tests

  • 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 

Postman

Configuration de Postman

Pour effectuer des tests Postman sur l'environnement de développement :

Swagger

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.