2017 © Pedro PelĂĄez
 

project quizzes

Hi-media Quizzes

image

himedia/quizzes

Hi-media Quizzes

  • Monday, October 28, 2013
  • by geoffroy-aubry
  • Repository
  • 5 Watchers
  • 17 Stars
  • 13 Installations
  • CSS
  • 0 Dependents
  • 0 Suggesters
  • 18 Forks
  • 9 Open issues
  • 6 Versions
  • 0 % Grown

The README.md

Quizzes

Latest stable version, (*1)

Plate-forme de quizzes à choix multiples (QCM) avec interface d'analyse des résultats., (*2)

Technologies : Silex, Twig, Bootstrap, Composer, aucune base de données., (*3)

Sommaire

Description

Deux zones

  • L'une publique pour choisir un questionnaire, le dĂ©rouler et obtenir score et statistiques.
  • L'autre avec mot de passe pour accĂ©der aux sessions passĂ©es, Ă  leur score et statistiques, Ă  leur correction dĂ©taillĂ©e et au suivi temps rĂ©el des sessions en cours.

Questionnaires

La plate-forme de quizzes permet :, (*4)

  • d'hĂ©berger et proposer de multiples questionnaires,
  • de proposer des sessions mĂ©langeant plusieurs questionnaires,
  • de rĂ©aliser des sessions ne portant que sur une partie des questions d'un ou plusieurs questionnaires, questions tirĂ©es alĂ©atoirement,
  • de dĂ©sactiver voire masquer des questionnaires tout en continuant de les inclure dans d'autres questionnaires,
  • une grande facilitĂ© d'ajout de questionnaires, coloration syntaxique des bouts de code pouvant Ă©mailler les questions et propositions de rĂ©ponse,
  • une impression du rĂ©sultat des sessions.

Dans un questionnaire :, (*5)

  • chaque question appartient Ă  un thĂšme afin de faciliter l'analyse des rĂ©ponses, mais cette information ne transparaĂźt pas forcĂ©ment dans l'Ă©noncĂ© des questions (un seul thĂšme est retenu par question par souci de simplicitĂ©),
  • thĂšmes, questions et propositions arrivent dans un ordre diffĂ©rent Ă  chaque session,
  • le temps restant est affichĂ© constamment,
  • pas moyen de revenir sur une question prĂ©cĂ©dente (page prĂ©cĂ©dente sans effet),
  • le barĂšme est optimal lorsque toute question admet au moins une bonne proposition et au moins une mauvaise proposition.

BarĂšme

Le barÚme favorise l'absence de réponse à la mauvaise réponse. Il vaut mieux s'abstenir lorsque l'on n'est pas sûr de soi., (*6)

Ainsi de maniÚre générale, si une question possÚde P propositions de réponse, alors :, (*7)

  • chaque question nĂ©cessite de cocher 1 Ă  P-1 cases et rapporte de -1 Ă  1 point, 0 si non rĂ©pondue.
  • si une question requiert N cases cochĂ©es pour la bonne rĂ©ponse, alors :
    • chaque case bien cochĂ©e rapporte 1/N point,
    • chaque case mal cochĂ©e enlĂšve 1/(P-N) point.

Il en découle que les trois stratégies suivantes aboutissent à un score nul : * cocher toutes les cases, * n'en cocher aucune * et statistiquement cocher au hasard 1 à P-1 cases., (*8)

Installation et configuration

Git clone

Cloner dans le rĂ©pertoire de votre choix, par ex. /var/www/quizzes (le rĂ©pertoire doit ĂȘtre vide) :, (*9)

$ git clone git@github.com:Hi-Media/Quizzes.git /var/www/quizzes

DĂ©pendences

Composer

La plupart des dépendences sont gérées par composer. Lancer l'une des commandes suivantes :, (*10)

$ composer install
# or
$ php composer.phar install

Au besoin, pour installer composer localement, lancer l'une des commandes suivantes :, (*11)

$ curl -sS https://getcomposer.org/installer | php
# or
$ wget --no-check-certificate -q -O- https://getcomposer.org/installer | php

Lire http://getcomposer.org/doc/00-intro.md#installation-nix pour plus d'informations., (*12)

Mailing

L'envoi de mail exploite mutt., (*13)

Configuration

Apache 2

Les rewrite rules sont nécessaires. Un fichier .htaccess se trouve dans /www pour rediriger les URLs sur /web/index.php. Au besoin :, (*14)

$ sudo a2enmod rewrite

Exemple de virtual host :, (*15)

$ cat /etc/apache2/sites-enabled/quizzes.xyz.com

<Directory /var/www/quizzes/web>
    Options -Indexes
    AllowOverride FileInfo
    Order allow,deny
    allow from all
</Directory>

<VirtualHost *:80>
    ServerName    quizzes.xyz.com
    ServerAlias    quizzes
    ServerAdmin    admin@xyz.com
    RewriteEngine    On
    DocumentRoot    /var/www/quizzes/web

    ErrorLog    /var/log/apache2/quizzes-error.log
    CustomLog    /var/log/apache2/quizzes-access.log combined
    LogLevel warn
</VirtualHost>

Application

Initialiser le fichier de configuration en dupliquant conf/qcm-dist.php et en l'adaptant :, (*16)

$ cp '/var/www/quizzes/conf/qcm-dist.php' '/var/www/quizzes/conf/qcm.php'

Pour mettre à jour des comptes d'administration modifier la clé 'admin_accounts', tableau au format login => md5(password)., (*17)

Mise Ă  jour des questionnaires

Les questionnaires sont cryptés en AES-256 sur le serveur web., (*18)

Lors d'une mise à jour des questionnaires exécuter le script /src/encrypt.php afin de régénérer les /resources/quizzes/*.enc.php à partir des /resources/quizzes/src/*.php. Le répertoire /resources/quizzes/src n'est alors plus nécessaire, ainsi que /src/encrypt.php., (*19)

Des exemples de questionnaires sont disponibles dans /resources/quizzes/examples :, (*20)

  • 2 mini questionnaires intitulĂ©s « Additions » et « Multiplications »,
  • 1 questionnaire « JavaScript » d'une seule question mais illustrant l'insertion de code avec coloration syntaxique,
  • 1 questionnaire nommĂ© « Toutes les questions ! » expliquant comment dĂ©clarer un questionnaire comme l'union d'autres questionnaires
  • et 1 questionnaire intitulĂ© « Un petit peu de tout
 » piochant au hasard un nombre dĂ©fini de question parmi celles des autres questionnaires.

Les copier dans /resources/quizzes/src pour les utiliser dans l'application
, (*21)

Captures d'Ă©cran

DĂ©roulement d'une session

Choix de la session :, (*22)

Choix de la session, (*23)

Un questionnaire peut ĂȘtre la rĂ©union de plusieurs questionnaires ou une partie d'un autre questionnaire :, (*24)

Questionnaire Ă  partir d'autres, (*25)

Identification du candidat :, (*26)

Identification du candidat, (*27)

Exemple d'affichage d'une question :, (*28)

Affichage d'une question, (*29)

Analyse

Accueil de la section d'administration avec liste des sessions passées et en cours :, (*30)

Liste des sessions, (*31)

Résultat général d'une session :, (*32)

Résultat général d'une session, (*33)

Score par thÚme avec visualisation de la quantité de points perdus par pénalités :, (*34)

Score par thĂšme, (*35)

Temps moyen de réponse par thÚme :, (*36)

Temps par thĂšme, (*37)

Catégorisation des réponses par thÚme :, (*38)

Catégorisation des réponses par thÚme, (*39)

Correction d'une question, accessible seulement à partir de la zone privée :, (*40)

Correction d'une question, (*41)

Configuration d'un questionnaire, dans /resources/quizzes/src :, (*42)

<?php

return array(
    'meta' => array(
        'title' => 'POO et design patterns',
        'time_limit' => 15*20,
        'max_nb_questions' => 0,
        'status' => 'available' // {'available', 'deactivated', 'hidden'}
    ),
    'questions' => array(
        array(
            'POO',
            "Quel est le patron de conception central dans Doctrine 2 ?",
            array(
                "table data gateway" => false,
                "active record" => false,
                "data mapper" => true,
                "row data gateway" => false,
            )
        ),
        

    )
);

Copyrights & licensing

Licensed under the GNU General Public License v3 (GPL-3.0+). See LICENSE file for details., (*43)

Change log

See CHANGELOG file for details., (*44)

Git branching model

The git branching model used for development is the one described and assisted by twgit tool: https://github.com/Twenga/twgit., (*45)

The Versions