Poll Everywhere

L'objectif du projet est de concevoir un site web qui permet de créer des sondages en ligne.

Introduction

Poll Everywhere est un site web qui propose un service de vote en ligne. Ce site fait partie des systèmes appelés « Audience Response Systems (ARS) », qui sont très largement utilisés dans les pays anglo-saxons et font actuellement leur entrée dans les salles de cours des universités.

Un ARS est un système qui permet de poser des questions à de très grands groupes de personnes tout en permettant de recueillir précisément les réponses de chacun des participants. Les applications de ces systèmes sont très variées : prises de décision, examens (en France par exemple, ce système est utilisé pour l'examen du code de la route), jeux télévisés, conférences, études de marché...

Il existe deux types d'ARS :

  1. les systèmes qui s'appuient sur des boitiers de vote physiques, sortes de télécommandes aussi appelées « clickers » ;
  2. les systèmes entièrement logiciels qui tirent parti du fait que la plupart des gens possèdent aujourd'hui des appareils électroniques tels que téléphone mobile, tablettes ou ordinateurs portables avec une connectivité élevée (wifi, 3G, bluetooth...) qui peuvent donc remplacer les boitiers matériels.

Poll Everywhere fait partie de la deuxième catégorie d'ARS. Il permet aux utilisateurs de voter via un site web ou via des SMS.

Fonctionnement

Création d'une question

Créer un « poll », c'est-à-dire une question, consiste à fournir un intitulé puis à choisir un type de question.

Deux types de questions sont actuellement supportés : question avec réponse en texte libre, et question avec choix parmi un ensemble réponses. Dans le deuxième cas l'utilisateur peut saisir les différentes réponses possibles et décider combien de réponses les voteurs peuvent sélectionner (1 parmi plusieurs ou x parmi plusieurs).

Poll Everywhere Question

Création d'une question à choix multiples.

Phase de vote

Lors de la création de la question, le système génère un code unique pour chaque réponse. C'est ce code que devront saisir les participants au vote (voteurs).

Il existe trois façons possibles de voter pour les participants :

  • via une page web générique contenant un formulaire permettant de saisir le code de la réponse choisie ;
  • via une page web personnalisée (pour cela, l'utilisateur doit avoir créé un compte sur le système), sur laquelle s'affiche la question avec différents boutons correspondant aux réponses possibles ;
  • en envoyant le code de la réponse choisie par SMS (non considéré dans ce projet).

Poll Everywhere Vote

Codes générés pour les réponses à la question.

Poll Everywhere Vote

Vote via la page web générique de réponse.

Poll Everywhere Vote

Vote via la page web personnalisée de réponse.

Affichage des résultats

Les résultats du vote sont affichés au fur et à mesure du vote. Plusieurs modes d'affichage sont possibles : histogramme, statistiques, liste des réponses.

Poll Everywhere Stats

Affichage de l'histogramme de vote.

Fonctionnalités minimum attendues

  1. L'utilisateur doit pouvoir créer une question avec un intitulé et une ou plusieurs réponses. Différents types de réponses seront distingués : texte libre, une réponse parmi plusieurs propositions, plusieurs réponses parmi plusieurs propositions, oui/non...
    L'implémentation des différents types de réponses pourra être progressive, depuis le plus simple au plus compliqué.
  2. L'utilisateur doit pouvoir proposer une question au vote (via une page web) et recueillir les votes de l'audience.
  3. L'utilisateur doit pouvoir visualiser les votes de l'audience sous la forme de graphiques montrant le comptage des votes.
    Pour les réponses en texte libre, une visualisation sous la forme de liste ou de nuage pourra être envisagée.


Les fonctionnalités avancées suivantes pourront être envisagées dans un deuxième temps :

  • possibilité de créer des intitulés de question avec un formatage complexe (mise en forme du texte, inclusion d'images ou de code...) ;
  • possibilité de savoir quel voteur a fourni quelle réponse (il sera nécessaire d'identifier les voteurs) ;
  • possibilité pour un voteur d'annuler et corriger son vote ;
  • possibilité de créer des groupes de questions, posées les unes à la suite des autres par le système ;
  • possibilité de visualiser les réponses individuelles des voteurs ;
  • mode push : l'utilisateur décide quand les questions sont visibles des voteurs ;

Quelques pistes pour démarrer

Composants du projet

Le projet peut être décomposé en trois modules principaux :

  • gestion des questions et des réponses : types de questions et de réponses supportées, fonctionnalités d'édition... ;
  • gestion des votes : interaction push/pull, identification des voteurs, compte à rebours... ;
  • gestion des statistiques : calculs, affichage graphique...

Une des premières étapes de la conception consistera à définir la structure de données qui sera utilisée pour représenter une question et la(les) réponse(s) associées.

Les utilisateurs (créateurs de questions et voteurs) devront probablement être représentés également dans le logiciel.

Architecture technique

Ce projet étant un projet web, l'architecture technique utilisée sera en « trois tiers » : client léger (navigateur web), serveur d'applications Java EE et serveur de bases de données.

Une attention particulière devra être portée à la conception de la base de données qui permettra de stocker les questions et les réponses (et qui permettra d'obtenir les statistiques).

Technologies

Il pourra être intéressant de regarder :

  • HTML et CSS pour la structure et l'aspect graphique des pages web.
  • La version de Java permettant de réaliser des application web Java Enterprise Edition.
  • Les bibliothèques permettant de générer des graphiques à partir de statistiques, telles que JFreeChart ou yFiles par exemple.

Documents