Skip to content

insset-l3mn/2022-02-groupe-05

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Documentation projet de gestion de formation "Skill reader"

Sommaire

  1. Présentation du projet
  2. Diagramme de cas d'utilisation
  3. Diagramme de classe
  4. Modèle conceptuel de données
  5. Evolutivité de la modélisation
  6. L'API, les droits d'accès
  7. La génération des questionnaires et de formations adaptées
  8. Structuration front end
  9. Conclusion
  10. Démo

Présentation du projet

L’idée de ce projet est de permettre aux élèves pilotes d’approfondir leurs compétences dans certains sous domaines comme la météorologie, la navigation et d’autres. L’application permet d'évaluer les compétences des élèves et de leurs proposer automatiquement un parcours de formation en adéquation avec les compétences acquises et non acquises.

L’application est divisée en deux parties, la gestion de la partie back-end sera réalisée en Java EE développé sous la forme de service REST, la partie front-end est réalisée en ReactJS et communique avec l’API Jakarta. L’API permet de gérer toutes les données relatives à l’application et communique directement avec la base de données.


Diagramme de cas d'utilisation

image


Diagramme de classe

image


Modèle conceptuel de données

image


Evolutivité de la modélisation

Les différents diagrammes font l'œuvre d’une modélisation non exhaustive. Étant un projet en version alpha, celui-ci sera amené à évoluer.

Premièrement, concernant la partie graphe, il peut-être intéressant de gérer la modélisation du côté des compétences uniquement, en revoyant la gestion des versions d’un graphe également.

Concernant la partie questionnaire, le projet actuel génère un unique questionnaire pour proposer une formation, proposer des questionnaires en cours et en fin de formations pourrait permettre d’évaluer les compétences de l’élève pilote au cours de son apprentissage mais aussi de pouvoir le proposer de nouvelles formations il faiblit sur une ou plusieurs de ses compétences. L’idée de proposer d’autre forme de question pourrait voir le jour, pour le moment chaque question possède quatre propositions de réponses avec une seule bonne réponse, nous pouvons très simplement rajouter la possibilité d’avoir plusieurs bonnes réponses, des questions avec des annexes ou même proposer des questions interactives.

Les formations ne sont pas encore implémentées, une fois le questionnaire d'entrée fini, l’utilisateur doit se voir proposer une formation. Cette finition sera apportée au projet par la suite.


L'API, les droits d'accès

Type URL Description Accès
GET /user/read/{count}/{startAt} Retourne un nombre d’utilisateur à partir de l’index {startAt} Utilisable uniquement par l’application
GET /user/read/{idUser} Retourne l’utilisateur correspondant à {idUser} Utilisable uniquement par l’application
POST /user/login Permets la connexion d’un utilisateur Tout le monde
PUT /user/register Permets l’inscription d’un utilisateur Tout le monde
POST /user/update Permets la modification d’un utilisateur Tout le monde
DELETE /skill/remove/{idSkill}/idUser Supprime une compétence correspondant à {idSkill} si l’utilisateur en possède les droits Utilisable uniquement par l’application
GET /skill/read/{idSkill} Retourne la compétence correspondante à {idSkill} Utilisable uniquement par l’application
POST /skill/update Permets la modification d’une compétence Formateur
PUT /skill/add Permets l’ajout d’une compétence Formateur
GET /skill/read/all Retourne toutes les compétences Formateur
DELETE /question/remove/{idQuestion}/{idUser} Permets la suppression d’une question correspondant à {idQuestion} si l’utilisateur en possède les droits Formateur
GET /question/read/{count}/{startAt} Retourne un nombre de questions à partir de l’index {startAt} Utilisable uniquement par l’application
GET /question/read/{idQuestion} Retourne la question correspondant à {idQuestion} Formateur
PUT /question/add Permets l’ajout d’une question et de ses propositions Formateur
POST /question/update Permets la modification d’une question Formateur
GET /proposal/read/{idQuestion} Retourne les propositions de la question correspondant à {idQuestion} Utilisable uniquement par l’application
PUT /subdomain/add Permets l’ajout d’un sous-domaine Formateur
DELETE /subdomain/remove/{idSubdomain}/{idUser} Permets la suppression des compétences liée à un sous-domaine Formateur
POST /subdomain/update Permets la modification d’un sous-domaine Formateur
GET /subdomain/read/{count}/{startAt} Retourne un nombre de sous-domaine à partir de l’index {startAt} Utilisable uniquement par l’application
GET /subdomain/read/{idSubdomain} Retourne un sous-domaine correspondant à {idSubdomain} Utilisable uniquement par l’application
GET /graph/global Retourne les noeuds du graphe de compétences et ses arcs Tout le monde
DELETE /user/{idUser}/remove/all Retire toutes les compétences choisis par un utilisateur Tout le monde
PUT /user/{idUser}/add/all Ajoute toutes les compétences à un utilisateur Tout le monde
PUT /user/{idUser}/skill/addBySubdomainId/{idSubdomain} Ajoute toutes les compétences d’un sous-domaine correspondant à {idSubdomain} à un utilisateur Tout le monde
DELETE /user/{idUser}/skill/remove/{idSkill} Retire la compétence correspondant à {idSkill} de l’utilisateur {idUser} Tout le monde
PUT /user/{idUser}/skill/add/{idSkill} Ajoute la compétence correspondant à {idSkill} à l’utilisateur {idUser} Tout le monde
POST /questionnary/response/{idUser}/qId/{idQuestion}/rId/{idProposal} Enregistre la question comme étant répondu par l’utilisateur Utilisable uniquement par l’application
GET /questionnary/getQuestion/{idUser}/{difficulty} Retourne une question de difficulté {difficulty} en fonction des compétences choisis de l’utilisateur {idUser} Utilisable uniquement par l’application

La génération des questionnaires et de formations adaptées

Le but du questionnaire est de pouvoir attribuer à chaque compétence que l’utilisateur aura au préalable sélectionné un score positif ou nul. Pour cela, la génération des questionnaires est entièrement contrôlée par l’API. En effet, celle-ci génère des questions à poser à l’utilisateur en se basant sur les compétences choisies. En appelant la requête permettant d’acquérir une question, l’API retourne une question au hasard appartenant à une ou des compétence(s) de l’utilisateur. De plus, elle ne se limite pas à un choix hasardeux. En effet, elle ne compte que le/les compétence(s) dont le malus est strictement inférieur à 10 et dont l’erreur successive est strictement inférieure à 4 (Le malus étant un entier naturel incrémenté lorsqu’une réponse à une question est fausse. L’erreur successive quant à elle est un entier naturel représentant le nombre de fois où l’utilisateur se trompe à répétition à une compétence).

Si la réponse à une question est fausse, le questionnaire octroie un malus égal à 4 soustrait par la difficulté de la question posée (4 représentant la difficulté maximale des questions pouvant être posées). Si la réponse est fausse, le questionnaire va incrémenter l’erreur successive correspondant à la compétence examinée de 1.

Pour chaque bonne réponse à une question d’une compétence de l’utilisateur, la difficulté des questions posées est incrémentée de 0.5 et le score est incrémenté d’un montant égal à la difficulté de la question.

La limite d’un questionnaire est donc fixée sur les erreurs commises par l’utilisateur. Moins il fera d’erreur, plus le questionnaire durera longtemps et deviendra difficile. A contrario, plus il fait d'erreurs, plus le questionnaire sera court. Ainsi, les formations proposées à l’utilisateur à la suite du questionnaire seront proposées dans l’ordre ascendant des résultats de ses compétences.

image


Structuration front end

Image structure front end

Les composants constituent les éléments réutilisables de l’application contenant leurs propres logiques, ils sont indépendant l’un de l’autre, sauf pour les sous-composants - les composants utilisables dans un composant - comme le composant “Form” qui est composé de composant “InputFloating”

Les vues constituent les différentes pages de l’application et sont agrégées de multiples composants, les pages incorpore le contexte AuthContext pour identifier l’utilisateur.

Les contextes constituent les états globaux de l’application notamment l’authentification permettant d’identifier l’utilisateur connecté. Les contextes sont utilisés par les Vues.

Les routes accessibles sont décrites dans “App.js”.

image


Conclusion

Ce projet nous à permis de travailler en équipe et d’utiliser une méthode adaptée pour le travail d’équipe, l’utilisation de la méthode agile pour la gestion du projet et de git pour le versionning du projet par exemple.


Démo

https://www.youtube.com/watch?v=Nk5f8VwTSgo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published