Bonjour à vous tous
Laissez moi me présenter avant que je ne vous enquiquine avec ma question de débutant
Je suis étudiant à plein temps (journées de 7h-22h) et je suis occupé par mes cours la majeure partie de mon temps. Mais de temps à autres je me plonge dans mon ami Notepad++. J'ai des connaissances en html/css (autodidacte) mais j'avouerai que le php, je ne m'y connais que guère, c'est à peine si j'arrive à créer un formulaire de contact fonctionnel (ce qui est déjà pas mal pour moi ) Aussi je voulais m'initier dedans en créant un site (qui restera très certainement local si ça peut vous rassurer) avec comme base : des QCMs.
Rassurez vous, mes questions ne portent en aucun cas sur des notions de membres/base de données (le langage sql et moi nous ne sommes pas très amis m'voyez )
Pensez que je ne souhaite pas un code tout fait, sinon j'aurai demandé directement à un codeur de me le faire. J'aimerai que vous m'aiguillez, me donniez des pièces d'un puzzle que je construirait et dont je posterai l'avancée ici.
Voilà mon projet (appelez ça brouillon des charges si vous le souhaitez ^^) :
Je souhaite, sur une page qui servira de menu, pouvoir permettre à un utilisateur de s'entrainer via qcm sur des cours classés par matière.
En gros : choix matière -> choix cours.
A partir de là une fenetre (ou une lightbox javascript) s'ouvrirait avec une suite de 10 QCMs tirés au hasard parmi une liste préexistante. Ce que je souhaiterai, afin d'éviter l'usage d'une BDD (les futurs/nouveaux QCMs étant entrés par des personnes non compétentes en langage informatique), tirés parmi une liste de fichiers .txt ou .php qui contiendraient les informations des QCMs sous forme de variables. De plus, certains QCMs étant des QCS (choix simple) ou alors les propositions étant inverses (cochez les réponses fausses et non les vraies), j'aimerai que les fichiers le précisent.
Visuellement parlant, la fenetre (ou ligntbox) afficherait ceci :
Les choix étant fait toujours avec des boutons radio mais c'est du détailAnnée : 2013, item 23 : variables $annee et $item
Ennoncé : blablablabla $ennonce
Indiquez la ou les reponses correctes : $qcs=false; $inverse=false
OU Indiquez la réponse fausse : $qcs=true; $inverse=true
OU Indiquez la ou les réponses fausses : $qcs=false; $inverse=true
OU Indiquez la réponse vraie : $qcs=true; $inverse=false
1 : proposition 1 $prop1
etc
[Valider] (bouton pour passer au qcm suivant)
Et encore plus visuellement (j'ai codé un petit html css histoire de faire joli :
Je voudrais donc qu'il y ait 10 QCMs à la suite ainsi, une fois arrivé au dernier QCM je souhaiterai que l'on affiche les résultats dans un tableau (les réponses étant enregistrées dans une session je suppose) et qu'à partir de là on puisse faire une note de la personne qui a répondu (avec par exemple une notation du type :
-si tout bon, alors : 1 point
-si une erreur, genre correction : 134, mais la personne a coché 13 ou 14 ou 1234 ou 1235 par exemple, alors 0,5 points
-si deux erreurs, correction : 134, reponses : 1, 3, 12345 par exemple alors 0,1 point par exemple
-si plus de 2 erreurs alors 0 points
-si plus de 1 case cochée alors que QCS (donc si plus de une propositions cochées alors que le fichier précise $qcs=true, donc 0 points dans tous les cas
-si pas de case cochée, 0 points
etc etc, une fois que j'aurai compris le truc je pourrais m'amuser avec des notations farfelues :p
Après rassembler la note sous forme de variable pour que je puisse jouer avec (par exemple, dans le futur, la sauvegarder dans une BDD pour ensuite faire des stats, graphiques ou autres) ou simplement afficher la note :p
De plus, un complément de correction serait affiché genre :
Evidemment, les 2 variables $annee correspondraient à celles de 2 fichiers distincts (genre qcm1.txt et qcm12.txt comme ils sont tirés au hasard)Année : 2013, item 23 : variables $annee et $item
Ennoncé : blablablabla $ennonce
Indiquez la ou les reponses correctes : $qcs=false; $inverse=false
1 : faux car bla bla bla, le texte étant conservé dans $rep1 par exemple.
2 : etc etc etc
---------------------------------
Année : 20XX, item XX : variables $annee et $item
Ennoncé : blablablabla $ennonce
Indiquez la ou les reponses fausses : $qcs=false; $inverse=true
1 : faux car bla bla bla, le texte étant conservé dans $rep1 par exemple.
2 : etc etc etc
En parlant de ces fichiers, j'imaginais une suite de variables genre :
Mais évidemment, un script php serait tout aussi possible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 $annee=; $item=''; $ennonce=''; $image_url=''; <<<- ici je mettrai un lien direct vers une illustration optionnelle qui accompagnera l énnoncé, si elle est absente, ce sera un pixel transparent. $qcs=true; $inverse=false; $prop1=''; $prop2=''; $prop3=''; $prop4=''; $prop5=''; $rep1=''; $rep2=''; $rep3=''; $rep4=''; $rep5='';
(Du coup la page de qcm ne chargerait que les scripts de qcms et conserverait les réponses pour la fin quelque part, ce qui pourrait être plus pratique).
Bref, est ce que je vous ai perdu ? Si non, pensez vous que ce serait réalisable et si oui, seriez vous prêts à m'aider pour réussir ce projet (mon niveau en php étant novice et n'ayant pas trop de temps pour ça j'aimerai que vous me machiez en partie le travail, que je puisse apprendre sur des bases).
Mon objectif, au terme de codage de 30 à 60 min par jour, est de pouvoir décortiquer le code final pour comprendre les mécaniques du php, et la difficulté qu'est de retirer l'usage de BDD pourrait être assez interessant
Du coup, pour commencer je peux oubier la nouvelle fenêtre ou la lightbox et me contenter d'une page blanche sans mise en forme ^^
Par quoi dois-je commencer ?
Amicalement,
Alem180
Partager