Download as pdf or txt
Download as pdf or txt
You are on page 1of 65

ADDIS ABABA SCIENCE AND TECHNOLOGY UNIVERSITY

COLLEGE OF ELECTRICAL AND MECHANICAL ENGINEERING


DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING
STREAM OF ELECTRONICS AND COMMUNICATION ENGINEERING
FINAL THESIS PROJECT
ON
“FINGERPRINT BASED ELECTRONICS VOTING SYSTEM”

Set by:

June, 2022
Addis Ababa, Ethiopia
DECLARATION
We want to assure that this paper absolutely belongs to us. It is prepared as a report for
our project according to the thesis writing format prepared by AASTU. We have done this
project for the partial fulfillment of BSc degree in electronic communication engineering.

Finally, it is a must to tell you how much effort we have made to do this project and come
up with tangible outcomes. No one has made similar projects and this will serve as a primary
reference.

Name: Signature

----------------

Approved By:
Advisor: ________________________
Signature: _______________________

i|Page
Abstract
This final year project deals with the design and development of a Fingerprint Electronic Voting
System. The suggested fingerprint voting system allows the user to scan his fingerprint, in order
to check his eligibility by comparing his current fingerprint with the one already stored in the
system’s database. By making use of that database effectively with the help of Arduino, the
problem of bogus voting can be completely eliminated. The counting of the votes will be
immediately and that makes the voting process efficient, fast, and secure.
Fingerprint Based Secured Voting system is basically an embedded system. The user, who wants
to poll his vote, has to punch his finger in the fingerprint scanner at the counter of the polling
booth. Based on fingerprint identity of user, verification can be done by using the database. After
Successful verification, the user will be allowed to pass through the voting section of the polling
booth.

ii | P a g e
Contents
DECLARATION ............................................................................................................................. i
ACKNOWLEDGEMENT .............................................................Error! Bookmark not defined.
Abstract ........................................................................................................................................... ii
LIST OF FIGURES ........................................................................................................................ v
LIST OF TABLES ......................................................................................................................... vi
LIST OF ACRONYMS ................................................................................................................ vii
CHAPTER ONE ............................................................................................................................. 1
INTRODUCTION .......................................................................................................................... 1
1.1. Background ...................................................................................................................... 1
1.2. Motivation ................................................................................................................. 1
1.3. Problem of statement ................................................................................................ 2
1.4. Objective of the project ............................................................................................. 2
1.4.1. General objective of the project ...................................................................... 2
1.5. Scope of the project .................................................................................................. 3
1.6. Significant of the project ........................................................................................... 3
1.7. Outline of the project ................................................................................................ 4
CHAPTER TWO ............................................................................................................................ 5
LITERATURE REVIEW ............................................................................................................... 5
CHAPTER THREE ........................................................................................................................ 8
METHODOLOGY AND SYSTEM DESIGN ............................................................................... 8
3.1. Introduction ............................................................................................................... 8
3.2. System Architecture .................................................................................................. 9
3.2.1. Voter registration .......................................................................................... 10
3.2.2. Authentication function ................................................................................ 12
3.2.3. Voting function ............................................................................................. 12
3.3. System block diagram ............................................................................................. 14
3.4. Schematic Circuit diagram of the system ............................................................... 15
3.5. The material used in this project ............................................................................. 15
3.5.1. Personal computer ......................................................................................... 15
3.5.2. Arduino ......................................................................................................... 16
3.5.3. Fingerprint module........................................................................................ 17
3.5.4. Liquid crystal display (LCD) ........................................................................ 18
3.5.5. Push button.................................................................................................... 19

iii | P a g e
3.5.6. LED ............................................................................................................... 19
3.6. Software requirement .............................................................................................. 20
3.6.1. Arduino IDE.................................................................................................. 20
3.6.2. Proteus 8 Professional ................................................................................... 20
3.6.3. SQLite database ............................................................................................ 20
3.6.4. Python ........................................................................................................... 20
3.7. System design ......................................................................................................... 21
3.7.1. Client/server architectural design ................................................................. 21
3.8. Database design ...................................................................................................... 28
CHAPTER FOUR ......................................................................................................................... 31
RESULT AND DISCUSSION ..................................................................................................... 31
4.1. Voting test and results ............................................................................................. 31
CHAPTER FIVE .......................................................................................................................... 43
CONCLUSION AND RECOMMENDATION ............................................................................ 43
5.1. CONCLUSION ............................................................................................................... 43
5.2. Recommendation ............................................................................................................. 44
Bibliography ................................................................................................................................. 45
Appendix 1 .................................................................................................................................... 46
Appendix 2 .................................................................................................................................... 47
Appendix 4 .................................................................................................................................... 56

iv | P a g e
LIST OF FIGURES
FIGURE3. 1FLOW DIAGRAM OF METHODOLOGY ................................................................................ 8

FIGURE3. 2. DESIGN OF SYSTEM ARCHITECTURE .............................................................................. 9

FIGURE3. 3 VOTERS REGISTRATION FLOW CHART .......................................................................... 12

FIGURE3. 4FLOW CHARTS OF VOTE CASTING AND AUTHENTICATION FUNCTION ............................. 14

FIGURE3. 5THE GENERAL BLOCK DIAGRAM .................................................................................... 14

FIGURE3. 6. SCHEMATIC DIAGRAM OF THE SYSTEM ........................................................................ 15

FIGURE3. 7. FINGERPRINT MODULE ................................................................................................ 17

FIGURE3. 8. LCD (20*4) ................................................................................................................ 19

FIGURE3. 9. INITIATE THE SERVER .................................................................................................. 22

FIGURE3. 10. INACTIVATED SERVER ............................................................................................... 23

FIGURE3. 11. ACTIVATED SERVER .................................................................................................. 24

FIGURE3. 12. PARTY ENROLLMENT ................................................................................................ 24

FIGURE3. 13. CLIENT-SERVER INTERACTION .................................................................................. 27

FIGURE3. 14. LOGIN IN TO THE CLIENT ........................................................................................... 27

FIGURE3. 15. VOTER’S REGISTRATION ........................................................................................... 28


FIGURE3. 16. DATABASE DESIGN .................................................................................................... 29

FIGURE3. 17. DATABASE SPECIFICATIONS OF REGISTRATION PART ................................................ 30


FIGURE3. 18. DATABASE SPECIFICATIONS OF CANDIDATE PART ..................................................... 30

FIGURE4. 1INSERTING FINGERPRINT ............................................................................................... 31

FIGURE4. 2. WAITING RESPONSE FROM SERVER ............................................................................. 32


FIGURE4. 3. ACCESS GRANTED ....................................................................................................... 33

FIGURE4. 4. VOTE CASTING ............................................................................................................ 34

FIGURE4. 5. UPDATED RESULTS AT THE SERVER ............................................................................. 35

FIGURE4. 6. FINGERPRINT MISMATCH AND VOTING AGAIN ............................................................. 36

FIGURE4. 7. WAITING FINGERPRINT ............................................................................................... 37

FIGURE4. 8. WAITING RESPONSES FROM THE SERVER ..................................................................... 38

FIGURE4. 9. SERVER ACCESS GRANTED .......................................................................................... 40

FIGURE4. 10. SERVER DENIED ........................................................................................................ 41

v|Page
FIGURE4. 11. SYSTEM RESET AND BACK TO FIRST PAGE ................................................................. 42

LIST OF TABLES

TABLE 3 1 FINGERPRINT MODULE PIN DESCRIPTION .......................................................... 18


TABLE 3 2 COST ANALYSIS ................................................................................................. 46
TABLE 3 3WORKING PLAN .................................................................................................. 46

vi | P a g e
LIST OF ACRONYMS
AASTU Addis Ababa Science and Technology University
LCD Liquid Crystal Display
LED Light Emitting Diode
E-voting Electronics Voting
PC Personal Computer
GND Ground
GUI Graphical User Interface
ID Identification Card
SQL Standardized Query Language

vii | P a g e
CHAPTER ONE
INTRODUCTION
1.1. Background
Election is the way of democratic world but conducting an election in fair manner has been the
challenge of every electoral body especially in the country with high corruption, weak rule or
law and less transparency. On the top of that conducting election cost millions and billions of
dollars. This study report mainly focuses on developing a prototype of embedded system that
deals with fingerprint voting system which can help in progression of election in robust and
secure manner. The system integrates different hardware components like Arduino, fingerprint
module that facilitates a flawless voting system.

In the traditional elections a voter used to cast his vote by using ballot paper. This is a long-time
consuming process; it’s really takes long time and the probability of error is very high. This
situation remains till the scientists discovered the different types of electronic voting machine.
The electronic voting systems are utilized much more as a device to help people to cast their
opinion and vote. To let the exercising of the right, just about all voting machine all over the
globe consist of voter identity and authorization, the voting and saving of the votes cast,
counting the votes and finally give the election final results.

The use of fingerprint as an ID is an excellent strategy considering that just about every person in
the globe is born with unique fingerprint even twins born with totally different fingerprints. The
fingerprint is naturally unchangeable throughout life. This fingerprint based e-voting system
have two stages of the electoral where the first for people registration to identify the right to elect
and later on, at voting time, to allow voters to cast their vote by confirming if the man or woman
meets all the requirements required to vote and that known as authentication

1.2. Motivation
The problems facing the voting system in Ethiopia include common practice of voters'
impersonation and multiple voting by false voters, snatching of the electoral materials such as
ballot boxes, ballot papers by an unauthorized group of people, massive rigging by party agents
1|Page
in collaboration with the polling officials and fighting and burning of valuable properties
resulting from lack of truth in the electoral process. The challenges of elections also include
insecurity of votes, poor funding, bad attitudes of the political class, poor structure of polling
units, rigging and inability to prosecute election offenders. It is very obvious that traditional
methods of voting using papers, ballot boxes and manual counting of votes have provided room
for the desperate politicians to alter election results; this, in turn, makes the populace lose
confidence in the integrity of the election across the globe. Those things motivate to design these
projects.

1.3. Problem of statement


There are several problems and issues which are the most important drawbacks that have to be
cleared and verified. These are some of the problem’s High manpower, takes lots of time to give
the count, long-distance communication is not available, less accuracy, less security etc.
According to the current system, votes could be counted manually so that there is more
opportunity for occurring errors, such as duplicates counting and completely missed counting.

We are presenting a new Electronic Voting System with Fingerprint scanning that will overcome
the drawbacks of the current voting methods that are used in our countries. Currently, the voting
system in our country is inefficient and vulnerable to outer threats, the only thing that the
security checks is a voter ID card, which these days are faked by many. It is slow and counting
the votes manually can take a long time. In some rural areas, where there is not much security
available, polling booths are captured and often most ballots are destroyed. So, the development
of such a system which is online will cut out these possibilities and many votes can be saved
through this system, even if such incidents occur.

1.4. Objective of the project


1.4.1. General objective of the project
To design and implement an electronic voting machine using fingerprint technology intends to
provide more security in authentication of a candidate, to speed up the counting of ballots,
reduce the cost of paying staff to count votes manually and can provide improved accessibility
for disabled voters.
1.4.2. Specific objective of the project

2|Page
 To design a fingerprint based electronic voting system which is controlled by Arduino: -
 Design and implement database for record keeping on elections.
 Integrating the control unit with the database.
 To simulate fingerprint-based e-voting system model using proteus and SQLite database
 To make a system that requests the voter to give his/her Fingerprint as a personality
proof.
 Implement Secured network platform that provides authenticated voting process.
 To develop voting system for automatic Counting and secured system.
 Provide platform for viewing current election reports.
 Implement the designed fingerprint-based e-voting system

1.5. Scope of the project


The focus of the project is to design a fingerprint voting system which makes the voting process
swift, sound and eradicates defrauding caused by manual voting process.
This biometric fingerprint based electronic voting system can make huge difference in overall
election especially in the developing or underdeveloped countries where paper ballot system is
still used and people have very little faith in election process because of various irregularities and
corruption. This study will focus on the areas preserves voting secrecy, remedies for illegal
voting and to reduce election expenses.

1.6. Significant of the project


The focus of these projects is to develop a secured electronic voting system using fingerprint
techniques. The project would be a significant force in restoring confidence in the populace and
enhance their participation in elections as sensitive results were highly secured against suspicion
and attacks. This project would also benefit to the government and the members of various
institutions and association such as the Students Union Government (SUG), schools and
companies in choosing representatives into different positions. With the use of this proposed e-
voting model, these institutions are guaranteed free and fair election. The proposed e-voting
model could detect multiple registrations, prevent multiple voting and prevent desperate and
corrupt politicians from altering the results of elections. The developed electronic voting model
secured election results from manipulations and there was an improvement in authentication,
confidentiality and integrity of election processes, during the pre-election, election and post-
election stages. This e-voting system would be helpful to tackle the problems of buying and
3|Page
selling votes by the corrupt politicians and corrupt voters as there would be no link between the
voter and the vote polled by the same voter.

The design and simulation of electronic voting system model will offer a good voting system to
the people who elect their wanted candidates using fingerprint-based technology. The application
of fingerprint technology to voting paves the way for a secure, efficient and more convenient
voting across, Ethiopia there by providing significant economic impact. Moreover, the
technology adopted also provides potent technology transfer to paper-based voting system into
possible development of an electronic voting machine.
Advantages of Fingerprint Based Voting System:
 It provides chance to avoid invalid votes
 It reduces the polling time
 Easy to carrying to polling center from the polling box
 Reduce the staff of voting center
 It provides easy and accurate counting without any troubles
 Provisioning of voting preventive measures

1.7. Outline of the project


This paper is a report for our project written after much effort made practically. It includes the
following chapters:
 First an introduction is discussed, which gives a general concept about this project
 Next a literature review will explain about reports of projects done before in areas similar
to our project
 Then the overall system design and analysis briefly discusses circuit components, design
analysis and system working principles.
 After the design and analysis, a simulation and prototype implementation of the project is
discussed
 Finally, the paper talks about conclusion and the possible future scopes which gives a
generalized idea about our final points and future works to be made to develop more than
this.

4|Page
CHAPTER TWO

LITERATURE REVIEW
The critical looking of different documents, journals and books is required to complete a
successful project. This section describes review of past and related works in the field of voting
system. To understand new and more efficient methods we have reviewed and will continue
reviewing past related studies.
In the old system of voting, votes are cast by ballot paper. After entering the polling station, the
officer checks identity proof (election ID card) of voters and allocated a ballot paper to a voter.
The voter votes by marking the ballot paper with candidate’s name and symbol by rubber stamp,
inside a voting compartment in the polling station. Then voter folds the ballot paper and inserts it
in a ballot box
In Paper Based Process the election workers will visit the residential addresses to ensure that
those persons actually live there and ascertain that they have given the correct information about
themselves. After validation, an identification card will be issued to the voter. A lot of paper
work was concerned in the whole procedure. Appropriate training will be required for the staff
members in charge of polling duty. At polling date, the concerned staff members are required to
be present half hour prior to the opening of the polling booth/station to check that all
arrangements have been done correctly. Atiya Parveen1(2013)
Drawback of paper based voting process;
 Time consuming
 the probability of error is very high
 long-distance communication is not available, less accuracy, less security
Worked on Optical scan voting system which was usually safer because they naturally provide a
voter verifiable paper which enables hand-counted audits and recounts that rely on direct voter
input. Tigran Antonyan (2008)
Drawback of optical scan voting system is;
 Suffer from various security vulnerabilities
This paper explains "document ballot voting system” which was marked by hands on ballot
paper in this scheme. Counting of votes done electronically. The examples of this system are
Punch card voting, mark sense and Digital pen voting systems.
5|Page
Drawback of paper-based electronic voting system is;
 This process can be boring and error prone and costly
This uses mechanical or electro-optical component like touch screen to provide ballot display.
This machine was programmed to record voting data and then tabulates the voting data. Finally,
the results may be stored on removable memory or provided as printed copy. There may be a
means of transmitting the individual ballots or vote totals to a central location for formation of
final results. Michael D (2007)
Drawback of micro-controller based smart electronic voting machine system is;
 Expense
 they will still ultimately fail if there are substantial usability problems
 Use of telephonic network, private computer network and internet.
Worked on “Scope and Limitation of Electronic Voting System”. A public network Direct-
Recording Electronic voting system is an election system that uses electronic ballots and
transmits vote data from the polling place to another location over a public Network. The Vote
data may be transmitted as individual ballots as they are cast or periodically as batches of ballots
throughout the Election Day or as one batch at the close of voting. This scheme includes Internet
voting as well as telephone voting. Two methods are used in Public network DRE voting system
they are pre count or central count method. The central count method forms a table from multiple
pre counts at a central location. The Internet voting can use remote locations (voting from any
Internet capable computer) or can use traditional polling locations with voting booths consisting
of Internet connected computers. Corporations and organizations can use Internet voting to elect
officers and Board members and for other proxy elections. It uses electronic ballot, records the
vote data and transmits it to a central location through public network. The voted data may be
transmitted at the end of Election Day as a single batch or may be transmitted periodically
throughout the day as batches of ballot. Internet voting and telephonic voting are included in this

system .
Drawback of public network DRE voting system is;
 Public Network DRE Voting System Frustrated workers attempting to determine voter
intent from ambiguous punch cards.

6|Page
propose a scheme called “Punch Card Method” based on the Votomatic system. This system uses
a special card where each possible hole is pre-scored and allowing perforations to be made by the
voter pressing a stylus through a guide in the voting machine. Scoring of the punch cards was
also done by hand and not by a punch card reader. Sahibzada Muhammad Ali (2014)
Drawback of punch card voting system is;
 A problem with this system is the incomplete punch; this can lead to a smaller hole than
expected
The paper proposes a voting system based on three ballots. Overview of proposed architecture.
The voter has to cast three votes on the three ballots and all the three votes will have a unique
numeric identifier. On the three ballot papers all the candidates will be marked once randomly
and the voter also marks the desired candidate. Thus, the desired candidate has two marks and
the remaining candidates will have only one mark. The voter then chooses one ballot randomly
and then that is given as a vote receipt. Once the elections are done, the electoral authority
publishes the vote receipts so that the voter can verify if their votes were counted. As per the
proposed block diagram the voters first present themselves to the registration agent to get a
credential that would enable them to cast their vote (event 1). The registration agent then obtains
ballot Ids (BIDs; event 2) and generates credentials that are returned to the voters. After
authentication (event 3), voters cast their vote using a voting console (event 4). The vote is then
stored in the electronic ballot box (event 5) and a vote receipt is issued (event 6). On the result
day, counting phase (event 7) starts and the electoral authority publishes the vote receipts on the
electronic election bulletin board (event 8) Vaibhav Bhatia (2012)
According to steganography techniques are advantageous to non-suspicion over cryptography
and watermarking. In the steganography technique, it does not attract the attention of fraudsters,
internet surveillance is difficult and the secret message is difficult to prove its existence. .D.
Maio (2016)

7|Page
CHAPTER THREE
METHODOLOGY AND SYSTEM DESIGN
1.1. Introduction
Methodology as word suggests is the development steps or method that outlines the way to
achieve certain goal or in this case design and build a prototype Fingerprint voting system. In
other words, it is a constructive framework. The aim and the objective are clearer due to the data
and information has been gathered from the previous literatures. The design model is the result
of the hardware and software integration. The design model shows the prototypes, elements,
architecture and components of the system. However, in order to make this project successful the

.
hardware and the software must be well integrated and organized Methodology flow block

diagram of this project is shown below.

Research and data gathering

System design

Hardware and software


integration

testing

Result analysis

documentation

figure3. 1Flow diagram of methodology

8|Page
1.2. System Architecture

Voter
Server Client
registration

Authentication
Database Controller
function

Voting
function
Display
confirmation

figure3. 2. Design of system architecture


The fingerprint based E-Voting system with fingerprint using Arduino. The idea about any
voting system is one person is equal to one vote; it stands to claim that they never voted
previously in this election at another location. The main purpose of our system is to preventing
fraudulent voting. The system basically consisted three functions:

1. Voter registration
2. Authentication function
3. Voting function

9|Page
1.2.1. Voter registration
This process can also be called as pre-election process where the voter’s fingerprints are loaded
into database of the system. Voter’s enrollment can be done by LCD displays a message called
place finger for enroll. Same finger needs to be placed twice so that voter is enrolled. Suppose if
there is any error in placing the finger then it displays an error message. If it is successful then
the voter is enrolled. Then in the client (polling station) the voter’s insert their information. After
the registration is completed all the information are loaded to the database inside the server.

Voter’s registration flow chart:

10 | P a g e
start

Go to any polling station in


State

The voters insert their


information

No
Has been
registered

Yes

Process
Database

Generate voter’s id

Save in database

Display success
message

End

11 | P a g e
figure3. 3 Voters Registration flow chart

1.2.2. Authentication function


In this process the voter is allowed to prove his identity by verifying and validating his
fingerprint. Before the vote casting voter has to check for validity to the voting. During this
verification time ask to voter “Scan your finger” after the voter’s fingerprint scanned, it is
compared with fingerprints already enrolled in the database. If it is matched, then the message
“Cast your vote.” will be displayed on LCD. If the fingerprint did not match with already saved
in database the LCD display a message “Did not match!” and not allowed to vote casting.
Suppose a same person who has already voted comes to vote again then during authenticating
process it displays an error message as already voted and does not allow to cast his/her vote.
Only the authenticated votes are updated for counting.

1.2.3. Voting function


Cast the vote: After the fingerprint verification the voter can cast the vote. In that process voter
have to cast the vote for any one party. If voter select party button that time one count is added
for that selected party and save that vote in database. If any voter selects more than one party that
time the server denied and the LCD display no access.

Flow charts of vote casting and authentication function:

12 | P a g e
start

Scan fingerprint

Match not found

Unregistered / not
verification
allowed to vote

Match found

Cast vote

Candidate selected

Vote successful

Display confirmation

Count added to
candidate

yes
Making the system Is there
ready for next voter another voter

No

Reports of the vote


13 | P a g e
figure3. 4Flow charts of vote casting and authentication function

1.3. System block diagram


The general block diagram of the system is shown below:

Switches for
candidates
LCD
display

PC Arduino

LED

Fingerprint
module

figure3. 5The general block diagram

14 | P a g e
1.4. Schematic Circuit diagram of the system

figure3. 6. Schematic diagram of the system

1.5. The material used in this project


The components used in our projects are Arduino Mega 2560, Fingerprint module, LCD (20*04),
Power supply (+5v), PC, Switches (push button) and cables (to connect the component).from
those let see some of them:

1.5.1. Personal computer


The computer is considering one of the main devices in fingerprint voting system. The personal
commuter will work as an interface between the user and the system. The personal computer will
operate the program in order to allow the voter to insert his information in to the system and to
make the voting process.

15 | P a g e
1.5.2. Arduino
We can use Arduino for controlling. It controls LCD, push button and fingerprint module by
receiving input commands, controlling fingerprint module and sending commands to the LCD
that display messages that direct the user to how to use the system properly. Arduino controls the
complete voting processes like reading button; incrementing vote value, generating a result, and
sending vote and result in LCD Display.
The Arduino Mega 2560 is a microcontroller board based on the ATmega2560.
It has: -
 54 digital input/output pins (of which 15 can be used as PWM outputs)
 16 analog inputs
 4 UARTs (hardware serial ports)
 a 16 MHz crystal oscillator a power jack, and a reset button
Features:
 Microcontroller: ATmega2560
 Operating Voltage: 5V
 Input Voltage (recommended): 7-12V
 Input Voltage (limits): 6-20V
 Digital I/O Pins: 54 (of which 14 provide PWM output)
 Analog Input Pins :16
 DC Current per I/O Pin:40 mA
 DC Current for 3.3V Pin:50mA
 Flash Memory : 256 KB of which 8 KB used by boot loader
 SRAM :8 KB
 EEPROM:4 KB
 Clock Speed:16 MHZ

16 | P a g e
1.5.3. Fingerprint module
Biometric identification from a fingerprint made by an impression of the ridges in the skin of a
thumb or finger is often used as evidence in criminal investigations. Now we can use the same
biometric identification technique to build our own hobby projects like as biometric authenticate
and control system with the help of readily-available Fingerprint Identification Modules.

Fingerprint module’s processing, shown in figure below includes two parts: fingerprint
enrollment and fingerprint matching (the matching can be 1:1 or 1: N). When enrolling, user
needs to enter the finger two times. The system will process the two time finger images, generate
a template of the finger based on processing results and store the template. When matching, user
enters the finger through optical sensor and system will generate a template of the finger and
compare it with templates of the finger library. For 1:1 matching, system will compare the live
finger with specific template designated in the Module; for 1: N matching, or searching, system
will search the whole finger library for the matching finger. In both circumstances, system will
return the matching result, success or failure.

figure3. 7. Fingerprint module

 Features :

• Power DC: 3.6V-5.0V

• Interface UART: (TTL logical level)/ USB 1.1 Working current Typical: 100mA
/Peak: 150mA Matching Mode 1:1 and 1:N.

17 | P a g e
• Baud rate: (9600*N)bps, N=1~12 (default N=6)

• Character file size: 256 byte.

• Image acquiring time:<0.5s

• Template size: 512 bytes

• Storage capacity: 256

• Security level :5 (1, 2, 3, 4, 5(highest))

 Pin Description :

It has six pins; their function description is shown on table 3-1 bellow.
Table 3 1 fingerprint module pin description

Pin NO. Name Type Function Description

1 Vin In Power input

2 TD In Data output. TTL logical level

3 RD Out Data output. TTL logical level

4 NC - Not connected

5 NC - Not connected

6 GND - Signal ground

1.5.4. Liquid crystal display (LCD)


LCD stands for Liquid Crystal Display. LCD screen functions as an interface between the user
and the arduino, which displays messages that facilitates the user to know when to register and
when to vote, also whether their vote is valid or not and finally displays the results. Figure 3-4
shows the LCD used in this project.

18 | P a g e
figure3. 8. LCD (20*4)

 Features :
 Type: Character.
 20 characters * 4 lines.

 Display mode & backlight variation.

 4-bit or 8-bit microcontroller interface.

 Contrast Control:

To have a clear view of the characters on the LCD, contrast should be adjusted. To adjust the
contrast, the voltage should be varied. For this, a variable resistor is used which can behave like
a variable voltage device. As the voltage of this variable resistor is varied, the contrast of the
LCD can be adjusted.

1.5.5. Push button


Switches are used in the system to cast votes to the candidates. By pressing the switch, vote can
be given to the desired candidate.

1.5.6. LED
Connect the long leg of the LED (anode) to the other end of the resistor. Connect the short leg of
the LED (cathode) to the GND.
To turn on an LED, the Arduino needs to send a HIGH signal to one of its pins. To turn off the
LED, it needs to send a LOW signal to the pin. You can make the LED flash by changing the
length of the HIGH and LOW states.

19 | P a g e
1.6. Software requirement
1.6.1. Arduino IDE
This is software used to run arduino code. Can be programmed using Arduino software. Arduino
IDE can be downloaded and installed freely from https://www.arduino.cc/en/Main/Software.
ATMega328 microcontroller in Arduino Uno comes pre burned with boot loader so it’s easy to
equip the programs in the board without the use of the external hardware programmer. Basics of
Arduino Programming Arduino coding operate with two major blocks. The first one is called
void setup. Void setup defines input and output pins. It helps start initializing variables and also
start using library. The second block is called void loop. Void loop is where all the code and
logics are placed in the brackets. Unlike void setup the functions in this loop run infinitely,
restarting after every end until certain condition is met.

1.6.2. Proteus 8 Professional


The simulation of the system is done on Proteus Professional Software v8.0. The .hex file is
generated for microcontroller using Arduino software. Multiple vote casting has been avoided by
using software coding techniques.
Each voter can vote only once thus protecting the identity of the voter in making the process
unbiased and fair. Database comprising details of all voters with their personal details and
fingerprint are stored in microcontroller for comparing and verification during polling.

1.6.3. SQLite database


Successful database (DB) must accurately and precisely store data without mixing values or
losing information an obvious essential in managing election results data.
When you insert your finger print, Arduino will convert it to ID value then data will be inserted
into a SQL Server database, it saves the data to a series of 8 KB pages inside the data file. If
multiple data files exist within a file group, SQL Server allocates pages to all data files based on
a round-robin mechanism.
SQLite are going to be used in order to build the database of the fingerprint voting system.

1.6.4. Python
The system displays selective overall data using graphical representations. In addition, the
system allows managing voters’ records.

20 | P a g e
Evidently, this project is divided into two categories: Voter, and Admin Panel. In an overview of
this application, a voter can simply register into the system. Initially, the system only allows a
voter to cast vote and view his/her ballot. In fact, the system restricts users after casting a vote.
This means, that one user can only cast vote once. Besides, a voter can only list out his/her ballot
which displays the name of voted candidates.

1.7. System design


The design model is the result of the hardware and software integration. The design model shows
the prototypes, elements, architecture and components of the system. However in order to make
this project successful the hardware and the software must be well integrated and organized. In
order to achieve successful project, solution form the researcher is necessary. In order to develop
fingerprint voting system, enormous research must be done to find the suitable software that is
capable to meet the project requirements. Furthermore, some technical element has to be taken
into account during developing the hardware and implementing the software into the hardware.

1.7.1. Client/server architectural design


The client/server architecture has been use in the development of this system; there the database
application and the database are separated into two parts: a front-end or client portion, and a
backend or server portion. The client executes the database application that accesses database
information and interacts with a user through the keyboard, screen, and pointing device such as a
mouse. The server executes the software and handles the functions required for concurrent,
shared data access to a SQLite database. Although the client application and SQL can be
executed on the same computer, it may be more efficient and effective when the client portion(s)
and server portion are executed by different computers connected via a network.
Note: In a distributed database, one server may need to access a database on another server. In
this case, the server requesting the information is a client Distributed Processing Distributed
processing is the use of more than one processor to divide the processing for an individual task.
The following are examples of distributed processing in SQL database systems:
A single computer has more than one processor, and different processors separate the execution
of the client application from SQL database.

21 | P a g e
The system has a client side with fingerprint scanning form as a user interface which will be
replaced by voters table existing in the database in order to matches data. The system uses the
verification mode. The enrolment mode handles the registration process in order to register the
eligible users in the system; the output of the enrolment mode will be store in the database of the
system. The second mode which is the verification mode handles the process of checking the
eligibility of the user by taking the user’s fingerprint and matches it with the database’s
fingerprints; if the system found any similar fingerprint in the database then the user is eligible to
cast his vote. The vote of the user will be count and store in the database

figure3. 9. Initiate the server

22 | P a g e
Indicates the server is inactivate

figure3. 10. Inactivated server


Indicates the server is activated

23 | P a g e
figure3. 11. Activated server

figure3. 12. Party enrollment

Each election is identified by a unique name and has associated with it a set
of candidates.

In an actual deployment, the server would execute on a physically secured computer


that has a well-known network address. And the client would run on a computer
owned by a voter (e.g., a laptop of cellphone). For ease of testing, you will run the

24 | P a g e
client and server programs on the same computer. Because .Net programs running on
the same computer can communicate using TCP as though these programs were
located on different machines, the system you develop would then be easy to redeploy
in the more realistic setting where clients and server are located on separate
computers.

When the server is started:

 the port number on which the server should listen on for incoming connections,
 the names of the various elections it will conduct, and
 A list of candidates for each of these elections.

The election file is in XML format. A <config> tag contains 2 elements: <port>,
which contains the port, and <elections>, which contains information about possible
elections. Each election has a name and contains the names of the candidates:

List of parties or Candidates [(Ezema),(prosperity),(Abn),(EDPA)]

The server has a GUI that allows an election official to declare an election as being
open or closed. An open election contains before the name. A vote in some election is
counted only if it is received by the server while that election is open.

When an election is declared closed, the server's GUI displays the vote counts for
each candidate in the named election; when an election is declared open, the vote
count for every candidate in the named election is reset to x. At any given time, every
election is either open or closed; initially, all elections are closed.

25 | P a g e
Client / Server Interaction.

When the client is started, it displays a GUI that allows a voter to specify the name of
an election. (The voter must specify this name; no communication with the server
occurs until this name has been provided.) The client program then makes a TCP
connection to the server, and it sends the election name over that connection to the
server.

The server replies with the list of candidates for that election. The voter selects
exactly one from among those candidates, signifies that a vote be cast for this
candidate, and thereby causes the client to send this vote to the server. Upon receipt,
the server verifies that that the named election exists, is open, and that the named
candidate is part of that election; if these checks are satisfied then the server
increments the vote count for the appropriate candidate by one.

The following diagram depicts this client-server interaction:

26 | P a g e
figure3. 13. Client-server interaction

figure3. 14. Login in to the client

27 | P a g e
figure3. 15. Voter’s registration

1.8. Database design


The figure below shows the database diagram of the fingerprint voting system. This database
consists of two tables the first table for the registration process, while the other table responsible
of the voting process. The name of registration table is Registration. It consists of 7 columns, ID,
fingerprint id, Name, sex, Nationality, Phone, profession, age and kebele. The other table which
is the candidate table consists of two columns Candidates and votes. The specifications and the
properties of these tables and columns are shown in the figure below.

28 | P a g e
Database

Fingerprint

Registrations
Table Candidates’
Table
Name
Candidate
Age
Votes
Sex

Profession
Contact

Kebele

Woreda
Region

Fingerprint id

figure3. 16. Database design


The figure below shows the specifications each table, column and type of the rows of
the fingerprint voting system’s database. The operator of this database is inside the
server.

29 | P a g e
figure3. 17. Database specifications of registration part

figure3. 18. Database specifications of candidate part

30 | P a g e
CHAPTER FOUR
RESULT AND DISCUSSION
4.1. Voting test and results
The result of the voting test shows that after taking the voter fingerprint image and process it by
the voting system. If the fingerprint matches then the voter has the right to cast his vote. If the
fingerprint wasn’t stored in the system’s database, a warning message is shown, so the voter
can’t perform his vote, or in case the voter aimed to votes another time, the system going to give
a warning message, in order to alter the security of the election. There are four candidates exist at
the voting page, during the voting process, checking the voters identity will be the first step in
the process, then the voter will be asked to vote for his favorite candidate by clicking on the
button which located beside each nominee.
Steps to voting test and results
1. The system asked to put her/him fingerprint

figure4. 1inserting fingerprint

31 | P a g e
Step 2: Waiting response from the server, if the voters’ fingerprint is matched or not matched
and also the voters’ voted or not.

figure4. 2. Waiting response from server

Step 3: if the voters’ fingerprint is matched and not voted, then the server sent acknowledgment
to the client granted to access the vote and the LCD display please press the party button.

32 | P a g e
figure4. 3. Access granted

Step 4: after pressing the party’s push button, the server updating the results and the LCD
displays the next voting is ready and back to the first steps.

33 | P a g e
figure4. 4. Vote casting

34 | P a g e
figure4. 5. Updated results at the server
Step 5: if the voters’ fingerprint is not matched and, then the server denied and the LCD displays
“not allowed to vote and not registered”. And also the voters’ vote again the server denied and
the LCD display “not allowed voting. “then system rested and back to the first pages.

35 | P a g e
figure4. 6. Fingerprint mismatch and voting again

36 | P a g e
4.2. Hardware implementation results

figure4. 7. Waiting fingerprint

37 | P a g e
figure4. 8. Waiting responses from the server

38 | P a g e
39 | P a g e
figure4. 9. Server access granted

40 | P a g e
figure4. 10. Server denied

41 | P a g e
figure4. 11. System reset and back to first page

42 | P a g e
CHAPTER FIVE
CONCLUSION AND RECOMMENDATION

5.1. CONCLUSION
In total, this system overcomes most of the problems that are faced in the traditional
approach of the voting system the efficiency of this system depends upon the web interface, its
usability. This will surely ensure a safer voting method which is very much what is required for
the healthy growth of a developing nation.

The proposed fingerprint based voting system which is better and faster than the previous
system. The new system prevents access to illegal voters, provides ease of use, transparency and
maintains the integrity of the voting process. The system also solves the problem of rigging,
means it does not allows a user to vote multiple times since his fingerprint is recorded once in an
election. The system does not allow the voter to vote for more than once in the same election.

The fingerprint-based voting system has provided a chance to avoid invalid votes, it
reduces the polling time, easy carrying to polling centre from the polling box, Reduce the staff of
the voting centre, it provides easy and accurate cutting without any trouble.

The developed system provides an interface to the user where the user will be shown the
list of candidates along with their basic pieces of information. The voter needs to be first
registered with the system after that only he/she will be allowed to the vote in the election.

The system provides the result in a very short span of time without any errors. It reduces
the possibility of changing votes or favouring any candidate. The system is totally automated and
does allow even the admins to change the vote. It does not allow the admins to see who has been
the vote cast by the voter.
Not only this, but It will also save the time which is spent in distributing and restoring the
boxes to the polling stations. It able started with minimum system configuration and a fingerprint
sensor.

43 | P a g e
5.2. Recommendation
In big elections, there are huge number of people want to cast their votes, in order to avoid the
congestion at the voting point there is need to provide online Access be connected to the main
computer/server in order to allow many people to perform voting at the same time and prevent
congestion. Therefore, this application should be built online with server architecture.

44 | P a g e
Bibliography
1.Atiya Parveen1, Sobia Habib2, Saoud Sarwar3. “Scope and Limitation of Electronic Voting
System” Ijcsmc, Vol. 2, Issue. 5, May Atiya Parveen1(2013)
, Pg.123 – 128.
2.TigranAntonyan, SedaDavtyan, SotiriosKentros, AggelosKiayias, Laurent Michel, Nicolas
Nicolaou, Alexander Russell, Alexander A. Shvartsman. “State-wide Elections, Optical Scan
0Voting Systems, and the Pursuit of Integrity “February TigranAntonyan(2008)
3.Michael D. Byrne, Kristen K. Greene, Sarah P. Everett “Usability of Voting Systems: Baseline
Data for Paper, Punch Cards, and Lever Machines” April 28-May 3,. Michael D (2007)
4.Sahibzada Muhammad Ali, ChaudharyArshad Mehmood, AhsanKhawja, RahatNasim,
Muhammad Jawad, SaeedaUsman, Sikandar Khan, SaqibSalahuddin, MianAtifIhsan. “Micro-
Controller Based Smart Electronic Voting Machine System” IEEE. Sahibzada Muhammad Ali
(2014)
5.Vaibhav Bhatia, Rahul Gupta. “A Novel Electronic Voting Machine Design with Voter
Microcontroller IEEE. Vaibhav Bhatia (2012)
6.D. Maio, D. Maltoni, A. K. Jain, and S. Prabhakar (2003). Handbook of Fingerprint
Recognition. Springer Verlag. Maio (2016)

45 | P a g e
Appendix 1
Table 3 2 cost analysis

No. Name of the Component Cost Quantity Cost of each Total Cost
item in ETB in ETB
1 PC 20000 1 20000 20000
2 Fingerprint Module 1600 1 1600 1600
3 Arduino Mega 1350 1 1350 1350
4 LCD 200 1 200 200
5 Cable 5 30 5 150
6 Push Button 20 4 20 80
7 Resistor 30 4 30 120
8 LED 15 2 15 30
9 Breadboard 150 1 150 150

Table 3 3working plan

Year 2022
Activities
April May June
Week Week Week Week Week Week Week Week Week Week
2 3 4 1 2 3 4 1 2 3
Project proposal 

Literature review 

installing
software
necessary

Designing database
 
Software
implementation of
  
the project

46 | P a g e
Hardware
implementation of
  
the project
Documentation

Power point
preparation and
 
presentation
 The schedule is subjected to change depending on the work load.

Appendix 2
Project of Arduino IDE Code
#include <AltSoftSerial.h>
AltSoftSerial altser;
#include <LiquidCrystal.h>
LiquidCrystal LCD(13,12,11,10,7,6);

bool mesege_received=false;
String msg="";
String msgg;
int passkey[]={1,2,3,4};
bool SWITCH_STATE=false;
bool state=true;
bool state2=true;
bool state3=true;
bool state4=true;
bool state6=true;
bool serial=false;
void serial_check();
void wait();
void wait2();
bool party1=false;
bool party2=false;
47 | P a g e
bool party3=false;
bool party4=false;
void party_button();
void reset();
void setup() {
LCD.begin(20,4);
Serial.begin(9600);
altser.begin(9600);
for(int i=10;i<=13;i++){
pinMode(i,OUTPUT);
}
for(int i=2;i<=5;i++){
pinMode(i,INPUT);
}
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}

void loop() {

byte ch;
byte d='#';

int j=0;
if(altser.available()){
while(altser.available()){
ch =altser.read();
msg+=(char)ch;
wait();
Serial.print(msg);
while(1){

48 | P a g e
serial_check();
if(serial){
serial=false;
break;
}
}
msg="";
break;
}
}
wait2();
}

void serial_check(){
byte d='#';

if (Serial.available()) {

while(Serial.available()){
byte b = Serial.read();
if(char(b)!= d ){
msgg+=char(b);

}else{
if(msgg == "1"){
press_pls();
party_button();
check();
//Serial.println('1');

49 | P a g e
msgg="";
}else if (msgg == "0"){
//Serial.println('0');
if(state6){
LCD.clear(); LCD.setCursor(0,0); LCD.print("YOUR ARE NOT");
LCD.setCursor(5,1); LCD.print("REGISTERED OR");
LCD.setCursor(3,2); LCD.print("TRYING TO VOTE ");
LCD.setCursor(6,3); LCD.print("AGAIN...");
delay(1500);
LCD.clear(); LCD.setCursor(0,1); LCD.print("SYSTEM RESETED");
delay(1500);
state6=false;
msgg="";
reset();
}
}
msg="";
serial=true;
break;
}
}

}
}
void wait(){
if(state){

LCD.clear(); LCD.setCursor(6,0); LCD.print("WELCOME !");


LCD.setCursor(3,1); LCD.print("PLEASE WAIT...");

delay(1500);

50 | P a g e
LCD.clear(); LCD.setCursor(1,0); LCD.print("FINGER ID SENT");
LCD.setCursor(3,1); LCD.print("TO THE SYSTEM...!");
LCD.setCursor(3,3); LCD.print("WAITING RESPONSE..");
delay(1400);
state=false;
}
}

void wait2(){
if(state2){
LCD.clear(); LCD.setCursor(7,0); LCD.print("PLEASE");
LCD.setCursor(1,1); LCD.print("PUT YOUR FINGER !!");
LCD.setCursor(5,3); LCD.print("WAITING...");
delay(1300);
state2=false;
}
}
void press_pls(){
if(state3){
LCD.clear(); LCD.setCursor(3,0); LCD.print("ACCESS GRANTED");
LCD.setCursor(4,1); LCD.print("PLEASE PRESS ");
LCD.setCursor(4,2); LCD.print("THE BUTTON !!");

state3=false;
}
}

void party_button(){
while(1){
if(digitalRead(5)){
party1=true;

51 | P a g e
break;
}else{
party1=false;
}

if(digitalRead(4)){
party2=true;
break;
}else{
party2=false;
}

if(digitalRead(3)){
party3=true;
break;
}else{
party3=false;
}

if(digitalRead(2)){
party4=true;
break;
}else{
party4=false;
}
}
}

void check(){
if(party1){
Serial.print("1");

52 | P a g e
end_of_votind();
reset();
}else if(party2){
Serial.print("2");
end_of_votind();
reset();
}else if(party3){
Serial.print("3");
end_of_votind();
reset();
}else if(party4){
Serial.print("4");
end_of_votind();
reset();
}
}

void end_of_votind(){
if(state4){
LCD.clear(); LCD.setCursor(0,1); LCD.print("VOTING COMPLITED..!!");
delay(1300);
LCD.clear();LCD.setCursor(5,1); LCD.print("READY FOR");
LCD.setCursor(3,2); LCD.print("THE NEXT USE..");
delay(1500);
state4=false;
}

}
void reset(){
state=true;
state2=true;

53 | P a g e
state3=true;
state4=true;
state6=true;
serial=false;
party1=false;
party2=false;
party3=false;
party4=false;
}

54 | P a g e
55 | P a g e
Appendix 4
Hardware implementation

56 | P a g e
57 | P a g e

You might also like