Author: fdesbois Date: 2010-05-27 11:27:44 +0200 (Thu, 27 May 2010) New Revision: 3017 Url: http://chorem.org/repositories/revision/pollen/3017 Log: Reorganize doc + add business-rules Added: trunk/doc/ALMA-PFE-2009/ trunk/doc/ALMA-PFE-2009/Analyse.odt trunk/doc/ALMA-PFE-2009/Architecture.odt trunk/doc/ALMA-PFE-2009/Conception.odt trunk/doc/ALMA-PFE-2009/Gestion projet.odt trunk/doc/ALMA-PFE-2009/Infrastructure.odt trunk/doc/ALMA-PFE-2009/pollen-slides.odp trunk/doc/Stage-2009/ trunk/doc/Stage-2009/rapportRannou.odt trunk/doc/business-rules.rst Added: trunk/doc/ALMA-PFE-2009/Analyse.odt =================================================================== (Binary files differ) Property changes on: trunk/doc/ALMA-PFE-2009/Analyse.odt ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/doc/ALMA-PFE-2009/Architecture.odt =================================================================== (Binary files differ) Property changes on: trunk/doc/ALMA-PFE-2009/Architecture.odt ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/doc/ALMA-PFE-2009/Conception.odt =================================================================== (Binary files differ) Property changes on: trunk/doc/ALMA-PFE-2009/Conception.odt ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/doc/ALMA-PFE-2009/Gestion projet.odt =================================================================== (Binary files differ) Property changes on: trunk/doc/ALMA-PFE-2009/Gestion projet.odt ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/doc/ALMA-PFE-2009/Infrastructure.odt =================================================================== (Binary files differ) Property changes on: trunk/doc/ALMA-PFE-2009/Infrastructure.odt ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/doc/ALMA-PFE-2009/pollen-slides.odp =================================================================== (Binary files differ) Property changes on: trunk/doc/ALMA-PFE-2009/pollen-slides.odp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/doc/Stage-2009/rapportRannou.odt =================================================================== (Binary files differ) Property changes on: trunk/doc/Stage-2009/rapportRannou.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/doc/business-rules.rst =================================================================== --- trunk/doc/business-rules.rst (rev 0) +++ trunk/doc/business-rules.rst 2010-05-27 09:27:44 UTC (rev 3017) @@ -0,0 +1,200 @@ +Règles métiers +============== + +:Author: fdesbois <pollen-devel@codelutin.com> +:Date: 2010-05-26 +:Version: 1.0 + +Ce document a pour but de cataloguer l'ensemble des règles métiers de l'application Pollen. +Ces règles dépendent principalement des options du sondage. + +Avant-propos +------------ + +Pollen fonctionne via des urls générés pour l'accès au sondage. Ces urls sont nécessaires lorsqu'une personne n'a pas de compte +utilisateur. Une classe correspond à cette uri pour Pollen : PollUri. Elle contient à la fois l'uid (identifiant unique) du sondage et celui d'un compte sondage (PollAccount). Ce dernier peut correspondre au créateur du sondage ou à un votant. + +Options du sondage +------------------ + +- beginDate : date de début du sondage + + * aucun vote possible avant cette date + +- endDate : date de fin du sondage + + * aucun vote possible après cette date + +- maxChoiceNb : nombre de choix maximum par vote + + * aucun vote possible avec plus de choix qu'indiqué par cette option. + * par défaut autant de choix sont possibles < nombre de choix du sondage + * option utilisé uniquement pour un dépouillement NORMAL (trop complexe pour CONDORCET, inutile pour POURCENTAGE et NUMBER) + +- closed : indique que le sondage est clos + + * aucun vote possible + * aucune modification des votes existants possible + * aucune modification du sondage possible (choix, votants, options...) + * seul possibilité : lecture résultats et execution different algos de dépouillement si possible (dépend du type de dépouillement configuré dans le sondage) + +- choiceAddAllowed : indique que l'ajout de choix est permis par les votants uniquement + + * la possibilité de voter dépend des dates du sondage et non celle des choix + * la permission d'ajout de choix est fortement correlé aux dates beginChoiceDate et endChoiceDate + * Note : attention au vote pendant l'ajout de choix : comportement bizarre sur certains dépouillement (voir Ano #139) + +- anonymousVoteAllowed : indique que le vote peut etre anonyme + + * les champs name, email et userAccount ne sont pas persistés (restés à null) + * plus de notifications possibles par email + +- anonymous : indique que le sondage reste anonyme (choix des votes et nom des votants) + + * idem que l'option précédent. Seule l'UI ne chargera pas les valeurs des votes + +- publicResults : indique que les résultats sont accessibles par n'importe qui + + * accès a la page de résultats pour tout le monde + * si l'option n'est pas enregistré, les résultats ne sont accessibles que par le créateur du sondage : accès restreint à la page des résultats (uid du créateur nécessaire). + * Note : il n'y a pas de juste milieu entre le créateur et le visiteur, remarque seul un visiteur connaissant l'url du sondage pourra accéder aux résultats. + +- continuousResults : indique l'affichage en continu des résultats + + * besoin de dépouillement à chaque vote + * les résultats sont obligatoirement publiques + +- voteCounting : type de dépouillement + + * Dépouillement POURCENTAGE : somme des choix = 100% / possibilité de choix vide = 0 + * Dépouillement NUMBER : uniquement nombre (entier ou non) / possibilité de choix vide = null + * Dépouillement CONDORCET : uniquement des nombres entiers / possibilité de choix vide = null + * Dépouillement NORMAL : uniquement des booléens (vrai/faux) / possibilité de choix vide = null + +- type : type de sondage + + * Sondage restreint (RESTRICTED ou GROUP) + + # accès du vote nécessitant un uid généré à la création du sondage + # possibilité de modifier/supprimer son vote + # email des votants obligatoires à la création du sondage + # liaison entre le votant et le compte utilisateur si connecté (au moment du vote) + + * Sondage libre (FREE) + + # accès du vote libre + # possibilité de modifier/supprimer son vote avec l'uid généré au moment du vote + # possibilité d'ajouter son email au moment du vote + # liaison entre le votant et le compte utilisateur si connecté (au moment du vote) + +- choiceType : type de choix (en attente) + +- preventRules : notifications par email (voir plus loin) + +- creator : Créateur du sondage (PollAccount) + + * Sans compte utilisateur + + # email non obligatoire + # envoie d'email si indiqué (au créateur et la/les liste(s) restreinte(s)) + + * Avec compte utilisateur + + # même possibilités que sans compte + # accès aux listes de favoris pour les sondages restreints (RESTRICTED et GROUP) + # liaison physique entre le créateur (PollAccount) et l'utilisateur connecté (UserAccount) + +Validation du vote +------------------ + +- beginDate < now +- endDate > now +- closed = false +- uid de vote autorisé (RESTRICTED/GROUP) +- valeur des choix autorisé (dépend du type de dépouillement) +- nombre de choix < maxChoiceNb + +Vote +---- + +- nom du votant +- email du votant (non obligatoire) : uniquement si le votant est non connecté et sur un sondage FREE +- anonymousVoteAllowed: option anonyme disponible + +Enregistrement du vote +---------------------- + +- anonymous/anonymousVoteAllowed : pas de sauvegarde nom/email/compte utilisateur +- continuousResults : nécessite un depouillement +- type = FREE : génération de l'uid (nécessaire pour modification du vote) +- enregistrement flux RSS +- envoie email si disponible (PollAccount ou UserAccount) + +Accès +----- + +- Création du sondage : pollUri = null +- Modification du sondage : pollUri = pollUid / creatorUid ou ADMIN +- Suppression du sondage : pollUri = pollUid / creatorUid ou ADMIN + +- Ajout d'un vote : pollUri = pollUid / participantUid (RESTRICTED/GROUP) ou null (FREE) +- Modification d'un vote : pollUri = pollUid / participantUid ou ADMIN +- Suppression d'un vote : pollUri = pollUid / participantUid ou creatorUid ou ADMIN + +- Ajout d'un choix : même chose que pour l'ajout d'un vote +- Suppression d'un choix : pollUri = pollUid / creatorUid ou ADMIN +- Modification d'un choix : fait à partir de la modification du sondage + +- Ajout d'un commentaire : pollUri = pollUid / creatorUid ou participantUid ou null ? +- Suppression d'un commentaire : pollUri = pollUid / creatorUid ou ADMIN + +- Voir résultats : (PUBLIC_RESULTS = true) pollUri = pollUid +- Voir résultats : (PUBLIC_RESULTS = false) pollUri = pollUid / creatorUid ou ADMIN +- Executer un dépouillement : pollUri = pollUid / creatorUid + +Notifications +------------- + +Deux modes de notification indépendants : email et rss. + +- Création sondage : [email : createur / participants (RESTRICTED/GROUP)] + +- Modification sondage : [email : participants ?] + +- Gestion choix : [rss] [email : createur ? / participants ?] + +- Vote : [rss] [email : createur (configuration) / participant non connecté avec email (FREE)] --> Notifier + +- Avant fin du sondage (background) : [email : participants sans vote (RESTRICTED/GROUP)] --> Reminder + +- Fin du sondage : [rss] [email : createur / participants] + +- Execution premier dépouillement (PUBLIC_RESULTS && !CONTINUOUS_RESULTS) : [rss] [email : participants] + +- Commentaire : [rss] [email : createur ? / participants ?] + +Note : + Fusion possible entre fin du sondage et premier dépouillement pour l'envoie d'email aux participants + +Note : + Les cas avec des ? ne sont pas forcément utiles à cause du suivi rss + + + + + + + + + + + + + + + + + + + + Property changes on: trunk/doc/business-rules.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL