You are on page 1of 8

Online Voting System

BY

Nirup Kumar Reddy and Ramya Gopalan


Introduction

Online voting or e-voting implies that a voter is allowed to cast his vote online. To support such
a system pied issues are encountered with regard to how to best accomplish the voting in a
secure way. Some of the intricacies involved are how to support both national and state level
elections, how to prevent one person from casting multiple votes, etc.

The requirements for such a system are:

1. There should be a hierarchical relationship between the stakeholders of the system, i.e.
an owner will be at the top of the hierarchy. He has the power and privileges to add and
remove administrators. Administrators in turn will be responsible for adding voters,
candidates, researchers and general masses.
2. An administrator will be responsible for starting an election. They will also associate
candidates with any particular election.
3. Voter will be allowed to change is vote till the contest is open.
4. Researchers will have access to all post election data including the results and other
statistics.

These requirements provide a base to research the design of the system. Some of the main
entities that will be a part of such a system are:

1. Actor
a. Administrator
b. Candidate
c. Voter
d. Researcher
e. General Mass
2. ActorList
a. AdministratorList
b. CandidateList
c. VoterList
d. ResearcherList
e. GeneralMassList
3. Election
4. ElectionList
5. ElectionDocs
6. Ballot
7. VoterCode
8. CodesList
9. Information
10. InformationView
11. Request
12. Statistics
Class Diagram

Fig: Class Diagram for Online Voting System


Major Patterns considered:

1. The generalization relationship between the actors and candidates, researchers, voters,
etc is a realization of factory.

2. There is a singleton relationship between Election and ballot which matches a real life
scenario where there is only one ballot associated with each election.

3. The hierarchical relationship between the different actorlists is accomplished through


abstract factory.

4. An election can have only one ballot which is considered as a Singleton.

5. Candidate is considered as super class of a voter which is in turn considered as a


prototype.

6. A strategy pattern was used to generate encrypted code different algorithms can be
used depending on the administrator's decision.

7. The general registration/login/logoff acts as a mediator.

8. Memento was used to undo information of actors/vote casting.

9. Researcher will be observer to the system.

10. The administrator is made as an observer and will be notified of any change that the
candidate makes.

11. A ballot was a realization of Flyweight pattern.

12. Forms for registration for each user as decorator.

13. Template & decorator was used for voter screen, Election screen.

14. Information view was considered as a Composite/observer.

15. Request like the one to validate the voter's encrypted code as Proxy.
Fig: Relationship between the interface ActorList and its inheriting classes

Fig: Association between Actor interface and other inheriting classes

Registration, login, and logoff modules act as mediator.


Fig: Association between Registration, ActorList, Login, Logoff

Fig: Association between Election and Ballot (Flyweight, Singleton)


Fig: Interplay between Voter and Ballot will serve as Memento

Fig: Relationship between InformationView and Information elicits Composition and Observer
Object Diagram:

Fig: Object Diagram for Online Voting System

You might also like