Le site arthur.bebou.netlib.re - retour accueil
git clone git://bebou.netlib.re/arthur.bebou
Log | Files | Refs |
commit 14a37152fb2f74eb553116af42dcbc30d2861f6a parent 295c423fa7618ce011442286180b167ade7640e1 Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Fri, 8 Nov 2024 09:58:42 +0100 MAJ article qcm pour être raccord avec le README Diffstat:
M | contents/qcm/index.sh | | | 93 | +++++++++++++++++++++++++++++++++++++++++++------------------------------------ |
1 file changed, 51 insertions(+), 42 deletions(-)
diff --git a/contents/qcm/index.sh b/contents/qcm/index.sh @@ -4,8 +4,14 @@ author: Arthur Pons description: Faire des sondages simples en parsant les logs d\'un serveur web publication: 2024-11-07 +#cat ~/git/qcm/README + sectionmd: main +Code : http://git.bebou.netlib.re/qcm/files.html + +Faire des sondages simples en parsant les logs d'un serveur web + Sur un vieux concept déjà décrit [ici](/sondages/#par-greppage-de-logs-de-serveurs-web). L'idée est d'en faire une sorte de [kahoot !](https://kahoot.it/) ou @@ -37,6 +43,13 @@ nombre de questions par défaut : 4 (ABCD) ## Installation +Télécharger le code : + + git clone git://bebou.netlib.re/qcm + +Compiler et installer + + cd qcm make make install @@ -47,51 +60,35 @@ modifiant la variable `DEST` dans le makefile. ### Créer des questionnaires -Scanner le fichier de log `/var/log/nginx/access.log`, proposer quatre réponses -`ABCD` et afficher l'url http://bebou.netlib.re/$id +La syntaxe des questionnaires est [ici](#le-format-du-fichier-de-questionnaire). + +Lancer la console de création de questionnaire : qcm Pareil mais afficher une autre url (si jamais l'édition du script n'est pas -possible) +possible) : qcm -u http://monsite.com -Comme le premier exemple mais avec six choix (ABCDEF) - - qcm -n 6 - Comme le premier exemple mais scanner le fichier de log `/var/log/httpd/logs` -plutôt que celui par défaut +plutôt que celui par défaut (attention il faudra sûrement adapter le code) : qcm -l /var/log/httpd/logs -Modifier le fichier de log *et* le nombre de questions par défaut - - qcm -n 3 -l /var/log/httpd/logs - Rafraîchir l'affichage plus vite (attention ça peut être un peu lourd en calcul) qcm -r 0.1 -Lancer un questionnaire pré-rempli se trouvant dans le fichier -`questionnaire.qcm` avec un taux de rafraichissement plus lent : - - qcm -r 2 -f ./questionnaire.qcm - -Pareil mais en lisant depuis stdin - - cat questionnaire.qcm | qcm -r 2 -f - - -Ecrire les questions à la volée sans les enregistrer au préalable dans -un fichier (nécessite de bien connaître la syntaxe auparavant : +Lire un questionnaire déjà fait depuis stdin et rafraîchir l'affichage toutes +les deux secondes : - qcm -f - + cat questionnaire.qcm | qcm -r 2 -Lancer un questionnaire en local sur un serveur équipé de `qcm` : +Lancer un questionnaire sur un serveur équipé de `qcm` : - cat questionnaire.qcm | ssh -t user@server qcm -f - + cat questionnaire.qcm | ssh -t user@server qcm ### Répondre aux questionnaires @@ -144,22 +141,25 @@ le `:` et `nom` mais avec un espace après le `:`. La liste des attributs : - * `question` : L'intitulé de la question. Optionnel, s'il n'existe pas rien ne sera affiché - * `type` : le type de question. Optionnel, `qcm`, type par défaut, proposera + * `question` : L'intitulé de la question. Optionnel. S'il n'existe pas rien + ne sera affiché + * `type` : le type de question. Optionnel. `qcm`, type par défaut, proposera un choix multiple (A, B, C...), uniquement ces réponses seront valides. Si `options` existe il fera correspondre les options aux différentes lettres. En l'absence d'`options` `qcm` proposera 4 choix par défaut (A, B, C et D). Malgré son nom `qcm` n'admet par défaut qu'une seule réponse possible. Voir - `choix`. `ouverte` permettra n'importe quelle réponse et ignore `options`. - * `options` : la liste des réponses possibles séparées par des `~`. Il ne - doit pas y avoir de `~` à la fin. Optionnel, s'il n'existe pas c'est `-n` - qui décidera du nombre de réponses possibles qui sera le même pour toutes - les questions. - * `unique` : si une seule réponse par IP est autorisée ou pas. Optionnel, "non" + `choix`. `ouverte` permettra n'importe quelle réponse et ignore `options`. + `regex` permet de restreindre les réponses possibles en écrivant un + expression régulière. Dans ce cas-ci `options` renseigne l'expression. + * `options` : Si la question est de type `qcm`, `options` est la liste des + réponses possibles séparées par des `~`. Il ne doit pas y avoir de `~` à la + fin. Si la question est de type `regex`, `options` est l'expression + régulière filtrant les réponses. Optionnel. + * `unique` : si une seule réponse par IP est autorisée ou pas. Optionnel. "non" enregistrera toutes les réponses, n'importe quoi d'autre (`oui` par exemple) filtrera sur les IP pour ne laisser que la première réponse passer. Par défaut `unique` est à oui. - * `choix` : si la question est à choix multiple ou pas. Optionnel, "multiple" + * `choix` : si la question est à choix multiple ou pas. Optionnel. "multiple" permettra de choisir plusieurs options, n'importe quoi d'autre l'empêchera. Par défaut les questions ne sont pas à choix multiple. Si la question est de `type` `ouverte` cet attribut est ignoré puisqu'il n'y a pas d'options @@ -180,9 +180,14 @@ Ainsi le fichier choix: multiple demander + question: Donnez un exemple de nombre réel svp + type: regex + options: [0-9]*[,.][0-9]+ + unique: non + demander + question: "Quels sentiments vous évoquent l'anarchie ?" type: ouverte - unique: non demander question: "Sachant que : @@ -199,7 +204,7 @@ Ainsi le fichier question: Et x-y ? demander -Posera cinq questions en tout. +Posera six questions en tout. 1. celle par défaut, un qcm avec quatre choix, aucun intitulé, aucune réponse possible d'affichée (juste les lettres). Par défaut ne permet de choisir @@ -208,9 +213,12 @@ Posera cinq questions en tout. 2. une qcm offrant le choix entre les trois équipes de foot. Il est possible d'en choisir plusieurs à la fois. Est toujours un qcm par défaut et ne permet de répondre qu'une seule fois. - 3. une question ouverte à laquelle on peut répondre plusieurs fois. Notez les + 3. une question `regex` demandant un nombre réel et filtrant sur une + expression régulière ne laissant passer que les nombres réels. Une même IP + peut envoyer plusieurs réponses. + 4. une question ouverte à laquelle on peut répondre plusieurs fois. Notez les `"` pour gérer l'apostrophe dans `l'anarchie`. - 4. une question de type `qcm` de math dont une seule réponse est correcte et + 5. une question de type `qcm` de math dont une seule réponse est correcte et à laquelle on ne peut répondre qu'une seule fois. Il faut ici rappeler que c'est une qcm, que l'on ne peut répondre qu'une seule fois et qu'une seule réponse est la bonne puisque par défaut on hérite des attributs de la @@ -218,7 +226,7 @@ Posera cinq questions en tout. ainsi que celle encore d'avant pour laquelle on pouvait choisir plusieurs options. On notera également que si l'on englobe tout dans des `"` on peut sauter des lignes et que l'on peut échapper des `"`. - 5. identique à la quatrième mais l'intitulé change. + 6. identique à la question 5 mais l'intitulé change. Étant donné que tous les attributs sont optionnels le fichier suivant : @@ -226,8 +234,8 @@ Posera cinq questions en tout. demander demander -Est valide. S'il est lancé avec la commande `qcm -f ./questionnaire.qcm -n 3` -il posera trois questions sans intitulé avec trois options de réponses chacune. +Est valide. Il posera trois questions sans intitulés avec quatre options de +réponses chacune. Si l'on veut créer un questionnaire à la volée et que l'on connaît bien la syntaxe ci-dessus on peut simplement lancer `qcm -f -` et écrire les questions. @@ -262,3 +270,4 @@ possibles : Dans les deux cas il sera de toute façon délicat de garantir la sécurité et on perd la possibilité de faire de la méta création de questionnaires. +