Project Proposal
Project Proposal
Description of idea
I plan to develop a secure online voting system that has confidentiality, integrity, and
authentication of votes. The system shall provide users with the ability to vote
using online voting services, hence assuring endorsement for a secure
environment in conducting elections while preventing unauthorized access,
tampering, and fraud of votes. This system would use encryption, secure login
methods, authentication, and a verification mechanism that ensures the identity
of the voters. It will be designed in Python, HTML, and Java
to integrate the backend with front-end functionality.
Stakeholders
1. Voters - Users who will cast votes via the system.
2. Election Authorities - Admins who oversee and manage the voting process.
3. Cybersecurity Experts - Ensures system safety and integrity of the system to
maintain security.
4. Government/Election Organizations - Potential users of the voting system for
official elections.
Research avenues
1. Encryption Techniques - Research into how AES, RSA, and hashing
algorithms like SHA-256 can be applied for data protection.
2. Authentication Methods - Exploring multi-factor authentication (MFA) and
secure login protocols.
3. Cybersecurity Threats in Online Voting - Understanding the risks such as
denial-of-service attacks, man-in-the-middle attacks, and data breaches.
4. Legal and Ethical Concerns - Investigating how online voting systems are
regulated and the ethical implications of using them.
Current problems and what is the program going to solve?
Online voting systems today often suffer from security issues such as vote
manipulation, fraud, and lack of authentication. The program will solve the following
problems:
1.Secure voting: Prevents unauthorized access and changing of votes.
2.Confidentiality: Ensures that votes are anonymous and private to ensure safety of
individuals.
3.Authentication: Confirms voter identity to ensure that only eligible individuals can
vote, and votes cannot be given multiple times.
Programming language(s) used
Python: Used for server-side scripting, backend logic, database management, and
implementing encryption algorithms (e.g., AES for encryption, bcrypt for password
hashing).
HTML/CSS: Used for the front-end user interface (UI) to allow voters to interact with
the system.
Java: Implemented for client-side operations such as vote casting, communication
with the server, and ensuring secure communication (SSL/TLS).
Libraries that will be used:
Flask (Python) for web development.
PyCrypto- for encryption.
Bcrypt- for password hashing.
Jinja2 -(Flask templating engine) for HTML rendering.
Potential assets:
Login Page- for authentication
Voting Page- where users can cast votes
Admin Dashboard -for election authorities to monitor and verify votes
Ideas for a suitable GUI
Login page- with fields for username, password, and CAPTCHA (for preventing
bots).
Main voting interface- displaying a list of candidates or options with easy-to-click
buttons or dropdowns.
Progress indicators and confirmation messages- to ensure smooth user experience.
Admin Dashboard -to display vote counts, verify results, and generate reports.
Conclusion
The project integrates cybersecurity, programming, and web
development in the creation of a secure online voting system that can solve
some real-world problems, such as tampering with votes and election
integrity. It is also feasible within the given timeframe.