:: Enseignements :: Master :: M2 :: 2012-2013 :: Développement Android ::
[LOGO]

Andex


Avertissement : le présent sujet de projet est susceptible d'évolution ; certains détails d'implantation décrits peuvent être amenés à évoluer ou être précisés. Il est conseillé de s'y reporter régulièrement.

Une page de wiki est disponible ici afin de discuter à propos du projet et indiquer vos groupes de travail.

Le projet Andex consiste à réaliser une application Android servant d'aide pour le passage d'examens. Elle est destinée à être utilisée sur une tablette manipulée par un étudiant qui pourra consulter le sujet d'examen et répondre aux questions posées.

Déroulement d'un examen avec Andex

Chaque étudiant dispose d'une tablette disposant de l'application Andex. Celui-ci se logge en fournissant son nom d'utilisateur et son mot de passe. Ces informations sont communiquées à un serveur central qui renvoie une liste d'anciens sujets d'examen ainsi qu'un potentiel examen de survenue imminente. L'application propose alors de consulter des anciens sujets d'examen (avec les réponses données) ou, si un examen est imminent, de participer à celui-ci.

La participation à un examen implique le téléchargement depuis le serveur de son sujet. Le sujet se présente sous la forme d'un fichier contenant l'ensemble des exercices et questions organisés sous la forme d'un arbre de profondeur quelconque (ex : partie 2, exercice 3, question 4, sous-question a...). Une activité permet de consulter de manière conviviale le plan du sujet (de manière synthétique ou développée). À partir de ce plan il est possible de se rendre vers n'importe quel item du sujet. Il est également possible de naviguer séquentiellement entre les items. L'étudiant peut ainsi traiter les items dans l'ordre souhaité. Un item peut être uniquement descriptif pour présenter un problème ou peut nécessiter une réponse. L'item peut contenir du texte (avec des liens hypertextes entre différents items), des images, sons ou vidéos. Si une réponse est requise elle peut se présenter sous la forme d'un choix unique ou multiple à réaliser entre différents éléments, une réponse textuelle (à réaliser avec le clavier physique ou virtuel de la tablette), un schéma (à dessiner au doigt ou au stylet), une image (prise avec l'appareil photo de la tablette). Une réponse peut être également une combinaison des éléments précédents (par exemple des choix multiples accompagné d'une justification textuelle avec la possiblité d'ajouter une photo d'une feuille avec écriture manuscrite si l'étudiant préfère écrire sur une feuille plutôt que la tablette). Certains items peuvent nécessiter une réponse (généralement des choix multiples) en temps limité : l'utilisateur doit être prévenu et demander le démarrage du compte à rebours dévoilant la question. A son expiration, l'item est toujours consultable mais la réponse apportée n'est plus modifiable.

Au cours de l'examen, des mises à jour du sujet pourront être proposées par l'examinateur en cas d'erreur ou de précisions à apporter par une mise à disposition sur le serveur. Ces mises à jour pourront être accompagnées d'une courte explication. L'application doit récupérer au cours de l'examen les mises à jour et en notifier (sans être trop intrusive) l'étudiant avec l'explication fournie. Si un item est modifié, les réponses déjà apportées par l'étudiant doivent bien sûr être conservées. On pourra spécifier un identifiant unique et constant pour chaque item afin de le suivre lors d'une mise à jour.

Un module de messagerie instantanée est disponible afin que l'examiné puisse dialoguer avec l'examinateur par le biais d'un serveur central relais. Le dialogue avec les autres examinés n'est normalement pas prévu ;)

Modules à implanter pour l'application cliente

Nous décrivons ici les différents modules à implanter pour le projet du côté de l'application cliente.

Application serveur

L'application serveur maintient une base d'étudiants, de sujets ainsi que de copies électroniques. Elle supporte le protocole HTTP en utilisant le paradigme REST et en proposant les primitives suivantes : Toutes les réponses sont retournées sous le format JSON (Android dispose de l'API org.json pour les convertir en Map) à l'exception des requêtes GET /exam et GET /fetch où un fichier binaire (avec l'énoncé ou les réponses fournies) est directement retourné. Un script Python est fourni avec l'implantation basique d'un serveur. Son fonctionnement est décrit en tête de script. Il n'a été que très sommairement testé et n'est pas exempt de bugs divers.

Formats des fichiers sujet et copie électronique

Aucune contrainte n'est imposée sur le choix des formats de fichier pour les sujets et copies électroniques. Pour le sujet, le format doit supporter la spécification d'un arbre d'items avec leur types de réponses associés. À chaque examen doit être associé un identifiant unique spécifié dans le format. Un fichier d'énoncé pourra être accompagné de fichiers externes pour les éléments multimédias ; tous les fichiers seront empaquetés dans un fichier zip (cf méthode GET_exam du serveur de test). Pour la copie électronique, il doit être possible d'y stocker les réponses ainsi que le journal chronologique des actions. Il est conseillé d'utiliser un format facilement éditable par un humain (les sujets et copies doivent être lisibles/éditables par un éditeur de texte classique). Les formats crées devront être documentés.

Consignes

Améliorations

Toute amélioration est la bienvenue si les fonctionnalités demandées ont été correctement implantées. On pourra notamment s'intéresser à intégrer des éléments dans le sujet pour l'auto-correction (barème, réponses pour des QCM) : à la fin de l'examen une note partielle et la visualisation des réponses pourraient être possibles. Un mode correcteur pourrait également être implanté afin de visualiser, annoter et noter les copies.