Composants
Présentation
L'application est composé de trois composants globaux distincts :
- Presentation / IHM : Couche de présentation de l'application
- Business : Couche de persistance de l'application
- VoteCounting : Module séparé permettant la gestion des dépouillements

Composant IHM (pollen-ui)
Il permet l'affichage des données à l'utilisateur. C'est la vue de notre application. Cette partie sera faites en utilisant le framework Tapestry de Apache.
Composant Business (pollen-business)
Le Composant Business est composé de 3 composants différents :
- ServicesImpl : Composant qui implémente l'ensemble des services de l'application
- DAO : Couche de manipulation des entités persistantes (Creation/Modification/Suppression)
- Persistence : Composant regroupant toutes les entités persistantes.
Le Composant Business propose 6 différentes interfaces/services disponibles pour la couche de présentation :
- ServiceAuth : Service d'authentification à l'application (valable pour les utilisateurs ayant un compte)
- ServiceManagerUser : Service permettant la manipulation des utilisateurs (personnes ayant un compte)
- ServiceList : Service permettant la manipulation des listes de votants (groupes, favoris, ...)
- ServicePoll : Service de gestion des sondages (poll) : Création/Modification/Suppression/Modération...
- ServiceVote : Service de gestion des votes : Fonctionnalités accessible pour un votant.
- ServiceResults : Service de gestion des résultats.
- ServiceComment : Service de gestion des commentaires.
Composant VoteCounting (pollen-votecounting)
Le Composant VoteCounting est composé de 2 composants différents :
- VoteCountingExport : Composant permettant l'export de résultats et de sondages sous un format de fichier quelconque (ici XML par défaut)
- VoteCountingExecuter : Composant permettant la gestion des différents algorithmes de dépouillement
Le Composant VoteCounting propose 2 différentes interfaces/services correspond respectivement à chaque composant présenté ci-dessus :
- ServicePollExport : Service de gestion des exports d'un sondage et de ses résultats sous un format Standard
- ServiceVoteCounting : Service de gestion des dépouillements.
Modules Maven
3 Modules sont créés pour géré ces différents composants :
- UI : Couche présentation (Framework Tapestry)
- Business : Couche métier de l'application et persistance (Utilisation de ToPIA-Persistence)
- VoteCounting : Module séparé de gestion des dépouillements