ST.
MARY’S UNIVERSITY
DEPARTMENT OF COMPUTER SCIENCE
Rapid Application Development
ONLINE VOTING SYSTEM
DONE BY:
Name ID
1.Abenezer Belhu RCD/1782/2014
2.Amanuel Hailu RCD/1784/2014
3.Robem Mulatu RCD/1816/2-14
4.Surafel Nigussu RCD/1819/2014
Date: 12/30/2024
Submitted TO: instructor Eyasu
Online voting system
An Online Voting System is a secure and accessible digital platform designed to facilitate the
entire voting process—ranging from voter registration, party and candidate management,
vote casting, to result publication. By moving traditional paper-based election procedures to
the online domain, this system aims to increase voter turnout, reduce administrative costs,
and streamline the process of collecting, counting, and auditing votes. Advanced security
mechanisms ensure the integrity of each vote, while intuitive user interfaces make the
system user-friendly for all stakeholders, including voters, administrators, and election
officials.
Project Requirements
1. Functional Requirements
1. User Registration & Authentication
o Users (voters) must register with valid personal information.
o Users log in securely using email/username and password.
2. Voting & Parties
o Users can browse the list of parties and their candidates.
o A registered user can cast only one vote per election/contest.
o The system must ensure a user cannot vote more than once.
3. Results
o The system should display real-time or post-election results based on admin
settings.
o Only the admin can authorize when final results are published.
4. Events Management (Admin)
o Admin can create events (e.g., election schedules, announcements).
o Admin can edit or delete these events.
5. Audit & Security
o System must track who voted and when (without revealing how they voted).
o Must have measures to prevent fraud and ensure confidentiality and integrity
of votes.
2. Non-Functional Requirements
1. Performance
o The system should handle high concurrency (many voters accessing at once).
2. Security
o All passwords must be stored in encrypted form.
o Implement secure HTTPS connections (TLS/SSL) for data transmission.
3. Reliability
o The system should ensure 99.9% uptime, especially during critical voting
periods.
o Conduct frequent system backups to prevent data loss.
4. Usability
o Intuitive interface for voters and administrators.
o Accessible from various devices (desktop, mobile, tablet).
Use Case Diagram
Use Case Descriptions (Key Ones):
1. Login/Logout: Voters and Admin use their credentials to access the system.
2. View Parties: Voters can see all parties and candidates.
3. Cast Vote: A registered voter submits their vote once per election.
4. Manage Parties (Admin): Admin can add, remove, or modify party details.
5. Manage Events (Admin): Admin can create or update events (voting dates,
announcements).
6. Publish Results (Admin): Admin finalizes and publishes the election results.
7. View Results (Voter): Voters can see the results of the election once published.
Sequence Diagram (Key Functionality with MVC)
The following Sequence Diagram demonstrates the “Cast Vote” process using a Model-
View-Controller (MVC) approach
Explanation:
1. Voter (the View) initiates the voting process by selecting a party and sending the
request to the VoteController.
2. VoteController checks user authentication by calling the AuthenticationService.
3. If the session is valid, VoteController calls VoteModel to record the vote.
4. VoteModel saves the vote in the database (or similar storage).
5. VoteModel returns a success response.
6. VoteController updates the Voter interface with a confirmation message.
Class Diagram
Below is a simplified, text-based representation of the Class Diagram for the Online Voting
System:
Key Relationships:
1. User is a superclass for Voter and potentially Admin (if you choose a unified user
approach).
2. Voter interacts with Vote objects to cast votes.
3. Party holds information about each party’s candidates.
4. Event represents elections or relevant events and announcements.
5. Result calculates and publishes total votes per party.
6. Admin can manage events, parties, and the publication of results.