QCM

J’ai réalisé au sein d’une équipe de 3 personnes une application destinée à un centre de formation. Elle permet de créer des QCM puis de les faire passer à des candidats. Il peut s’agir de tests d’entrée ou de positionnement destinés aux personnes désirant intégrer le centre de formation, d’évaluations destinées aux stagiaires du centre, ou encore de tests techniques proposés lors du passage d’une VAE.

Nous avons étudié la demande initiale puis réalisé entièrement la phase d’analyse et conception, pour produire notamment les diagrammes de cas d’utilisation et d’activités système, les maquettes des différents écrans, ainsi que le schéma entités/relations pour construire la base de données.

Nous nous sommes ensuite répartis les tâches lors de la phase de codage. J’ai pour ma part travaillé principalement sur la partie « back office », qui permet à l’organisme de formation de créer différentes questions et tests (la partie front-office est destinée aux candidats qui passent les tests).
Pour faciliter le travail en groupe, nous avons utilisé le logiciel de gestion de versions « Subversion ».

Voici le rendu de l’application :

écran des thèmesLa page ci-dessus permet de visualiser les thèmes existants, de les modifier ou les supprimer. Chaque question créée est systématiquement rattachée à un thème. Cela permet ensuite de réaliser des tests personnalisés en proposant par exemple au candidat 10 questions sur le thème « Java » puis 5 questions sur le thème « POO » puis 2 questions sur le thème « sécurité », etc.

Ce principe est visible ici :
écran des sectionsSur cet écran, l’administrateur peut créer différentes sections, chacune d’elle définissant le nombre de questions à poser sur un thème donné ainsi que le temps accordé au candidat pour y répondre. Ces différentes sections seront ensuite reliées entre elles pour former un test complet.

 

écran de création d'une questionCi-dessus on visualise l’écran de création d’une question. Ici l’utilisateur s’apprête à choisir entre le type « QCM » avec plusieurs réponses possibles et le type « choix unique » avec une seule réponse juste. Grâce à une fonction JavaScript, l’affichage s’adaptera dynamiquement en fonction de son choix pour proposer soit des checkboxes soit des radio buttons.

Si l’utilisateur saisit des données incohérentes (question sans intitulé, une seule proposition de réponse, ou encore aucune réponse notée comme étant « juste »), il sera redirigé vers le formulaire. Les données qu’il aura précédemment saisies seront préremplies et il visualisera à l’écran les différentes erreurs à corriger :
erreurs à la création d'une question

Vous trouverez sur ce lien le code de la Servlet correspondante que j’ai réalisée.

Une fois le QCM créé et un candidat inscrit, celui-ci sera en mesure de passer le test :
écran de passage d'un testLes questions proposées au candidat sont tirées aléatoirement afin de limiter la triche. Le code de la méthode que j’ai réalisé pour cela est visible ici.

Le modèle MVC a été utilisé :
– les Servlets traitent les requêtes HTTP reçues. Si nécessaire, elles appellent un contrôleur qui lui-même appelle la…

-… couche d’accès aux données (DAL). Cliquez pour voir un exemple de fichier, ici pour la gestion des thèmes. J’ai utilisé des requêtes « préparées » pour éviter les injections de code SQL.

– et enfin des JSP ont été utilisées pour construire les vues.

Développeuse web / logiciel