1 - Updated - FINAL SUBMITTION
1 - Updated - FINAL SUBMITTION
1 - Updated - FINAL SUBMITTION
By
KISHOORE.S
(Reg. No.38290040)
VARUN KUMAR.S
SATHYABAMA
INSTITUTE OF SCIENCE AND TECHNOLOGY
JEPPIAAR NAGAR, RAJIV GANDHI SALAI,
CHENNAI – 600119, TAMILNADU
APRIL 2020
MADHUSUDAN DAS DEGREE COLLEGE
ASURAN , GORAKHPUR , UTTAR PRADESH -273001
CERTIFICATE
This is to certify that the project “ONLINE VOTING SYSTEM” Which
is being submitted MADHUSUDAN DAS DEGREE COLLEGE,
ASURAN , GORAKHPUR, UTTAR PRADESH , 273001.
In Department of Computer Science. Is the record of their own work an is
submitted in the partial fulfillment of the requirement for the award of
By
during the
RAVI NISHAD
(2414057180017)
ABSTRACT
1
DECLARATION
RAVI NISHAD
(2414057180017)
2
TABLE OF CONTENTS
1 INTRODUCTION 6
2 SYSTEM STUDY 14
2.1 Existing System 14
2.1.1 Drawbacks 14
2.2 Proposed System 15
2.2.1 Features 15
3 SYSTEM DESIGN AND 16
DEVELOPMENT
3.1 Input Design 16
3.2 Output Design 17
3.3 System Development 18
4 TESTING AND 20
IMPLEMENTATION
5 REFERENCES 23
APPENDICES 24
A. Tables 25
3
B. Data Flow Diagam 28
4
C. Coding 29
D.Sample Screens 39
D1.Login form 39
D2.Registered form 40
D3.Category 41
D4.Candidate form 41-42
D5.Election List 44
5
LIST OF ABBREVIATIONS
6
1. INTRODUCTION
The election process currently in College is a very tough process. The current existing
election voting System is conducted manually where the Voter has to Visit to Booths or
designed restricted area to Vote, so there is wastage of time and leads to delay of counting of
votes and because of the limited voting hours given, many people are left out without voting
their preferred leaders. It therefore leaves a very big margin of people who have not voted and
because of that the leaders deserving some sits tend to lose them.
In many a times in College election, majority of students do not vote because of the
long queues while voting because the perceived it as a wastage of time. The Election Voting
System also entails that, the voters have to be manually registered. Also Vote counting has to be
done manually by counting the votes cast. All the Information of the Voter or Candidate is to
be filling in manually and a voter must be present in campus to give his/her Vote during the
day of voting. Because of all these drawbacks, I have come with an idea of developing an
Online Module for Students Association of Leaders elections. This module will be simple,
attractive and easy to use. It reduces manual efforts and bulk of information can be handled
easily.
7
1.1 ABOUT THE PROJECT
Online Voting is a web-based voting system that will help you manage your elections
easily and securely. This voting system can be used for casting votes during the elections held
in colleges, etc. In this system the voter does not have to go to the polling booth to cast their
vote. They can use their personal computer to cast their votes. There is a database which is
maintained in which all the name of the voters with their complete information is stored. The
System Administrator registers the voters by simply filling a registration form to register the
voters.
Online E-voting System would have Candidate registration, document verification, auto-
generated User ID and pass for candidate and Voters. Admin Login which will be handled by
Election Commission .Candidate Login which will be handled By Candidate, Voters will get
Unique ID and Password, Using which they can vote for a Candidate only once per Election.
The project is beneficial for Election Commission, Voters as the can get to know the candidate
background and choose wisely, and even for Candidate. The software system allows the
Candidate to login in to their profiles and upload all their details including their previous
milestone onto the system. The admin can check each Candidate details and verify the
documents, only after verifying Candidate’s ID and Password will be generated, and can
remove faulty accounts.
The software system allows Voters to view a list of Candidates in their area. The admin
has overall rights over the system and can moderate and delete any details not pertaining to
Election Rules. After voting procedure is over, the votes counting procedure starts in manual
manner. The voter cannot change the candidate at the time of voting. The project “ONLINE
E- VOTING” is aimed to computerize the task involved in the voting process. This project
deals with the automation of various polling activities.
8
1.2 SYSTEM SPECIFICATION
1.2.1 Hardware Configuration
Processor : I3
Hard Disk Capacity : 400 GB
RAM : 4.00 GB
Monitor : 15” Color Monitor
Keyboard : 102 Keys
Mouse : 2 Buttons
9
1.2.3 Software Description
PHP is the web development language written by and for web developers. PHP stands
for PHP: Hypertext Pre-processor. The product was originally named Personal Home Page
Tools, and many people still think that’s what the acronym stands for, but as it expanded in
scope, a new and more appropriate name was selected by community vote. PHP is currently in
its sixth major rewrite, called PHP6 or just plain PHP.
INTRODUCTION OF PHP
When compared to many other programming languages, PHP makes it easy to develop
powerful web application quickly (this is a blessing and a curse). Many of the most useful
specific functions (such as those for opening a connection to an Oracle database or fetching
email from an Internet Message Access Protocol [IMAP] server) are predefined. Most
advanced PHP users (including most of the development team members) are diehard hand
coders.
PHP & MYSQL are also both stable in the sense of feature stability. Their respective
development teams have thus far enjoyed a clear vision of their project and refused to be
distracted by every new fad and ill-through-out user demand that comes along. Much of the
effort goes into incremental performance improvements, communicating with more major
database, or adding better OOP support.
10
PHP STRENGTHS
Performance
Scalability
Interfaces to many different database system
Build-in libraries for many common web tasks
Low cost
Ease of learning and use
Strong object oriented support
Portability
Flexibility of development approach
Availability of source code
Availability of support and documentation
NEW IN PHP
Better object oriented support build around a completely new object model
Exception for scalable, maintainable error handling
Simple XML for easy handling of XML data
USES OF PHP
11
FEATURES IN PHP
ADMIN AREA
GENERAL FEATURES
12
INTRODUCTION TO MYSQL
MYSQL is an open source, SQL relational database management system (RDBMS) that is
free for many uses (more detail on that later). Each in its history, MYSQL occasionally
faced opposition because of its lack of support for some core SQL constructs such as sub
selects and foreign keys. Ultimately, however MYSQL found a broad, enthusiastic user base for
its liberal licensing terms, perky performance, and ease of use. Its acceptance was aided in part
by the wide variety of other technologies such as PHP, Perl, Python, and the like that have
encouraged its use through stable, well
-documented modules and extensions. Databases are generally useful, perhaps the most
consistently useful family of software products (the “killer product”) in modern computing.
Like many competing products, both free and commercial, MYSQL isn’t a database until give
it some structure and form.
MYSQL STRENGTHS
High performance
Low cost
Ease of configuring and learning
Portability
Availability of source code
Availability of support
NEW IN MYSQL
View
Stored procedures
Basic trigger support
Cursor support
13
USES OF PHP AND MYSQL
Some of these are dependent on the other, for example not all operating system run on all
hardware not all web servers support all programming language.
The majority of PHP code can be written to be portable between operating system and web
servers there are some PHP functions that specifically relate to the file system there are
operating system dependent.
14
2. SYSTEM STUDY
In the present system it is difficult to ensure privacy, security and accuracy. At the time
of voting, if a voter makes an incorrect choice, it is difficult to correct it. There is no guarantee
that all votes are counted. The process needs massive paper handling and create security
problem.
2.1.1 DRAWBACKS
Everything is maintained in papers. Requires manual counting.
Difficulty to enforce security during voting and counting
Probabilities for errors occur while counting number of votes.
Less reliability and no guarantee vote was counted.
15
2.2 PROPOSED SYSTEM
The proposed system is designed considering all the drawbacks listed in the existing
system. The system supports two groups of users, administrator and voters. Administrator has
the permission to create the contestant database and the voter database. Based on the
configuration, the voter can use the system for polling.
The system also maintains the voting status for each and every voter. Once voting is
completed by the user, the system will not allow again voting for that polling. If a voter makes
an incorrect choice, the system allows correcting it. The system can also be configured to
announce the results based on timer setting.
2.1.2FEATURES
User friendly interface for polling.
Creates a sense of security among voters
Accurate results can be produced in quick time
Avoid duplicate votes
More reliable than the existing system
Only registered voters are allowed to vote
16
3. SYSTEM DESIGN AND DEVELOPMENT
The process information is stored in for future use. The user should be search in his
related information only. The goal of designing input data is to make error free and user-
friendly.
17
VOTING DETAILS
In this form, the voter has to choose the candidate which is visible under the table. The
table has candidate information like Candidate Id, Candidate Position and Party name of the
Candidate. This form has Voter Id and Candidate Id. By clicking the vote button after
selecting the Voter Id and Candidate Id then it stores the candidate details like Candidate Id,
Candidate position and Party name in voter table but the counts of vote in Candidate table.
3.2 OUTPUT DESIGN
Output design generally refers to the results and information that are generated by the
system for many end-users; output is the main reason for developing the system and the basis
on which they evaluate the usefulness of the application. In any system, the output design
determines the input to be given to the application.
As the outputs are the most important sources of information to the users, better design
should improve the system’s relationships with us and also will help in decision- making. Form
design elaborates the way output is presented and the layout available for capturing
information.
CANDIDATE DETAILS
In this form, admin can view the candidate details such as Candidate Id, Candidate
Name, Position and Party name, Gender, DOB, Email, Major, Percentage and Candidate
Image.
VOTER DETAILS
In this form, admin can view the voter details such as Id, Voter Id, Candidate Id, Voter
name, Position and Party name they selected.
RESULT ANALYSE
In this form, admin can view the entire candidate vote analyses include Candidate Id,
Candidate name, Party name of the Candidate and the counts of vote .
18
RESULT FORM
In this form, user can view the selected Candidate Id, Candidate Position and Party
name and Candidate Image after the pre-defined date and time.
3.3 SYSTEM
DEVELOPMENT
DESCRIPTION OF
MODULES
The project is designed modularly such a way that any new feature or enhancements
can be easily added to the system.
1. Admin Module
2. Configuration Module
3. Voting Module
4. Timer Module
5. Report Module
Admin Module
This module takes care of proper authentication to use the system. There are two groups
of users allowed, administrator and voter. The administrator has the privilege to manage the
database of candidates and Voters.
Configuration Module
The administrator has the rights to configure the candidates of the election. The
administrator also has to create the voter database. The normal users for this system will only
have the option to vote.
19
Voting Module
This module takes care of the whole operation of polling. This module shows the list of
candidates contesting the election. User will be given options to change the decision at the time
of voting. This also ensures that there will not be any duplicate votes polled into the system.
Timer Module
The result of the polling can be viewed only after the configured timer interval. This
module takes care of declaring the result after the user configured time. The system will show
denial message if user attempt to see the result before the configured time.
Report Module
20
4 TESTING AND
IMPLEMENTATION
SYSTEM TESTING
Testing is an integral part of any system development life cycle. Insufficient and
untested applications may trend to crash and result in loss of economic and manpower
investment besides user’s dissatisfaction and downfall of reputation. Software testing can be
looked upon as one among the many process, an organization performs, and that provides
the last opportunity to correct any flaws in the developed system. Software testing
includes selecting test data that have more probability of giving errors. The first step in system
testing is to develop a plan that tests all aspects of the system. Completeness, correctness,
reliability and maintainability of the software are to be tested for the best quality assurance that
the system meets the specification and requirements for its intended use and performance.
System testing is the most useful practical process of executing a program with the implicit
Unit testing
Integration testing
Validation testing
UNIT TESTING
The procedure level testing is made first. By giving improper inputs, the errors
occurred are noted and eliminated. Then the web form level testing is made. For example,
storage of data to the table in the correct manner.
In the organization as well as login form, the zero length username and password are
given and checked. Also the duplicate username is given and checked. In the login button will
send data to the server only if the client side validations are made.
21
INTEGRATION TESTING
Testing is done for each module. After testing all the modules, the modules are
integrated and testing of the final system is done with the test data, specially designed to show
that the system will operate successfully in all its aspects conditions. Thus the system testing is
a confirmation that all is correct and an opportunity to show the user that the system works.
In this project, the migration between each and every pages are tested successfully.
This testing process continued until satisfies the user requirement by integrate and test the
whole project. For example, after click the login button the home page must be open and
database connectivity also tested.
VALIDATION TESTING
The final step involves Validation testing, which determines whether the software
function as the user expected. The end-user rather than the system developer conduct this test
most software developers as a process called “Alpha and Beta Testing” to uncover that only
the end user seems able to find.
The compilation of the entire project is based on the full satisfaction of the end users.
In the project, validation testing is made in various forms. In login entry form, different
validations are made to make sure the user enters the valid input.
22
SYSTEM IMPLEMENTATION
Implementation is process of converting a new or revised system design into an
operational one. The first task is implementation planning that is deciding on the methods and
time scale to be adopted. The proper implementation involves conversion of existing clerical
files to computer media and hence these files as they are get converted. Then the actual
changeover from the existing system to the new system takes place.
The changeover plays a vital role, which checks the developed tool for the following
requirements, and then only the developed tool will be accepted by the users. The software has
been checked with sample data. The changes being made are as per the user requirements and
will run in parallel with the manual system to find out any discrepancies. The users also have
been apprised of the ways of handling the software, as a part of training the user personnel.
The implementation is the final stage and it is an important phase. It involves the
individual programming system testing, user training and the operational running of
developed proposed system that constitutes the application subsystems. On major task of
preparing for implementation is education of users, which would really have taken place much
earlier in the project when were being involved in the investigation and design work. The
implementation phase of software development is concerned with translating design
specifications into source code. The user tests the developed system and changes are made
according to their needs.
23
5.CONCLUSION
Online Election systems have many advantages over the traditional voting system.
Some of these advantages are less cost, faster generation results, easy accessibility, accuracy,
and low risk of human and mechanical errors. It is very difficult to develop e-voting system
which can allow security and privacy on the high level. Future development focused to design
a system which can be easy to use and will provide security and privacy of votes on acceptable
level by proper authentication and processing section. By online voting system percentage of
voting is increases and cost and time of voting process is decreases. It is easy to use and it is
less time consuming. It is very easy to debug.
24
BIBLIOGRAPHY
TEXTBOOK REFERENCES
1. Steve Suehring, Tim Converse and Joyce Park, “PHP6 and MYSQL bible”.
2.Somerville, “Software Engineering”, 5th Editions.
3.Luke Welling and Laura Thomson, “PHP and MYSQL Web Development-developer
Library”.
4.Robin Nixon, “Learning PHP, MYSQL & JavaScript: with jQuery, CSS &Html5”.
Websites Refer
1. www.php.net
2. www.W3Schools.com
3. www.QuoteProject.com
4. www.go4expert.com
5. www.allproject reports.com
25
APPENDICES
A.TABLES
Table Name : Admin
26
Table Name : Candidate
27
Table Name : Voter
Primary Key : Id
28
B.DATA FLOW DIAGRAM
29
C.CODING
SAMPLE SOURCE CODE
<?php
/*
EDIT.PH
*/
// since this form is used multiple times in this file, I have made it a function that is easily
reusable
?>
<html>
<head>
Edit Record</title>
</head>
30
<body>
<?php
($error != '')
?>
<tr>
<div>
<tr>
31
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
<tr>
32
<tr>
<td><strong>Gender: *</strong></td>
</tr>
<tr>
<td><select name="gender">
</select></td>
<tr>
<td><strong>Course: *</strong></td>
</tr>
<tr>
<td><select name="course">
33
<option value = "Bachelor of Arts in Political Science" <?php if($course == "Bachelor of Arts
in Political Science") { echo "selected"; }?>>Bachelor of Arts in Political Science</option>
<option value = "Bachelor of Arts in Social Work" <?php if($course == "Bachelor of Arts in
Social Work") { echo "selected"; }?>>Bachelor of Arts in Social Work</option>
34
<option value = "Bachelor of Science in Electrical Engineering" <?php if($course ==
"Bachelor of Science in Electrical Engineering") { echo "selected"; }?>>Bachelor of Science
in Electrical Engineering</option>
<tr>
<td><strong>Position: *</strong></td>
</tr>
<tr>
<td><select name="position">
<tr>
<td><strong>Image: *</strong></td>
</body>
35
</html>
<?php
// connect to the
database
include('dbcon.php');
// check if the form has been submitted. If it has, process the form and save it to the
database if (isset($_POST['submit']))
// confirm that the 'id' value is a valid integer before getting the form data
if (is_numeric($_POST['candidateID']))
$candidateID = $_POST['candidateID'];
$studnum = mysql_real_escape_string(htmlspecialchars($_POST['studnum']));
$fname = mysql_real_escape_string(htmlspecialchars($_POST['fname']));
$lname = mysql_real_escape_string(htmlspecialchars($_POST['lname']));
$gender = mysql_real_escape_string(htmlspecialchars($_POST['gender']));
36
$course = mysql_real_escape_string(htmlspecialchars($_POST['course']));
$yearlvl = mysql_real_escape_string(htmlspecialchars($_POST['yearlvl']));
$position = mysql_real_escape_string(htmlspecialchars($_POST['position']));
$partylist = mysql_real_escape_string(htmlspecialchars($_POST['partylist']));
$image = mysql_real_escape_string(htmlspecialchars($_POST['image']));
if ($candidateID == '' || $studnum == '' || $fname == '' || $lname == '' || $gender == '' ||
$course == '' || $yearlvl == '' || $position == '' || $partylist == '' || $image == '')
if($row)
{
// get data from db
$candidateID = $row['candidateID'];
$studnum = $row['studnum'];
$fname = $row['fname'];
37
$lname = $row['lname'];
$gender = $row['gender'];
$course = $row['course'];
$yearlvl = $row['yearlvl'];
$position = $row['position'];
$partylist = $row['partylist'];
$image = $row['image'];
// show form
else
38
echo "No results!";
else
// if the 'id' in the URL isn't valid, or if there is no 'id' value, display an error
echo 'Error!';
?>
39
D.SAMPLE SCREENS
40
Fig D2 : Registered form
41
Fig D3 : Catagory
42
Fig D4 : Candidate form
43
44
Fig D5 : Election List
TABLE OF CONTENTS
2
I. INTRODUCTION ......................................................................... 3
1.1 Purpose of this Document ........................................................ 3
1.2 Scope of this Document ........................................................... 3
1.3 Overview .................................................................................. 3
1.4 Scope of the E-vote Project ...................................................... 4
3
securely. This voting system can be used for casting votes during the elections held in colleges, etc. In
this system the voter does not have to go to the polling booth to cast their vote. They can use their
personal computer to cast their votes. There is a database which is maintained in which all the name of
the voters with their complete information is stored. The System Administrator registers the voters by
simply filling a registration form to register the voters.
Online E-voting System would have Candidate registration, document verification, auto- generated
User ID and pass for candidate and Voters. Admin Login which will be handled by Election
Commission .Candidate Login which will be handled By Candidate, Voters will get Unique ID and
Password, Using which they can vote for a Candidate only once per Election. The project is beneficial
for Election Commission, Voters as the can get to know the candidate background and choose wisely,
and even for Candidate. The software system allows the Candidate to login in to their profiles and
upload all their details including their previous milestone onto the system. The admin can check each
Candidate details and verify the documents, only after verifying Candidate’s ID and Password will be
generated, and can remove faulty accounts.
The software system allows Voters to view a list of Candidates in their area. The admin has
overall rights over the system and can moderate and delete any details not pertaining to Election Rules.
After voting procedure is over, the votes counting procedure starts in manual manner. The voter cannot
change the candidate at the time of voting. The project “ONLINE E- VOTING” is aimed to computerize
the task involved in the voting process. This project deals with the automation of various polling
activities.
4
I. INTRODUCTION
1.1 Purpose of this Document
This document is provided in order to ensure that the software that the development
team produces will be consistent with the needs of all customers. It is a description
and elaboration of the project requirements that the development team has
been provided with. Stating these requirements explicitly helps ensure that any
potential miscommunications are dealt with at an early stage, when the cost of
implementing changes is still low.
Customers are encouraged to distribute this document among their potential users
and management in order to provide us with feedback. This will help the
development team ensure that the end product fully meets all needs. This document
will also be a useful resource for those who will be upgrading or maintaining the
software after it has been completed.
The development team arrived at the information contained in the original version
of this document by examining the original project description in an individual
and group setting, by conducting research on the web and in libraries and by
discussingthe system.
Many updates have already been made to this document in order to make it more
readable. Some changes have also been incorporated into the requirements
themselves, as a result of the response to the original requirements document.
Further updates to this document could occur if this project is explored further in
the future.
This document makes use of several terms in very narrowly defined ways. The
reader is referred to the glossary at the end of this documents if he or she
encounters a word that seems confusing. The first occurrences of all words in the
glossary are italicized in the text, except in cases where the text itself defines them
explicitly.
1.3 Overview
All aspects of the software will use a graphical user interface. The system will be
furnished with a full on-line help system, as well as installation software.
This E-vote software should only be regarded as a pilot project, meant to examine
the feasibility of voting technology and to explore its potential. It is not intended for
elections on a national scale, at least at this stage. However, the software will be
designed to be scalable to full-scale elections given greater time, manpower and
testing resources.
6
I. GENERAL DESCRIPTION
2.1.5 Customers
7
The customers are the people or organizations who purchase the E-vote Elections
Software. They will be authorized to host elections on the Server. The Voting Client
will be available free of charge, and any purchasers of the server software will be
authorized to distribute it to their voters. Each customer will be responsible for
providing a System Administrator to overlook the installation and operation of the
Server. The customers will also be responsible for providing a host for the Server.
The Elections Officer is expected to be well versed in the elections protocol of the
organization whose election he or she is supervising and is expected to be
comfortable using GUI-based computer applications. It is assumed that the
Election Officer speaks and writes English, since the implementation team will not
have the time or the knowledge to write multiple versions of the Elections Editor
software to accommodate other languages. This could be done in a future release of
thesoftware.
2.1.8 Voters
Voters are those people who are authorized by the Elections Officer to vote in each
election using the E-vote Voting Client. They are expected to have access to a fully
networked computer and to be comfortable using GUI-based computer
applications. They must also have a secure access to a private e-mail address.
8
2.2.1 E-vote Elections Server
The Elections Server will be written in Java, so the computer hosting it must be
capable of running Java bytecode. The Server will run under Linux. The computer
hosting the server must be accessible by other machines on a network. Testing will
be done using the computers in Reynolds 008 as a basis for the minimum hardware
requirements to run the E-vote Election Server. Professor Stacey stated in class that
she did not expect the software would run the US election, but that it would be
reasonable to assume that the class could go down to Reynolds 008 to vote.
From this statement we infer that the E-vote Election Server must be able to run on
one of the computers in the lab. It must be able to host an election where Voters
can use the Voter Client software on all of the other computers in Reynolds 008 to
participate in an election. There are approximately forty machines in the Reynolds
lab. Thus, we will insure that at least forty voters can simultaneously vote on any
one election in theReynolds lab.
As it stands, almost no elections are held electronically. This means that there is a
great cost associated with collecting and counting votes, since many people must be
hired to perform and check these tasks. Manual elections take a long time to set up,
and occurrences such as recounts can greatly delay the reporting of results. All of
these time delays can be at least partially eliminated by having computers run
elections.
There are also many problems relating to the accuracy of manual elections. The
intentional inaccuracies introduced by the corruption of election officials can be
eliminated by having the election handled by an entirely impartial computer. The
10
unintentional inaccuracies of manual elections, such as improperly printed or
filled out ballots, can also be eliminated by electronic elections which use clear and
consistent interfaces.
Any organization running an electronic election will want software that is easy to
install and run. Ballots must be easy to design and they must be flexible as to the
number and types of questions. The Election Server must run efficiently and
securely. It must be impossible for anyone to break into the system and corrupt the
results, prematurely know the results of the election, vote when they are not
authorized to do so or vote more than once. The results of the election must be
clearly presented upon the completion of the election.
Voters need the ballots to be clear and easy to fill out and answer. It is important
that it be impossible for anyone to associate a voter’s name with his or her vote.
The development team must design, develop and test this software within the space
of three months. They also have important limitations placed on their time due to
many other projects that they must work on. They also suffer from severe lack of
funding. Due to these constraints, as well as the limited number of people working
on the project, it may be necessary to prioritize certain aspects of the project over
others. Functionality and security will be the first priorities.
11
II. SYSTEM REQUIREMENTS
1) Functionality
2) Reliability
3) Maintainability
4) Security and Privacy
5) Scalability
6) Interfaces
The requirements that are essential are marked with a dash, while the ones which
areless essential are marked with a bullet.
12
What qualifies as a win must be customized from a limited number of options (i.e. is
there a quorum for the election and/or each question, is there a minimum percentage
of votes in favor needed for a choice in each question to win and do the results of
certain questions depend on the results of other questions).
There will be the option of having weighted votes to accommodate situations such as
shareholders’ elections.
Specifies whether voters can refuse or spoil individual questions or their entire ballots.
Must only allow creations of elections when it is authorized by the System
Administrator.
Will indicate to the Elections officer if there are not enough systems resources to
accommodate a new election.
13
Allows voters to log on to a Server by entering its address, their username, password
and election code.
Receives ballots from the Server after successfullylogging on.
Allows voters to enter their votes and send them to the Server.
Encrypts all communications with the Server.
Allows voters to change their votes after having submitted them if this is allowed in a
particular election.
All data sent to the server will conform to a pre-defined format to enable the
software to detect any tampering of data in transit. If detected, the data will be
discarded and the voter prompted to resubmit his or her vote.
Voters must be sure that nobody else has access to their e-mail addresses, as
anyone reading their e-mail would have access to their voter identification
information. The Elections Server will limit the number of login attempts to prevent
automated attacks to gain or prevent access, however the voters must ensure that
their password is secure as the system would not be able to detect misrepresentation
of the voter.
14
3.2.2 Maintainability
The software will be well documented and it will be designed to be modular. The
use of object oriented programming will also help to increase maintainability. This
will make it easier for future developers to make changes and updates to the
software witha minimal amount of effort.
3.2.3 Scalability
Both the E-vote software and this document are meant to be easily scalable to
increase the scope and size of elections. All efforts will thus be made to use a
software design that does not have built in size limitations.
3.2.4 Reliability
All efforts will be made to write software that is entirely reliable. However, the
viability of electronic voting rests, in part, on the ability of systems
administrators and elections officials to incorporate redundancy into any deployed
voting system andto develop contingency plans for possible failures.
3.2.5 Interface
All aspects of the E-vote system will have a simple point and click interface using
menus, text fields, buttons and all of the other components of systems with
graphical user interfaces. This interface will be designed to be consistent. The
interface will be designed to help accommodate people with disabilities such as
colour blindness. The system will also be have a full on-line help system. Voting
results will be posted on web servers in HTML format.
15
III. DESIGN CONSTRAINTS
The software will only operate in English and will only allow ballots that use 7-bit
ASCII. This is because the first release of this project is only expected to be an
exploration of voting technology, so it is reasonable to assume that it will be used
primarily in North America. Both ASCII and English are used as standards in
international computing. Future versions of this software could be produced in
other language, but the current implementation team will not have the time or the
linguistic expertise to do so.
16
4.3 Computer Language Constraints
All configuration files must be in XML. The statistical reports must be generated in
HTML. The database used by the server must use MySQL. All software must be
written in Java.
The development team is limited in the type of encryption that can be used for
building the system by what is either available in the Linux and the Windows
Operating System, what can be found in Java libraries or by what they can write
themselves. It is not in the budget to purchase third- party encryption software.
There is a danger that outside of a public polling place, a voter could be coerced into
voting for a particular candidate, or selling his or her vote. It will also be difficult to
control vote solicitation at the time of voting. The E-vote software will have no
provisions to prevent any of these problems.
The installation of the Election Server will already assume that MySQL has been
installed and that the computer running the Election Server will be able to connect
to the MySQL database. It is also required that there be network access to the
computer running the Election Server, and that there is a capable Network
Administrator and Database Administrator to carry through the installation.
The installation of the Voting Client will assume that the target computer will have
network communication already set up.
17
IV. VALIDATION CRITERIA
The development team would like to ask the customer to review this requirements
document and verify it with all of the software stakeholders. This will ensure that
all conceptions of the product are consistent. Requests for additions or changes
should be submitted at this stage so that they can be incorporated into this
document. It is more costly to implement changes at later stages of development.
The following sections indicate the performance parameters that the development
team will test and ensure:
18
The number of ongoing elections allowed on one election server is not specifically
defined at this stage. There are three factors that will limit it: hard disk limitations,
network server traffic and the number of concurrently logged in voters that the
Election Server can accommodate.
Hard Disk limitations will dictate how many elections an Election Server can hold at
a time. The software must indicate to the Elections Officer when hard disk space is
too low to register another election. The System Administrator should have
knowledge of the Network Traffic that is on the network. If the expected increase in
network traffic from a new election is going to cause a Network problem, then
the network traffic load will have to be increased or the Election Server will have to
be hosted on a different network.
The Elections Server will have limitations with respect to the number of Voting
Clients that it can serve concurrently. The Election Server is intended to be scalable
in design. However, for the initial project delivery, we will be imposing a limit of
forty concurrent voters. It is up to the discretion of the System Administrator to
determine if another election on an Election Server will be too limiting to the Voters.
Factors influencing this decision are election duration and the number of
enumerated voters.
5.1 Testing
A test plan will be developed from the onset of design to ensure that testing is not an
afterthought. The development team will automate testing by writing software to test
all of the components of the system. Some testing will also be done manually. Tests
and their results will be documented. The following test classes will be considered
necessary:
19
To check that the software will what it should under normal conditions, the
development team will run through as many user scenarios as possible.
5.1.5.2 Dates
Tests will be run to ensure that date limitations are adhered to by the system
and that Voting Clients are able to have their votes submitted and properly
counted nearelection date boundaries.
20
Tests will be run to ensure that encrypted transmitted information cannot be
decoded within a time that falls within the duration of an election. This must be
further researched. The development team must know how long election data is
typically saved and how long it takes to break various encryption methods.
5.2 Prototyping
The development team will present the customers with working prototypes of
limited functionality at various stages of the production process. This will enable
the client tobe fully aware of all progress and provide useful feedback.
21
V. OPERATIONAL SCENARIOS
The development team will provide operational scenarios to highlight the major
functionality to be delivered in the software. These scenarios can be used to validate the
functionality of the system. It is expected that more scenarios will be added and that the
details of existing scenarios will be filled in as the projects scope is better realized.
Scenario 1.0: Elections Officer creates a new election and registers it.
An Elections Officer goes to the computer that has the Election editor component on it
and securely gains access to use it. He or she then enters the appropriate information
needed to create a new election.
After entering all the appropriate information, the Elections Officer can preview the
ballot. After previewing the ballot, the Election chooses to submit the election for
registration. The system will register the election, and report to the Election Officer
that either the election was registered successfully or that an error occurred with an
explanation of why the election could not be registered.
Scenario 1.1 – Elections Officer creates a new election but cancels before
registering it.
The Elections Officer performs all of the actions from Scenario 1.0 up to the point
after previewing the ballot. The Elections Officer, after previewing the ballot, chooses
to cancel. The ballot and election information is not registered. It is discarded by the
system.
Scenario 1.2 – Elections Officer creates a new election and makes changes to the
election before registering it.
The Elections Officer performs all of the actions from Scenario 1 up to the point after
previewing the ballot. The Elections Officer, after previewing the ballot, chooses to
make changes. He or she can change any of the information that was entered into the
Election editor up to this point. After making changes, the Election Officer can submit
the electionor cancel all the information entered.
22
change the election, the system will display a message informing the Election Officer
thatit is too late to change the election.
Scenario 4 – Elections Officer tries to change or delete a ballot after the deadline for
last election changes.
An Elections Officer attempts to change an election that is ongoing. He or she goes to
the computer with the Election editor component and securely gains access to it. The
Elections Officer requests to change an election. He or she is required to enter the
election code of the election. The election that he or she specifies is an ongoing
election. The system informs the Elections Officer that the election is already
underway, and that itcannot be changed or deleted.
23
VI. PRELIMINARY SCHEDULE
The Software Requirements Specification Document will be completed and submitted
for review by May 22, 2001.
The next step will be to amend this document based on the feedback received.
A design document will then be produced, which will also be submitted for review.
Once the design document is completed, work will begin on implementing the system.
Testing will be performed throughout all stages the development phase to ensure
quality.
Once the development phase begins, the software will be demonstrated every Monday.
A first release version of the software will be completed for distribution by early
August of 2001.
24
Use Case Model of Online Voting system
25
Class Diagram for Online voting system
26
Sequence diagram for online voting system
27
Collaboration Diagram
28
CONCLUSION
It is the development team’s hope that this document will be the first part of a
continuing series of interchanges between themselves and customers. This will ensure
that customers’ needs are met in a cheap and timely fashion. It will be important to
involve potential Elections Officers and Voters in this feedback process, as end-users
such as they often have many unique insights that might not occur to software
developers or people involved in management. This interchange will involve both
information such as this document and prototypes of the product. The end result will
be a product that is functional, reliable, secure and easy to learn and use.
29
Motivation
Elections play a major role in the country. Usually elections follow the Traditional Paper based
Voting or EVMs . Citizens has to move to the polling stations to cast their vote. It leads to gathering of
peo- ple in large number .In this pandemic situation its not safe to encourage gatherings. And also we
cannot avoid the elections. People at remote areas from their native places find difficult to reach their
hometowns to cast vote due to various reasons . Aged people cannot travel to polling stations and wait for
longer time in queue to cast vote. In order t overcome all these issues ,we decided to find a solution and
that is on-line vot- ing system.
Problem Definition
Now-a-days people find very less time to cast the vote .And there are several issues where India, democratic
country is unable to get polling of 100%.In order to make voting easy and secure , online voting system is
30
helpful. Voter has to register first and then login .Voter is authenticated and then proceed to voting page .
Voter cast the vote and logout. One can view the results at any instance of time .
Limitations Of Project:
We are developing a website for casting the vote online. While casting the vote the most important
thing is security. We are providing security through the otp authentication . OTP also provides strong
secu- rity but it would be more secure if we use fingerprint detection and cornea detection and map it
with the aadhar database details.
Organization Of Documentation:
In the document,
1) The first section provides the literature survey done for the project
2) Second section discusses the requirements of the project
3) Third section shows the project design
4) Fourth section discusses the results of the project
5) The fifth section discusses the validation and the last section gives the conclusion of the project.
31
LITERATURE SURVEY
Introduction
Now-a-days , there are tons of things we do online , from shopping to doing of any official ar-
rangement .So , why don’t we make the elections also to be online .
In this pandemic situation , gatherings is very danger . So , if we are trying to make voting process
online
Vote at any time from anywhere : Today’s way of living doesn’t leave much free time . We have
little to no time to do anything or go anywhere . So it would be good that may be giving the
chance to the members of our country to cast their vote in just a few minutes , without the need
32
to go to a certain place , would be a good option . So probably online voting would be better
op- tion . Unlike traditional voting , that makes voters go to a specific time in order to vote,
online voting allows them to cast their vote at anytime of the day and from any place , just
with the need of an Internet connection
Boost Participation : As a result of previous point , choosing online voting for election will more
likely boost the participation . Many people can participate in the elections to cast their vote
so that the turnout increases
Less Physical Infrastructure : When running a online voting system , we can avoid the need for
all the physical infrastructure usually required on a traditional voting . No need of paper,
print- ing , physical urns or staff. This may therefore lead to a lower monetary investment
Fast and easy votes tally : Since the counting of votes takes place through machines(automated
), human errors can be avoided . And also the process becomes more faster so that the
results are also processed faster
Security : Most important factor for voting systems . In our proposed system security is pro-
vided by OTP authentication .We have observed some major components provided in their website.
Some of them are
Voters : Target users of the website. Website provides platform to utilize their right to vote.
Results: Every citizen can view the results of elections at any point of time
technique
We used html, css, javascript for the front end development and PHP for connecting to the database and
storing the data.
Visual Studio code is the tool used for writing the code code.XAMPP is also used for developing the
project since it is a free and open source cross platform.It consists APACHE HTTP server,MARIA DB
database, and interpreters for scripts written in the PHP and Perl programming languages.We have gone
through the OTP authentication codes and chose to implement the random OTP generation.
33
Existing System
In our country , we are following the traditional paper based voting system or EVMs
which has several drawbacks .Whatever the system we follow , we need to move to the polling
stations to cast the vote and it leads to gathering of people in larger number.
Proposed System
In order to overcome the issues of existing voting system that is traditional paper based
voting system we are developing an online voting system by taking the advantage of centralised
database with a web interface .
Online Voting System enables voter to cast the from any remote place
It will help to increase the level of population to cast the vote that is it increases the total
turn- out
Voting on internet provides a safe and private channel that allows all users t participate
on equal terms
Increased accessibility for residents abroad and for persons with difficulties in travelling or re-
duced mobility
Advantages :
It removes the possibility of invalid and uncertain votes which, in many cases, are the root
36
Instant results of voting
ANALYSIS
Introduction:
Analysis is gathering and interpreting the data needed for the dental clinic and website.It is used for
understanding how the system works. It gives a good understanding about the requirements of the project.
User Requirement:
The website should allow the voter to cast the vote and give services only to the genuine user.
Genuine user should be identified via OTP authentication. User should be able to cast the vote only once
and only during the time of elections.
Software Requirements:
Operating System:
Windows,Linux,Mac
Languages:PHP,HTML,CSS,Java
Script Database:MYSQL
Server:Apache
Tools:Visual Studio Code,XAMPP
Browser:All compatable browsers
HardwareRequirements: 38
Processor:core i3 or higher RAM:2GB
Hard disk:25GB
e users are done with their activities they can log out of the website.In this way, their work becomes easier,
secure, and save their time.
Technologies used:
HTML:
HTML stands for Hyper Text Markup Language.HTML is the standard markup language for
creating Web pages.HTML describes the structure of a Web page.HTML consists of a series of
elements.HTML ele- ments tell the browser how to display the content.
CSS:
CSS stands for Cascading Style Sheets.CSS describes how HTML elements are to be displayed on
screen, paper, or in other media.CSS saves a lot of work. It can control the layout of multiple web pages
all at once.External stylesheets are stored in CSS files
JS:
(i) Client side validation of form elements instead of sending data to server every time.
(ii) To insert new elements such as text box etc. to the website on the go.
(iii) To provide users notifications from the server.
(iv) To load data in the background from the server and loaded on to the page side without reloading.
PHP:
PHP is an acronym for "PHP: Hypertext Preprocessor”.PHP is a widely-used, open source scripting
language.PHP scripts are executed on the server.PHP is free to download and use
PHP can be used for the following:
• PHP can generate dynamic page content
• PHP can create, open, read, write, delete, and close files on the server
• PHP can collect form data
• PHP can send and receive cookies
• PHP can add, delete, modify data in your database
• PHP can be used to control user-access 40
• PHP can encrypt data
DESIGN
Introduction:
The design phase shows how the project has been implemented.The components involved in the
project.In this one or more designs are developed which gives the apparent results for the project.
UML(Unified Modelling language) is a standard language for specifying, visualising,
constructing, and documenting the artifacts of software systems.UML diagrams are simple to
understand.UML represents two different types of diagrams:
1) Structural diagrams:
These diagrams represents how the system is going to be built.These define the structure of the
sys- tem and the components involved in the system.It shows the static features of the system
The structural diagrams are:
• Class diagrams
• Object diagrams
• Components diagrams
• Deployment diagrams
2) Behavioural diagrams:
These diagrams represent the dynamic behaviour of the system.The interactions in the system are
shown using the behavioural diagrams
The behavioural diagrams are:
• Activity diagrams
• Interaction diagrams
Sequence diagram
Collaboration
diagram
• Usecase diagrams
We have chosen class diagram,Usecase diagram and Sequence diagram for showing the static and
dynamic features of our project
41
UML Diagrams:
Usecase Diagram:
Usecase diagram represents the user interactions with the system.It shows customer relationship
with different usecases. It helps in designing a system from users perspective.It also shows the different
function- alities provided by the system.
This usecase diagram shows that a voter can login and logout of the system ,cast the vote, update
profiles, manage votes, manage candidates, manage voters, display results. 42
Class Diagram:
It represents the structure of the system showing systems classes, attributes, operations and relation-
ships among among the objects.It is a basic notation for other structure diagrams in UML
Sequence diagram: 43
It is a type of interaction diagram which shows how a group of objects work together in the system.
Introduction:
Implementation is the carrying out plans mentioned in our system planning.Implementation gives
the opportunity to see the plans become a reality.Implementation is executing the project.It makes the
reality and helps in understanding the project.
Method of Implementation:
We have followed iterative model for implementing the project.
In the Iterative model, iterative process starts with a simple implementation of a small set of the software
requirements and iteratively enhances the evolving versions until the complete system is implemented
and ready to be deployed.
An iterative life cycle model does not attempt to start with a full specification of requirements. Instead,
de- velopment begins by specifying and implementing just part of the software, which is then reviewed to
identify further requirements. This process is then repeated, producing a new version of the software at
the end of each iteration of the model.
Iterative process starts with a simple implementation of a subset of the software requirements and
iteratively enhances the evolving versions until the full system is implemented. At each iteration, design
modifications are made and new functional capabilities are added. The basic idea behind this method is
to develop a sys- tem through repeated cycles (iterative) and in smaller portions at a time (incremental)
Iterative and Incremental development is a combination of both iterative design or iterative method and
in- cremental build model for development. "During software development, more than one iteration of
the soft- ware development cycle may be in progress at the same time." This process may be described as
an "evolu- tionary acquisition" or "incremental build" approach."
In this incremental model, the whole requirement is divided into various builds. During each iteration,
the development module goes through the requirements, design, implementation and testing phases.
Each subse- quent release of the module adds function to the previous release. The process continues till
the complete system is ready as per the requirement.
The key to a successful use of an iterative software development lifecycle is rigorous validation of
require- ments, and verification & testing of each version of the software against those requirements
45
within each cycle of the model. As the software evolves through successive cycles, tests must be repeated
and extended to verify each version of the software.
Like other SDLC models, Iterative and incremental development has some specific applications in the soft-
ware industry. This model is most often used in the following scenarios −
● Requirements of the complete system are clearly defined and understood.
● Major requirements must be defined; however, some functionalities or requested enhancements may
evolve with time.
● There is a time to the market constraint.
● A new technology is being used and is being learnt by the development team while working on the
project.
● Resources with needed skill sets are not available and are planned to be used on contract basis for
specific iterations.
● There are some high-risk features and goals which may change in the future
Output Screens: 46
47
48
49
50
AUTHENTICATION OUTPUT SCREENS:
51
52
53
54
Result Analysis
We have made a detailed analysis of various results and their expected output of our project. The
given below are the results we have identified in the result analysis.
1. collecting registration details:
We collect all the user registration details which they fill in the registration form and that user details
we store in our database.
At the time of new user registration, we validate the form so that already registered users cannot be regis-
tered again
A user can log in once he has successfully registered with us and we verify the user credentials with the user
details which we have stored in our database
4. Authenticate user:
Using OTP(One Time Password) authentication we authenticate the user. So that we can know that our
user was genuine or not.
5. Access Services:
Once the user is successfully login with our site then user can access all our services like casting the vote,
viewing the results .
6. Logout:
55
Expected Actual
56
TESTING AND VALIDATION
Introduction
Validation is ensuring that all the customer needs are satisfied .Software testing is evaluating software re-
quirements against requirements gathered from users and system specifications.
Testing can be done using two approaches:
1) Functionality
testing 2)Implementation
testing Black box
testing:
In black box testing the functionality of the system is tested.Here we do not check how the project
is implemented.For a certain input if expected output matches with the actual output then the project is
success otherwise it has bugs.It is also known as behavioural testing.
In white box testing the implementation is also checked.It is also known as structural testing.In
this design and code structure are known to the tester.
Test Cases:
1 Login User name and password Navigate to authentica- tion Navigates to au- Pass
are taken as input page thentication page
2 Register All inputs are given cor- Navigate to login page Navigates to login Pass
rect where aadhar number page
is primary key
3 Cast vote Click Stores the vote and Stored the vote Pass
navigates to thankyou page and navigates to
thankyou page 57
Test ID Operations Input Expected Output Actual Output Result
Validation:
After the testing phase, following outcomes were achieved.
1) User can access the website at any time.
2) User can cast the vote from any remote area.
3) User can get instance results of elections without any delay.
4) Security is provided with otp authentication and there is no issue of tampering of votes
58
CONCLUSION
Conclusion:
We are designing an alternative voting system besides the conventional voting system . Since , todays
world has become very familiar with internet and people don’t find time to go out for voting
By doing this project we were able to bring a new system for online national voting for our country. With
the advent of technology and Internet in our day to day life, we were able to offer advanced voting system
to voters both in the country and outside through our online voting system.
We are designing an alternative voting system besides the conventional voting system . Since , todays
world has become very familiar with internet and people don’t find time to go out for votingGatherings
are also very dangerous in this pandemic situations. Providing better solution to overcome the issues with
existing system
● Enables large number of people to cast their vote evn at remote places
Future Scope:
• It can be made more secure by using the advance security methods like biometrics
FUTURE ENHANCEMENT :
• Fingerprinting
59
• Cornea Detection