You are on page 1of 34

Secure E-voting System

A Master Of Computer Applications Project Report Submitted


in Partial Fulfillment of the Requirements
for the Degree of

Master Of Computer Applications

by

Ankur Chauhan
(2101640140016)
under the guidance of

Mr. Mohan Rao Mudradi3

to the
DEPARTMENT OF MASTER OF COMPUTER APPLICATIONS
Pranveer Singh Institute Of Technology
Kanpur -209305 , Uttar Pradesh
2
CERTIFICATE

This is to certify that the work contained in this thesis entitled “Secure E-voting
System” is a bonafide work of Ankur Chauhan (Roll No. 2101640140016), carried
out in the Department of Master of Computer Applications, Pranveer Singh Institute of
Technology under my supervision and that it has not been submitted elsewhere for a degree.

Supervisor: Mr. Mohan Rao Mudradi3

Assistant-Professor,
May, 2022 Department Master of Computer Applications
& Engineering,
Kanpur. Pranveer Singh Institute of Technology, Kanpur.

i
ii
Acknowledgements

Presentation inspiration and motivation have always played a key role in the success of
any venture.I express my sincere thanks to Mr. Mohan Rao Mudradi, Assisstant Professor,
Pranveer Singh Institute of Technology, Kanpur. I pay my deep sense of gratitude to Sumit
Chandra (HOD) of MCA Department, Pranveer Singh Institute of Technology, Kanpur to
encourage me to the highest peak and to provide me the opportunity to prepare the project.
I am immensely obliged to my friends for their elevating inspiration, encouraging guidance
and kind supervision in the completion of my project.

iii
iv
Contents

1 Introduction 1
1.1 About the Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Scope Of project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Aims and Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Design of Proposed System 5


2.1 Module Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Tools and Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 System Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1 Data Flow Diagram (DFD) . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 ER Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.3 Use case Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Literature Review 17
3.1 Impact Of Proposed System In Academics And Industry . . . . . . . . . . . 17
3.2 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.2 Iterative And Incremental Model . . . . . . . . . . . . . . . . . . . . 18
3.2.3 Initial Planning Phase . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.4 Planning Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.5 Requirements Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

v
3.2.6 Analysis and Design Phase . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.7 Implementation Phase . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Testing Evaluation Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.1 Testing Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.2 Evaluation Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.3 Deployment Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Pros and Cons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Conclusion 23
4.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

vi
List of Tables

vii
viii
Chapter 1

Introduction

Write introduction.

1.1 About the Project

Traditional voting systems have been developed to ensure that the principles required for
democratic elections and referendums are met, namely the guarantee of the freedom to vote,
the secrecy of the vote, the non-modification of the expressed intention of the vote and lack
of intimidation during the vote operation. It is essential that these principles are not under-
mined by the introduction of new voting methods and, accordingly, e-voting systems must
be so designed and operated as to ensure the reliability and security of the voting process.
An e-voting system therefore should consider the following requirements:
i).To ensure that only persons with the right to vote are able to cast a vote.
ii).To ensure that every vote cast is counted and that each vote is counted only once.
iii).To maintain the voter’s right to form and to express his or her opinion in a free manner,
without any coercion or undue influence.
iv).To protect the secrecy of the vote at all stages of the voting process.To guarantee ac-
cessibility to as many voters as possible, especially with regard to persons with disabilities

1
v).To make sure that the general public, as well as other key stakeholders in the electoral
process, have confidence in the e-voting solution.
vi).Many e-voting experts consider trust as the most critical and all-encompassing goal.

Alongside with national legal requirements, several international documents have been
developed that support the implementation of the a fore mentioned requirements in e-voting
projects.

1.2 Scope Of project

E-voting only takes small part of the whole election process. From a technical point of view
it focuses on:-
i. Calling of elections
ii. Registration of candidate
iii. Preparation of Polling booth
iv. Voting proper
v. The counting of votes
Auditing reviewing and follow-up can also be a part of e-voting’s scope also, it is not the
responsibility to campaign or influence people for an advantage of other people’s interest.
a) Voter lists (including all the polling divisions and constituency assigned to the list).
b) Candidate lists (by constituencies)
c) Expressed will of the voters, and the output is made up a form:
• Summarised voting results
• List of voters using
• Voters are allowed to vote in a polling area where machines are provided for them to use.
The presence of information Technology is a very big help in minimizing work and making
things done fast. Using the power of computers in electronic voting the overall performance
of voting can be maximized to its full potential.

2
1.3 Aims and Objective

Our objective is to solve the issues of digital voting by using e-voting technology. E-voting
could reduce fraud and increase voter access.
OBJECTIVES-
Thus, the voting system that is hereby conceived must satisfy the following requirements:
• The election system must be openly verifiable and transparent.
• The election system must ensure that the vote cast by the voter has been recorded.
• Only eligible voters must be allowed to vote.
• The election system should be tamper-proof.
• No power-hungry organization must be able to manipulate the election process.
AIMS-
Electronic Voting System (EVS) is to prevent the security threats occurring at normal EVS
and ballot voting which ensures transparency that even the Election Commission can’t view
whom the voter voted for. Electronic voting technology intends to speed the counting of
ballots, reduce the cost of paying staff to count votes manually and can provide improved
accessibility for disabled voters. Also in the long term, expenses are expected to decrease.

3
4
Chapter 2

Design of Proposed System

2.1 Module Description

• Admin Login
• Candidate Document Verification
• Candidate Login
• Voters Login
• Voters Can View Candidates data
• Admin Dashboard Has Overall Functional Rights
• Appropriate Data Processing And Handling
• System Generated ID And Password For Candidate And Voters
• Result Calculation Module
• Election Creation Module
• Voting Conduction Module

5
2.2 Tools and Technology

Software Used:

• Python interpreter:
You write your Python code in a text file with a name like hello.py. There is program
installed on your computer named ”python3” or ”python”, and its job is looking at and
running your Python code.What is Python interpreter? The Python interpreter is a virtual
machine, meaning that it is software that emulates a physical computer.

• VS code:
Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by
Microsoft with the Electron Framework, for Windows, Linux and macOS. Features include
support for debugging, syntax highlighting, intelligent code completion, snippets, code refac-
toring, and embedded Git.Visual Studio Code is a streamlined code editor with support for
development operations like debugging, task running, and version control. It aims to provide
just the tools a developer needs for a quick code-build-debug cycle and leaves more complex
workflows to fuller featured IDEs, such as Visual Studio IDE.

Front End Used

•HTML:
HTML (Hypertext Markup Language) is the code that is used to structure a web page and
its content.HTML tutorial or HTML 5 tutorial provides basic and advanced concepts of
HTML. Our HTML tutorial is developed for beginners and professionals. In our tutorial,
every topic is given step-by-step so that you can learn it in a very easy way. If you are new
in learning HTML, then you can learn HTML from basic to a professional level and after
learning HTML with CSS and JavaScript you will be able to create your own interactive

6
and dynamic website.HTML is a MUST for students and working professionals to become a
great Software Engineer specially when they are working in Web Development Domain.

•CSS:
Cascading Style Sheets (CSS) is used to format the layout of a webpage. With CSS, you can
control the color, font, the size of text, the spacing between elements, how elements are posi-
tioned and laid out, what background images or background colors are to be used, different
displays for different devices and screen sizes, and much more.CSS (Cascading Style Sheets)
is used to style and layout web pages — for example, to alter the font, color, size, and spac-
ing of your content, split it into multiple columns, or add animations and other decorative
features. This module provides a gentle beginning to your path towards CSS mastery with
the basics of how it works, what the syntax looks like, and how you can start using it to
add styling to HTML.CSS is among the core languages of the open web and is standardized
across Web browsers according to W3C specifications. Previously, the development of vari-
ous parts of CSS specification was done synchronously, which allowed the versioning of the
latest recommendations. You might have heard about CSS1, CSS2.1, or even CSS3. There
will never be a CSS3 or a CSS4; rather, everything is now CSS without a version number.

•Java Script:
This is used by programmers across the world to create dynamic and inter- active web
content like applications and browsers.JavaScript is a lightweight, interpreted programming
language. It is designed for creating network-centric applications. It is complimentary to
and integrated with Java. JavaScript is very easy to implement because it is integrated with
HTML. It is open and cross-platform.Javascript is the most popular programming language
in the world and that makes it a programmer’s great choice. Once you learnt Javascript, it
helps you developing great front-end as well as back-end softwares using different Javascript
based frameworks like jQuery, Node.JS etc.As mentioned before, Javascript is one of the

7
most widely used programming languages (Front-end as well as Back-end). It has it’s pres-
ence in almost every area of software development.

Back End Used:

•Python:
Python is a computer programming language often used to build websites and software, au-
tomate tasks, and conduct data analysis. Python is a general- purpose language, meaning it
can be used to create a variety of different programs and isn’t spe- cialized for any specific
problems.Python is a very popular general-purpose interpreted, interactive, object-oriented,
and high-level programming language. Python is dynamically-typed and garbage-collected
programming language. It was created by Guido van Rossum during 1985- 1990. Like Perl,
Python source code is also available under the GNU General Public License (GPL).Python
supports multiple programming paradigms, including Procedural, Object Oriented and Func-
tional programming language. Python design philosophy emphasizes code readability with
the use of significant indentation.Today, Python is very high in demand and all the major
companies are looking for great Python Programmers to develop websites, software compo-
nents, and applications or to work with Data Science, AI, and ML technologies. When we
are developing this tutorial in 2022, there is a high shortage of Python Programmers where
as market demands more number of Python Programmers due to it’s application in Machine
Learning, Artificial Intelligence etc.

•SQLite (Database):
SQLite is used to develop embedded software for devices like televisions, cell phones, cam-
eras, etc.It can manage low to medium-traffic HTTP requests. SQLite can change files into
smaller size archives with lesser metadata. SQLite is used as a temporary dataset to get
processed with some data within an application.SQLite is a software library that imple-

8
ments a self-contained, serverless, zero-configuration, transactional SQL database engine.
SQLite is one of the fastest-growing database engines around, but that’s growth in terms
of popularity, not anything to do with its size. The source code for SQLite is in the public
domain.SQLite is an in-process library that implements a self-contained, serverless, zero-
configuration, transactional SQL database engine. It is a database, which is zero-configured,
which means like other databases you do not need to configure it in your system.SQLite
engine is not a standalone process like other databases, you can link it statically or dynami-
cally as per your requirement with your application. SQLite accesses its storage files directly.

•Django:
Django is a high-level Python web framework that enables rapid development of secure and
maintainable websites. Built by experienced developers, Django takes care of much of the
hassle of web development, so you can focus on writing your app without need- ing to reinvent
the wheel. It is free and open source, has a thriving and active community, great documen-
tation, and many options for free and paid-for support.Django helps developers avoid many
common security mistakes by providing a framework that has been engineered to ”do the
right things” to protect the website automatically. For example, Django provides a secure
way to manage user accounts and passwords, avoiding common mistakes like putting session
information in cookies where it is vulnerable (instead cookies just contain a key, and the
actual data is stored in the database) or directly storing passwords rather than a password
hash.Django is written in Python, which runs on many platforms. That means that you are
not tied to any particular server platform, and can run your applications on many flavors of
Linux, Windows, and macOS. Furthermore, Django is well-supported by many web hosting
providers, who often provide specific infrastructure and documentation for hosting Django
sites.

9
2.3 System Design

This chapter describes the design that explains more about the system implementation. The
design of a system is a model plan for the system including Usecase diagram, Data Flow
Diagram (DFD), and Entity Relationship Diagram (ERD).Systems design interfaces, and
data for an electronic control system to satisfy specified requirements. System design could
be seen as the application of system theory to product development. There is some overlap
with the disciplines of system analysis, system architecture and system engineering.

2.3.1 Data Flow Diagram (DFD)

A data-flow diagram is a way of representing a flow of data through a process or a system.


The DFD also provides information about the outputs and inputs of each entity and the
process itself. A data-flow diagram has no control flow — there are no decision rules and no
loops.The objective of a DFD is to show the scope and boundaries of a system as a whole.
It may be used as a communication tool between a system analyst and any person who
plays a part in the order that acts as a starting point for redesigning a system. The DFD
is also called as a data flow graph or bubble chart.DFDs make it easy to depict the busi-
ness requirements of applications by representing the sequence of process steps and flow of
information using a graphical representation or visual representation rather than a textual
description. When used through an entire development process, they first document the
results of business analysis. Then, they refine the representation to show how information
moves through, and is changed by, application flows. Both automated and manual processes
are represented.Logical DFDs represent logical information flows in relatively abstract terms.
This means that they will identify general processes, systems and activities but not provide
technology detail. Physical DFDs show more physical information flow detail, particularly
details of information systems, applications and databases. They will also often have more
elements to better depict what information is flowing, what actions are taken on or with the
data and the resources associated with those actions.

10
11
2.3.2 ER Diagram

ER Diagram stands for Entity Relationship Diagram, also known as is a diagram that dis-
plays the relationship of entity sets stored in a database. In other words, ER diagrams
help to explain the logical structure of databases. ER diagrams are created based on three
basic concepts: entities, attributes and relationships.At first look, an ER diagram looks
very similar to the flowchart. However, ER Diagram includes many specialized symbols,
and its meanings make this model unique. The purpose of ER Diagram is to represent the
entity framework infrastructure.An Entity-Relationship Model represents the structure of
the database with the help of a diagram. ER Modelling is a systematic process to design a
database as it would require you to analyze all data requirements before implementing your
database.

Reason to use ER diagram in DBMS

1) ER Diagram helps you conceptualize the database and lets you know which fields need to
be embedded for a particular entity
2) ER Diagram gives a better understanding of the information to be stored in a database
3) It reduces complexity and allows database designers to build databases quickly
4) It helps to describe elements using Entity-Relationship models
5) It allows users to get a preview of the logical structure of the database

Symbols Used in ER Diagrams

1) Rectangles: This Entity Relationship Diagram symbol represents entity types


2) Ellipses: This symbol represents attributes
3) Diamonds: This symbol represents relationship types
4) Lines: It links attributes to entity types and entity types with other relationship types

12
5) Primary key: Here, it underlines the attributes
6) Double Ellipses: Represents multi-valued attributes

2.3.3 Use case Diagram

A use case diagram doesn’t go into a lot of detail—for example, don’t expect it to model the
order in which steps are performed. Instead, a proper use case diagram depicts a high-level

13
overview of the relationship between use cases, actors, and systems. Experts recommend
that use case diagrams be used to supplement a more descriptive textual use case. UML
is the modeling toolkit that you can use to build your diagrams. Use cases are represented
with a labeled oval shape. Stick figures represent actors in the process, and the actor’s par-
ticipation in the system is modeled with a line between the actor and use case. To depict
the system boundary, draw a box around the use case itself.

Use case diagram symbols and notation

The notation for a use case diagram is pretty straightforward and doesn’t involve as many
types of symbols as other UML diagrams. You can use this guide to learn how to draw a
use case diagram if you need a refresher. Here are all the shapes you will be able to find in
Lucidchart:

1) Use cases: Horizontally shaped ovals that represent the different uses that a user might
have.
2) Actors: Stick figures that represent the people actually employing the use cases.
3) Associations: A line between actors and use cases. In complex diagrams, it is important
to know which actors are associated with which use cases.
4) System boundary boxes: A box that sets a system scope to use cases. All use cases outside
the box would be considered outside the scope of that system. For example, Psycho Killer
is outside the scope of occupations in the chainsaw example found below.
5) Packages: A UML shape that allows you to put different elements into groups. Just as
with component diagrams, these groupings are represented as file folders.

14
15
16
Chapter 3

Literature Review

3.1 Impact Of Proposed System In Academics And Industry

• Reducing the logistical burden associated with the manual paper ballot process
• Overseas voting services
• Faster results
• Increasing participation among Aboriginal voters
• Improved accuracy
• Improved accessibility
• It can reduce the uses of paper hence can save tree
• E-voting technology intends to speed the counting of ballot, reduce the cost of paying staff
to count votes manually and can provide improved accessibility for disable voters. Also in
the long term , expenses are expected to decrease. Result can be reported and published
faster.

17
3.2 Methodology

3.2.1 Introduction

The methodology is the process, steps or stages used to collect information and data for the
purpose of making decisions. The methodology is chosen from the software development life
cycle model. The system development life cycle SDLC that will be used for this project is
the Iterative and Incremental Model. This chapter will explain in more detail every phase
that involves in this project development.

3.2.2 Iterative And Incremental Model

An iterative method is a mathematical procedure that generates a sequence of improving


approximate solutions for a class of problems. It is an act of repeating a process with the
aim of approaching a desired goal, target, or result.

3.2.3 Initial Planning Phase

The phase starts with brainstorming ideas for current problems and system requests. Then,
continue the discussion with the supervisor to choose a project to be implemented. Literature
reviews with the current similar system are studied to find the problems of the systems

3.2.4 Planning Phase

After deciding the title of the project and the approach to be used, the discussions continue
on defining the problem statements, deciding an objective, and defining the scope of the
system. In order to get a better understanding, existing systems are reviewed,observe and
the constraint and limitations are gathered.

18
3.2.5 Requirements Phase

During this phase, existing systems are analysed and all the requirements that are needed
to develop the new system are identified. In this phase, the information regarding the
House Rental Service either in the form of journals, articles, or research papers is gathered
and studied. All sources that were found were analyzed and observe the advantage and
disadvantages

3.2.6 Analysis and Design Phase

In this phase, the design of the system is created and the development of the prototype is
based on the functionalities that will be built such as adding a house, updating the house,
and deleting the house. The data or requirement obtained during the requirement phase is
transformed into a design. Examples of diagrams that will be built are Context Diagrams
(CD), Data Flow Diagrams (DFD), and Entity Relationship Diagrams (ERD). All of these
diagrams are built as a guideline for the flow of the system.

3.2.7 Implementation Phase

The phase is also known as the code generation phase. The developer writes codes based
on the previous phase. The system will build using Django and SQlite as the database
platform. User interfaces are also included in the phases as they are important in delivering
information and messages to the user.

3.3 Testing Evaluation Phase

3.3.1 Testing Phase

Every sub-module needs to be tested before it will implement into the system. Any changes
in the coding, error, functionality or upgrades are also will be tested. The user interface will
be checked to ensure they are connected to the database and appropriate with the system.

19
3.3.2 Evaluation Phase

The system will be evaluated to check for bugs or errors. Any best practices and techniques
that will be used in the first iteration then can be used for the next requirement changes
and needed in the next iteration.

3.3.3 Deployment Phase

Once the evaluation is done, the system is deployed in the environment so that the targeted
user can use the system. The system will be released to the end user to implement whether
the application correctly functioning or not.

3.4 Pros and Cons

Pros:
Perhaps the biggest pro of online voting is that it has the potential to make voting easier and
more convenient. For those who have access to computers and the Internet, online voting
would take little more effort than a few clicks. This way of voting also eliminates the need
for transportation, reduces or eliminates missed time at work or school, and decreases the
impact of barriers such as lack of child care, illness, confusion about polling locations and
long lines. It would make voting easier and more private for those with disabilities, anxiety
issues or serious medical conditions.

Cons:
Election Tampering Where there is Internet, there are viruses. there are viruses.The Internet
is an almost incomprehensibly large network of computers, and monitoring those computers
for security threats is a hefty and expensive task that cannot ever ensure 100 percent safety.
That’s fine when you’re using your computer to update your blog, but when you’re deter-
mining the future of a nation, even the smallest security flaw can have dire consequences. In

20
addition, savvy hackers could potentially find ways to rig the outcome of the elections, such
as tampering with the way votes are submitted and counted or even casting votes for people
who did not actually intend to vote. What’s more, without monitored polling locations,
there’s no way to ensure that voters were not coerced into voting a certain way. It can also
be difficult to prove the identity of the person casting the online vote.

21
22
Chapter 4

Conclusion

4.1 Conclusion

This Online Voting system will manage the Voter’s information by which voter can login and
use his voting rights. The system will incorporate all features of Voting system. Electronic
voting technology intends to speed the counting of ballots, reduce the cost of paying staff to
count votes manually and can provide improved accessibility for disabled voters. Also in the
long term, expenses are expected to decrease. Results can be reported and published faster.
Voters save time and cost by being able to vote independently from their location. This may
increase overall voter turnout. The citizen groups benefiting most from electronic elections
are the ones living abroad, citizens living in rural areas far away from polling stations and the
disabled with mobility impairments This project can be used to conduct the online voting
system in any field or industry. The project can be expanded and several other features can
also be included based on the requirement. People can share the opinion and they can also
check the total voting given by many users.

23
4.2 References

The purpose of a reference list is that the reader should be able to find the references used.
Therefore, be sure to write the full reference in the reference list. Follow the guidelines of
Nielsen (2001). All references in the text must be in the list of references and vice versa.
• Google
• https://www.geeksforgeeks.org/
• https://www.javatpoint.com/
• https://docs.djangoproject.com/en/4.1/
• https://developer.mozilla.org/en-US/docs/Web/HTML
• https://developer.mozilla.org/en-US/docs/Web/CSS
• https://www.figma.com/best-practices/guide-to-developerhandoff/components-styles-and-
documentation/
• https://docs.python.org/3/
• https://www.w3schools.com/
• https://www.youtube.com/
• https://www.tutorialspoint.com/index.html
• Venkata Naga Rani B, Akshay S, Arun kumar M , Ishwar Kumar M A , (2019) , Decen-
tralized E-Voting System, International Research Journal of Engineering and Technology

24

You might also like