Le 27/01/2012 10:20, Eric Chatellier a écrit :
CR Réunion Pollen du 25/01/2012 ===============================
Tony a un peu de temps a consacrer au développement de la version 2 de pollen. Cette version sera principalement une refonte : - du modèle de données (pour s'adapter aux contraintes d'évolutions remontée par les utilisateurs) - de la couche d'interface graphique (en effet, le framework Tapestry ne se relevant très compliqué à utiliser)
La réunion du jour porte sur l'orientation a données à la V2, et notamment à l'évolution de quelques écrans.
Release V2 ----------
Pour la version 2, le développement doit s'orienter vers un changement du framework de l'interface graphique sans modification visuelle visible par l'utilisateur. Le framework technique s'oriente pour le moment vers struts 2. La version 2 doit donc offrir les mêmes interfaces qu'actuellement permettant d'utiliser toutes les fonctionnalités de pollen.
Nouvelle interface de création ------------------------------
Pour la V2 les interfaces doivent rester les mêmes que pour la V1, sauf pour l'interface de création de sondage; le processus en étape étant trop long et disposant de trop d'options.
Les interfaces façonnée sur pencil ont été passée en revue. Voici ce qui a été décider par rapport aux interfaces précédemment proposées:
* Nom obligatoire ? Le nom du créateur devient non obligatoire en V2. Utilisé seulement à titre d'information pour savoir qui à créé un sondage sur lequel on vote.
* Informations obligatoires ? Seul le titre du sondage est obligatoire sur l'interface de création
* Bloc auteur (Nom/Mail) Masqué par défaut ce bloc (seulement afficher les informations en laissant la possibilité des les modifier)
* Fonctionnalité Wysiwyg pour la description Par pour l'instant. Rester simple, les widgets bling-bling seront ajoutés par la suite. Faire attention au contenu de la description qui pourrait contenir des scripts pouvant être interprété (XSS)
* Ajouter une description détaillée des type de sondage et des type de dépouillement au survol.
* Renommer le type de sondage classique en "Oui/Non"
* Remplacer "Type de sondage" par "Qui peut voter"
* Remplacer "Type de dépouillement" par "Type de Réponse"
* Déplacer "Type de réponse" dans le bloc de choix.
* Restructurer la page en deux onglets: - un onglet 'informations' avec les détails auteur, titre..., choix - un onglet 'options' contenant les options facultatives sur lequel il n'est pas nécessaire de se rendre pour créer un sondage
* Voir pour ajouter une interface d'entrée de plus pour créer directement un sondage orienté suivant un scénario ("créer un vote image", "créer un vote date") pré-remplissant certaines options dans l'interface de création
* Déplacer dans l'onglet 'options', les champs qui 'pollue' l'interface de création: - Date de début/date de fin - Qui peut voter - Options
* Au final, l'interface de création nécessaire doit contenir seulement: - sujet - description - choix - type de réponse
Autres modifications graphiques ou fonctionnelles ------------------------------------------------- Autre soucis gênant, sur la V1, il est parfois impossible de modifier certaines options après la création du sondage (obligeant parfois a refaire un nouveau sondage). Il faut : - autoriser 'toutes' les modifications possible tant qu'aucun vote n'a été enregistré sur le sondage - autoriser 'certaines' autre modification si des votes ont été enregistrés
Prévoir l'ajout de choix après le début du vote. Il n'est actuellement pas possible de différencié des choix non choisi des choix non voté car ajouté après le vote. Ajouter visuellement en plus des cases Vert/Rouge, une case "grise" pour les options ajouté après le vote n'ayant pas pu être prise en compte. Le dépouillement doit quand même prendre en compte les votes incomplets. L'information est disponible car le vote à une date et le choix à également une date d'ajout.
Ajouter la possibilité a un utilisateur de s'abonner aux modifications du sondage: - lors de l'ajout d'un choix - lors d'un vote - par email (et non pas compte utilisateur pour les utilisateurs non connecté)
Prévoir les choix "Oui/Non/Peut être". Par exemple, pour un choix de date, un des choix peut être possible pour quelqu'un mais moins arrangent qu'un autre.
Conserver l'ordre des choix: - ordre constant - date ordonnées - l'utilisateur peut modifier l'ordre des choix
Ajout de choix: - Est-ce possible de créer des choix de types différents (texte/date/image) ? - Auto conservation du type de choix d'un choix sur l'autre
La problématique des choix complexe (composé de sous options) a été abordée - réunion le 8 à Nantes - réunion le 8 à Rennes - réunion le 9 à Nantes - réunion le 9 à Rennes (date et lieu) Pollen ne doit pas gérer cela en internes (matrice de choix). Il peut cependant proposer un assistant de génération de ces choix pour retomber sur un sondage classique.
Commentaires ------------
Étudier la possibilité de tout commenter: - le vote en lui même - les choix voté et non voté ? - les choix voté par les autres utilisateurs
Ajouter un champs commentaire dans le formulaire de vote pour pouvoir voter et ajouter un commentaire classique lors du vote. Compléments techniques:
Modèle V2 --------- Le modèle de la V2 est aussi a définir rapidement, car c'est lui qui définira le format de stockage des données. Il faut donc revoir le modèle actuellement sur le trunk (qui a déjà été modifié depuis la V1) et le valider. Il faut également prendre en compte la migration des données (si possible automatique) pour la reprise des données (ne pas oublier que pollen à pu être installé par d'autres utilisateurs). Si possible en sql (la migration par export/import xml se relevant compliquée). Modification du modèle ---------------------- Le modèle a été revu durant la réunion. Quelques points sont à régler: - PollAccount et liste de votant - Liste de votant en favoris dans un compte utilisateur * reprise des listes de votant des sondages précédent ? Modèle de dépouillement ----------------------- Le module de dépouillement a été pensé (depuis la V1) pour être indépendant (non spécifique a pollen). Il est actuellement composé de son propre modèle de données et de ses services. La version actuelle n'étant pas très compréhensible, elle a été repensée durant la réunion: | Votant | | Vote | +--------------+ +----------------+ |id:Object | 1 ----> * |choiceId:Object | |weight:double | |value:double | Le service ne se composera plus que d'une seule opération de dépouillement: do(Collection<Votant>) : Map<ChoiceId, Score) Avec Score contenant : - un BigDecimal (pour les précisions des arrondis dont la somme doit faire 100 en pourcentage) Stocker également une liste de des personnes ayant voté à un choix a été abordé: - List<Votant> pour voir visuellement qui a voté pour tel choix dans les résultats. Mais le stockage n'est pas nécessaire, car le service disposant de la liste des votants, il peut retrouver l'information. Vote anonyme ------------ La sécurisation des votes et le vote anonymes ont été abordée et débattu sans vraiment trouver une solution simple et convenable. * Modification d'un vote anonyme (utilisateur non connecté) Les votant anonymes doivent disposer d'une adresse avec un token généré après leur vote permettant de modifier le sondage. * Rendre les votes anonymes vraiment anonymes Ce point a été abordé pour empêcher le traçage des votes pour les administrateurs ou autre système extérieur a pollen. Par exemple: - envoi d'un mail avec une URL1 - URL1 redirige sur une URL2 contenant le token de vote - URL1 ne peut plus être utilisée - L'url2 ne peut pas être associé à l'URL1 et donc au mail envoyé à l'utilisateur * Les options "Autoriser le vote anonymes" et "Vote anonyme" (lors du vote) ne sont pas très clair * Confusion entre "Sondage anonyme" et "Vote anonyme". Au final, la sécurisation des votes est quelques chose de très compliqués et il est basé sur un système de confiance: - code source de pollen - administrateur - infrastructure -- Éric Chatellier <chatellier@codelutin.com> Tel: 02.40.50.29.28 http://www.codelutin.com