Notre projet est développé en JavaScript (Node.js) dans le cadre du cours GL02 – Fondements de l'ingénierie logicielle.
Le code est structuré pour répondre directement au cahier des charges d'une application console "Sujet B : Outil de gestion еt dе génération d’еxamеns au format GIFT" de l'équipe Team SoftMakers.
Notre feuille de route de développement se trouve sur Github : https://github.com/orgs/ABBAH-GL02/projects/2
Avant d'utiliser l'application, assurez-vous d'avoir :
- Node.js 18+ installé : https://nodejs.org/
Option A — Utilisation directe via Node.js
npm install # installe les dépendances
node questionCli.js <commande>Option B — Installation globale (npm)
npm install # installe les dépendances
npm i -g
npm link # rend les commandes bin accessibles depuis le terminal
gift <commande>├── documents/ # livrables et documentation
├── src/
│ ├── classes/ # Modèles de données
│ ├── parsers/ # Extraction du texte en Objets JS
│ ├── cli/ # Interface utilisateur
│ └── data/ # fichiers GIFT de test
│ ├── logging / # Journalisation
│ ├── profiling / # Analyse Vega-lite
│ ├── utils / # Fichiers utilitaires à QuestionCli.js
│ └── exports/ # Génération de sorties (visualisations)
├── spec/ # Tests unitaires JasmineDans le cadre des TD de GL02, les fichiers caporalCli.js et POI.js sont conservés dans le repository car ils faisaient partie des supports pédagogiques fournis. Ils ne sont toutefois pas utilisés dans l’implémentation finale du projet.
Chef d'équipe: Héléna Chevalier
Membres: Sacha Himber; Jules Andrea; Fadi-Farhat; Emeline Nerot
Si vous utilisez npm i -g, vous pouvez utiliser à la racine du repository avec "gift" suivi des commandes. Sinon il est recommandé d'aller dans le dossier "src/cli" et d'effectuer "node questionCli.js" suivi des commandes
- Visualiser une question
node questionCli.js view <dir> <id>Exemple :
node questionCli.js view data "EM U42 Ultimate q2"- Rechercher une question
node questionCli.js search <dir> <text>Exemple :
node questionCli.js search data "Ultimate"- Séléctionner une question
node questionCli.js select <dir> <text>Exemple :
node questionCli.js select data "EM U42 Ultimate q2"- Afficher la séléction
node questionCli.js list- Vider la séléction
node questionCli.js clear- Exporter un examen
node questionCli.js export "../exports/examen.gift" - Simuler un examen
node questionCli.js simulate "..\exports\examen.gift"- Créer une carte enseignante
node questionCli.js vcard "1.1" "Test" "12/12/2000" "[email protected]" "0123456789" "UTT1" --out "../exports/Vcard.vcf"- Générer le profil d'un examen
node questionCli generate-profile <dir> Exemple :
node questionCli generate-profile ./data- Comparer deux profils
node questionCli compare-profiles <dir1> <dir2>Exemple :
node questionCli compare-profiles ../exports ./dataNote : Les graphiques Vega-Lite sont générés dans ./outputs/ et visualisables sur https://vega.github.io/editor/
L’application inclut une suite de tests unitaires fondée sur Jasmine (vu en TD), conformément aux exigences de Robustesse (NF3) du cahier des charges.
En installation :
npm install --save-dev jasmine
npx jasmine initA la racine du projet :
npm testProjet développé dans un contexte académique — diffusion restreinte aux étudiants du module GL02.