profcfuhrmanets / log210-systeme-gestion-bordereau-node-express-ts

Système de gestion des bordereaux (SGB) utilisé dans le cadre du cours de LOG210.
https://profcfuhrmanets.github.io/log210-systeme-gestion-bordereau-node-express-ts/
0 stars 17 forks source link
expressjs nodejs typescript

Système de gestion des bordereaux (SGB)

Build and Tests Coverage Status

Application utilisée dans le cadre du cours de LOG210 et développée avec Node, Express et TypeScript.

Ce système doit être utilisé pour obtenir l'information de base pour la réalisation de votre laboratoire en LOG210. Il possède les qualités suivantes:

Modèle du domaine

Modèle du domaine

Voulez-vous utiliser ce serveur?

  1. Installer Node.js 20 ou supérieur
  2. (Créer une fork et) Cloner
  3. Installer les dépendances Node - npm install
  4. Compiler les sources et lancer le serveur de développement - npm start
  5. Lancer les tests (pas besoin de lancer le serveur d'abord) - npm run test
  6. Lancer les tests en mode TDD - npm run watch
  7. Lancer un seul test - npm run test -- -g "nom ou partie du nom d'un test"

Voir https://medium.com/@RupaniChirag/writing-unit-tests-in-typescript-d4719b8a0a40

Consulter la documentation de l'API

La documentation de l'API a été générée avec apidoc.

Pour générer et consulter la documentation localement (par exemple, dans un clone), exécuter npm run all_docs, puis npm start. Ouvrir l'URL affichée dans la console.

Interagir avec l'API avec TypeScript

Pour interagir avec l'API du SGB dans votre application, installer la bibliothèque suivante dans votre projet - npm install node-fetch

Puis, importer la bibliothèque dans le fichier .ts concerné :

import fetch from 'node-fetch';

Exemple avec une requête GET :

fetch("http://localhost:3200/api/v3/student/all")
    .then(async response =>
    {
        var data = await response.json();

        console.log(data);
    })
    .catch(error => console.error("Error: ", error));

Exemple avec une requête POST :

var params = {
    student_id: "first_name.last_name%2B1%40gmail.com",
    group_id: "S20213-LOG210-01",
    type: "Devoir1",
    type_id: 2,
    grade: 75.1
};

fetch("http://localhost:3200/api/v3/grade/insert",
{
    method: "post",
    body: JSON.stringify(params),
    headers: {"Content-Type": "application/json"}
}).then(async response =>
{
    var data = await response.json();

    console.log(data);
});