RAPPORT

Objectifs personnels et aspects conceptuels :

Pour cet exercice Javascript du staf.14, j'aimerais avant tout préciser que mon but était de fournir un certain travail non pas pour faire un exercice Javascript mais de développer un dispositif plus poussé dans le cadre de l'exercice libre. J'ai voulu développé un outil à l'aide des langages de scripting comme Javascript et PHP-MySQL, un outil qui puisse entrer dans le cadre du diplôme staf et qui puisse trouver une application directe dans les débouchées de ce dernier. Il facilement envisageable que je puisse avoir besoin dans mon avenir professionnel de développer un outil du type questionnaire ou autre, que cela soit dans le cadre de développement d'un logiciel éducatif sur net ou d'une plateforme dédiée à l'enseignement. Mon idée, certe assez ambitieuse, de base a été de développer un script qui permettent à des utilisateurs non-initiés au langage de scripting de pouvoir générer un quiz html et pouvoir l'exploiter dans une autre page. J'ai voulu exploiter au mieux toutes les possibilités (ou presque) usuelles de javascript pour développer un outil qui génère des formulaires sous une forme HTML et qui permettent d'en traiter les réponses.

Mon but premier étant comme à l'habitude de ma familiarisé au maximum avec les technologies à mettre en pratique pour la résolution de l'exercice, j'ai donc fait en sorte de faire le tour de toutes les options courante proposé par Javascript : les variables, les fonctions, les conditions, les tests, les boucles, quelques élément du DOM, etc.

Pour des raisons de contrainte de temps et de difficulté présentée pour la récupération d'une variable Array dans un nouveau script, j'ai du pour finir me contraindre à un script Javascript seul et me limiter à la génération d'un QCM à choix dichotomique. A la base je voulais faire en sorte de générer par la fonction Writeln toute la source du QCM pour que l'utilisateur n'ait qu'a copier-coller, mais je n'ai pas eu le temps et j'ai pensé que ct trop de temps pris pour un acquis minime en matière de compétence car faire une suite de Writeln() ne présente aucun intéret.

Aspects techniques :

Pour ce qui de l'aspect technique, j'ai trouvé judicieux d'exploiter des fonctions DOM du type window.prompt qui permet d'ouvrir des fenêtre de saisie et du type window.confirm qui ouvre une fenetre de confirmation. J'ai donc imaginer une fonction de saisi des données qui fait tourner une boucles du type DO...While qui ouvre une fenetre de saisi pour saisir l'énoncé de la question et une fenetre de confirmation pour dire si la réponse est à la question est vraie ou fausse. les réponses du sujet sont stockées dans 2 array distincts, un array de string pour les énoncés et un array boolean pour les réponses. J'ai utilisé la boucle DO...WHILE car je voulais faire en sorte que l'utilisateur puisse entrer le nombre de question qu'il veut. Il peut ainsi générer un QCM avec autant de question qu'il veut et aura pour consigne d'entrer une valeur nulle dans la fenetre de saisie d'énoncé quand il n'a plus de questions à entrer. C'est en cela d'ailleurs que les arrays sont pratiques pour stocker les données car on n'a pas besoin de créer un nombre fixe de variable et qu'à chaque incrémentation, une nouvelle entrée est ajouté à la table.

Une fois les données saisies, j'ai utilisé une 2ème fonction pour générer le QCM appelée "genequizz" cette fonction permet de générer le QCM à l'aide d'une boucle for ...in. Cette dernière affiche a chaque nouvelle ligne l'énoncé et 2 boutons radio vrai/faux. Le choix de la boucle for...in s'est imposé à moi car elle s'incrémente tant qu'il y a un énoncé à affiché dans la variable array ou ces dernières sont stocké.

En ce qui concerne le corps du domument html lui meme, il ne se compose plus que de la consigne et de boutons qui font appel aux 2 fonctions ci dessus.

Conclusions :

Je suis dans l'ensemble modérément satisfait de ce travail. Si je tiens compte de mes ambitions de départ, il est clair que je suis loin du compte mais le temps ne m'a pas permi d'y arriver à mon grand dame. Par contre je suis particulièrement satisfait d'avoir tout de meme atteints mes buts a courts terme. Je voulais accoucher d'un scripte qui soi élégant; entendons par la que je voulais qu'ils soit le plus court et le mieux organisé possible. Ce travail m'a permi de combler la frustration que j'avais eu dans le cadre du travail sur PHP ou mon code était particulièrement lourd et pas beau :). Je suis assez satisfait de la manière dont j'ai organisé mon code et retravaillé le tout pour le rendre le plus otimal possible. j'estime avoir fait bon usage des divers possibilité de Javascript, meme si dans l'ensemble mon travail reste très basique. J'ai appris beaucoup de choses, que cela soit au niveau de la pratique javascript qu'au niveau de la méthodologie dans la programmation.

références :

copyright TECFA, Mirweis SANGIN, 01.07.03