Components
Presentation
The application is based on three distinct global components :
- pollen-ui : application presentation layer
- pollen-business : application persistence layer
- pollen-votecounting : separated module doing vote counting

UI Component (pollen-ui)
It allows data display to the user. This is our application view. This part is made using Tapestry framework from Apache.
Business component (pollen-business)
The business component is coumpounded of three different comonents :
- ServicesImpl : Component that implements all the application services
- DAO : Persistent entities manipulation layer (Creation/Modification/Deletion)
- Persistence : Component gathering all the persistent entities.
The business component offers six different interfaces/services to the presentation layer :
- ServiceAuth : Authentication service (for users having an account)
- ServiceManagerUser : Users management service (for users having an account)
- ServiceList : Voters list management service (groups, bookmarks,...)
- ServicePoll : Poll management service : Creation/Modification/Deletion/Moderation...
- ServiceVote : votes management service (Functionalities available for a voter)
- ServiceResults : Result management service
- ServiceComment : Comments management service.
Vote counting component(pollen-votecounting)
The vote counting component is compounded of two different components :
- VoteCountingExport : Component allowing polls and results exports under every file format (XML by default)
- VoteCountingExecuter : Component allowing the management of the different vote counting algorithms.
Vote counting component offers two different interfaces/services corresponding to the components presented above :
- ServicePollExport : result and poll export service, using a standard format.
- ServiceVoteCounting : vote counting management service.
Maven modules
3 Modules are created to manage those different components :
- UI : Presentation layer (Tapestry framework)
- Business : persistence and business layer (Use of ToPIA-Persistence framework)
- VoteCounting : separated vote counting module