Download - Electronic Voting Sys
1
Electronic Voting System (eNirvachan)
A
Project Report
SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS OF
REQUIREMENTS OF THE AWARD OF DEGREE OF
BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE & ENGINEERING
NATIONAL INSTITUTE OF TECHNOLOGY, RAIPUR
BY
Ravi Kiran -08115046
Saurabh Kumar Rao -08115053
Sushant Ranade -08115059
UNDER THE GUIDANCE OF
MR. S. VENKATRAMAN Lecturer
Dept. of Computer Science & Engg.
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
NATIONAL INSTITUTE OF TECHNOLOGY, RAIPUR
2
CERTIFICATE
NATIONAL INSTITUTE OF TECHNOLOGY RAIPUR
This is to certify that the project work entitled, “Electronic Voting System(eNirvachan)” submitted
by Ravi Kiran, Saurabh Kumar Rao and Sushant Ranade in partial fulfillments for the
requirements for the award of Bachelor of Technology Degree in Computer Science and Engineering
at National Institute of Technology, Raipur is an authentic work carried out by them under my
supervision and guidance.
To the best of my knowledge, the matter embodied in the thesis has not been submitted to any other
University/Institute for the award of any Degree or Diploma.
Mr. S. Venkatraman Dr.(Ms). S. L. Sinha
Lecturer Head of Department
Dept. Of Computer Science & Engg. Dept. Of Computer Science & Engg.
Date:__________
3
CERTIFICATE
NATIONAL INSTITUTE OF TECHNOLOGY RAIPUR
This is to certify that the project work entitled, “Electronic Voting System(eNirvachan)” submitted
by Ravi Kiran, Saurabh Kumar Rao and Sushant Ranade in partial fulfillments for the
requirements for the award of Bachelor of Technology Degree in Computer Science and Engineering
at National Institute of Technology, Raipur is an authentic work carried out by them under my
supervision and guidance.
To the best of my knowledge, the matter embodied in the thesis has not been submitted to any other
University/Institute for the award of any Degree or Diploma.
Internal Examiner External Examiner
Mr. S. Venkatraman Dr.(Ms). S. L. Sinha
Lecturer Head of Department
Dept. Of Computer Science & Engg. Dept.Of Computer Science & Engg.
NIT Raipur NIT Raipur
Date:__________
4
ACKNOWLEDGEMENT
Though this project has been completed by us, but there are many people who have helped us in the
process. Without their contribution this project would have remain incomplete.
First and foremost we express our heartily acknowledgement to Dr S. L. Sinha, Head Of Computer
Science & Engineering Department, NIT Raipur for providing us the opportunity and freedom to
work on this project.
We would also like to thank our project guide Mr. S. Venkatraman, Lecturer Department of Computer
Science & Engineering, who has provided us guidance at each and every step. We would like to thank
him from the bottom of our heart for being always there, to provide us guidance, to point and correct
our mistakes. He has been inspiration for us and we are highly indebted to his kindness and help.
Last but not the least, we would also like to thank our family and friends for the moral support and
encouragement throughout.
5
TABLE OF CONTENTS
1 INTRODUCTION..............................................................................................................8 1.1 Purpose........................................................................................................................9
1.2 Product Scope................................................................................................….….…9
1.3 Background……………………………………………………………………..…....9
1.4 Traditional Voting System………………………………………………………......10 2 METHODOLOGIES.........................................................................................................11
2.1 Spiral Model...............................................................................................................12
2.2 Architectural Description………………………………………………………........14 2.2.1 Client-Server Architecture…………………………………………………….14
3 FUNCTIONAL REQUIREMENTS..................................................................................15
3.1 Context........................................................................................................................16
3.2 User Requirements………………………………………………………………......16 3.3 Other Non-Functional Requirements………………………………………………...17
3.4 Use Case Diagram…………………………………………………………………...17
3.5 Sequence Diagram……………………………………………………………...…....18 4 DESIGN……………………………………………………………………………...….19
4.1 Modules…………………………………………………………………………...…20
4.1.1 User Interface………………………………………………………………….20 4.1.2 Verification………………………………………………………………….....21
4.1.3 Database……………………………………………………………………….22
4.1.4 Error Handling………………………………………………………………....24
4.1.5 Report Generation…………………………………………...…………………24 5 DATA FLOW DIAGRAM................................................................................................25
6 ER DIAGRAM..................................................................................................................29
7 HARDWARE REQUIREMENTS....................................................................................32 8 SOFTWARE REQUIREMENTS......................................................................................34
9 FEATURES.......................................................................................................................38
10 USER MANUAL.............................................................................................................40 11 RESULTS…....................................................................................................................42
12 CONCLUSIONS.............................................................................................................58
12.1 Advantages...............................................................................................................59
12.2 Applications.......................................................................................................…...59 12.3 Limitations.....................................................................................................….......59
12.4 Future Enhancement………………………………………………………………..60
13 BIBLIOGRAPHIES.........................................................................................................61
6
List of Figures
TITLE PAGE NO.
Spiral model……………………………………………………………………….13
Use Case Diagram………………………………………………………………....17
Sequence Diagram………………………………………………………………...18
Modules……………………………………………………………………………20
DFD Symbol………………………………………………………………………27
Data Flow Diagram………………………………………………………………..28
Entity Relationship………………………………………………………………..31
7
List of Tables
TABE NAME PAGE NO.
Hardware Requirement………………………………………………….………………..33
Software Requirement……………………………………………………………………35
8
CHAPTER 1
INTRODUCTION
Purpose
Product Scope
Background
Traditional Voting System
9
1. INTRODUCTION
1.1 Purpose
This project is a DESKTOP-BASED PROJECT named E-NIRVACHAN for election commission
which has a lot of Overhead tasks, and involves a lot of paper work and Human involvement at
different Designation levels and different Department levels. We have minimised those tasks for
the Employees of the election commission by building a Desktop-based solution. It eliminates the
possibility of invalid and doubtful votes which, in many cases, are the root causes of controversies
and election petitions. It makes the process of counting of votes much faster than the conventional
system. It reduces to a great extent the quantity of paper used thus saving a large number of trees
making the process eco-friendly. It reduces cost of printing almost nil. The Manpower required
for conducting elections is reduced significantly. Traditional Voting System does not meet the
current requirements as population of India is increasing day by day, and it can record small no of
votes in it. We still need much manpower and EVM for Conduction of Election. The
transportation of machine from and to polling booth also adds to the work required and cost. Any
failure in machine cannot be easily recovered and sometimes voting gets delayed due to these
problems. Electronic Voting System requires computer and can work throughout without any
problem.
1.2 Product Scope
This project implements the functionalities of Electronic Voting Machine where the voters of a
particular region cast their votes that get stored in the database which also reduces consumption of
paper .Generally these days every corporation & commission has computerised its total work.
This project reduces the tasks for employees of election commission and also for both employees
and public at booth centre for voting. This project not only benefits normal man but also to
officials associated with Election Commission. To conduct Elections all over a country is very
hard piece of work. This software can be used from small organisations ranging to a country.
Since the space is unlimited in computer context. Before a person need to report to a particular
booth for casting his votes, but Electronic Voting System makes this activity flexible as a person
can report any of the booths and can cast his votes easily. The scope of this software is widened as
we can easily get different reports including percentage of Voting, winner of election from a place
etc.
1.3 Background
India is world’s largest democracy. It is perceived to be charismatic one as it accommodates
cultural, regional, economic, social disparities and still is able to stand on its own. Fundamental
right to vote or simply voting in elections forms the basis of Indian democracy.
In India all earlier elections be it state elections or center elections a voter used to cast his/her vote
to his/her favorite candidate by putting the stamp against his/her name and then folding the ballot
paper as per a prescribed method before putting it in the Ballot box. This is a long, time-
consuming process and very much prone to errors.
This situation continued till election scene was completely changed by electronic voting machine.
No more ballot paper, ballot boxes, stamping, etc. all this condensed into a simple box called
ballot unit of the electronic voting machine.
10
EVM is capable of saving considerable printing stationery and transport of large volumes of
electoral material. It is easy to transport, store, and maintain. It completely rules out the chance of
invalid votes. It use results in reduction of polling time, resulting in fewer problems in electoral
preparations, law and order, candidates' expenditure, etc. and easy and accurate counting without
any mischief at the counting center. It is also eco-friendly.
1.4 Traditional Voting System
In traditional voting system people use to vote on paper by marking the party symbol and the
counting is also performed manually. This may cause lack of transparency. The manual labour
cost too much for voting and counting which extra burden on economy is. The traditional method
is not eco-friendly because of waste of paper. Paper based system is very vulnerable to bad voting
as it has specific way of casting votes and folding the ballot paper. Whenever there is wrong
casting or illegal casting of votes the vote is discarded. Even when a person folds the paper in a
different manner, as specified, the vote is discarded. So there are great chances of votes getting
discarded due to untrained voters. Even when votes are casted successfully, some anti-social
elements may destroy the whole ballot box by pouring ink inside it. This leads to the wastage of
all the efforts incurred for conduction of election on a booth. Even after introduction of Electronic
Voting system the need of paper reduced significantly but still machines needed to be transported
from one place to another leading to wastage to manpower, money and resources. Electronic
Voting system can store only 3840 votes at a time further which we need another EVM to
continue the election. This leads to additional requirement of time and manpower to get the result
on compilation. There can be manipulations with the machine. The machine can be tampered
easily.
11
CHAPTER 2
METHODOLOGY
Model: Spiral Model
Architectural Description
12
2. METHODOLOGY
The design starts after the requirement analysis is complete and the coding begins after the design is
complete. Once the programming is completed, the testing is done. The sequence of activities
performed in this software development project is: -
Requirement Analysis
Project Planning
System design
Detail design
Coding
Unit testing
System integration & testing
Here the linear ordering of these activities is critical. End of the phase and the output of one phase is the input of other phase. The output of each phase is to be consistent with the overall requirement of
the system.
2.1 MODEL: SPIRAL MODEL
The spiral model is a software development process combining elements of both design and
prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it is a systems development method
(SDM) used in information technology (IT). This model of development combines the features of the
prototyping model and the waterfall model. The spiral model is intended for large, expensive and complicated projects.
The steps in the spiral model iteration can be generalized as follows:-
1. The system requirements are defined in as much detail as possible. This usually involves
interviewing a number of users representing all the external or internal users and other aspects of
the existing system.
2. A preliminary design is created for the new system. This phase is the most important part of
"Spiral Model". In this phase all possible (and available) alternatives which can help in developing a cost effective project are analyzed and strategies to use them are decided. This phase
has been added specially in order to identify and resolve all the possible risks in the project
development. If risks indicate any kind of uncertainty in requirements, prototyping may be used to proceed with the available data and find out possible solution in order to deal with the potential
changes in the requirements.
3. A first prototype of the new system is constructed from the preliminary design. This is usually a
scaled-down system, and represents an approximation of the characteristics of the final product.
4. A second prototype is evolved by a fourfold procedure:
1. evaluating the first prototype in terms of its strengths, weaknesses, and risks;
2. defining the requirements of the second prototype;
3. planning and designing the second prototype;
4. Constructing and testing the second prototype
13
.
Applications
The spiral model is mostly used in large projects. For smaller projects, the concept of agile software development is becoming a viable alternative. The US military had adopted the spiral model for its
Future Combat Systems program. The FCS project was canceled after six years (2003–2009), it had a
two year iteration (spiral). The FCS should have resulted in three consecutive prototypes (one
prototype per spiral—every two years). It was canceled in May 2009. The spiral model thus may suit small (up to $3 million) software applications and not a complicated ($3 billion) distributed,
interoperable, system of systems.
Also it is reasonable to use the spiral model in projects where business goals are unstable but the
architecture must be realized well enough to provide high loading and stress ability. For example, the
Spiral Architecture Driven Development is the spiral based SDLC which shows the possible way how to reduce a risk of non-effective architecture with the help of spiral model in conjunction with the best
practices from other models.
SPIRAL MODEL
14
2.2 Architectural Description: Client Server Architecture
Client/server systems are constructed so that the database can reside on a central computer, known as a server, and be shared among several users. Users access the server through a client or server
application:
In a two-tier client/server system, users run an application on their local computer, known as a
client that connects over a network to the server running SQL Server. The client application
runs both business logic and the code to display output to the user, and is also known as a
thick client.
In a multitier client/server system, the client application logic is run in two locations:
The thin client is run on the user's local computer and is focused on displaying results
to the user.
The business logic is located in server applications running on a server. Thin clients request functions from the server application, which is itself a multithreaded
application capable of working with many concurrent users. The server application is
the one that opens connections to the database server and can be running on the same
server as the database, or it can connect across the network to a separate server
operating as a database server.
This is a typical scenario for an Internet application. For example, a server
application can run on a Microsoft Internet Information Services (IIS) and service
thousands of thin clients running on the Internet or an intranet. The server application uses a pool of connections to communicate with a copy of SQL Server. SQL Server
can be installed on the same computer as IIS, or it can be installed on a separate
server in the network.
Having data stored and managed in a central location offers several advantages:
Each data item is stored in a central location where all users can work with it.
Separate copies of the item are not stored on each client, which eliminates problems with
users having to ensure they are all working with the same information.
Business and security rules can be defined one time on the server and enforced equally among
all users.
This can be done in a database through the use of constraints, stored procedures, and triggers.
It can also be done in a server application.
A relational database server optimizes network traffic by returning only the data an
application needs.
15
CHAPTER 3
FUNCTIONAL REQUIREMENTS
Context
Data Requirements
Other non functional requirement
Use Case Diagram
Sequence Diagram
16
3. Functional Requirement
3.1 Context
Functional requirements capture the intended behavior of the system. This behavior may be
expressed as services, tasks or functions the system is required to perform.
In product development, it is useful to distinguish between the baselines functionality necessary for
any system to compete in that product domain, and features that differentiate the system from
competitors’ products, and from variants in your company’s own product line/family. Features may be additional functionality, or differ from the basic functionality along some quality attribute (such as
performance or memory utilization).
These strategies have important implications for software architecture. In particular, it is not just the
functional requirements of the first product or release that must be supported by the architecture. The
functional requirements of early (nearly concurrent) releases need to be explicitly taken into account. Later releases are accommodated through architectural qualities such as extensibility, flexibility, etc.
The latter are expressed as non-functional requirements.
3.2 Data Requirement Data Requirements describe the master tables used in the project. In any project or software we use
two types of tables i.e. master tables and transaction tables. The master tables are the database tables
which is used to keep data whereas transaction table are those tables that are used for any transaction,
the values from master tables are used in transaction tables.
Table name: - authentication
This table stores the information of username, password and their role according to which they will
get their access.
Table name: - constituency
This table stores the name of the constituency and the identification no of the constituency.
Table name: - nominee
This table stores the information about the nominee who will be contesting in the election. Here all
the details like name, party, symbol are stored.
Table name: - party
The party table store information about the party like party name, party symbol and head of the party are stored.
Table name: - voterinfo
The voterinfo store the information about the voters like voter id no, voter name, date of birth and
address.
17
3.3 Other Non Functional Requirement
There are other non functional requirements like party logo, voter and nominee images. These images name are stored in the tables but to store the image it is stored in a separate folder on a
system. The logo or the pictures for different pages are saved in a system.
3.4 Use Case Diagram
Use cases are used during the analysis phase of a project to identify and partition system functionality.
They separate the system into actors and use cases. Actors represent roles that can are played by users
of the system. Those users can be humans, other computers, pieces of hardware, or even other software systems. The only criterion is that they must be external to the part of the system being
partitioned into use cases. They must supply stimuli to that part of the system, and the must receive
outputs from it. Use cases describe the behavior of the system when one of these actors sends one particular stimulus. This behavior is described textually. It describes the nature of the stimulus that
triggers the use case; the inputs from and outputs to other actors, and the behaviors that convert the
inputs to the outputs. The text of the use case also usually describes everything that can go wrong
during the course of the specified behavior, and what remedial action the system will take.
18
3.5 Sequence Diagram A sequence diagram in a Unified Modeling Language (UML) is a kind of interaction
diagram that shows how processes operate with one another and in what order. It is a
construct of a Message Sequence Chart. A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and classes involved in the scenario and
the sequence of messages exchanged between the objects needed to carry out the
functionality of the scenario. Sequence diagrams typically are associated with use case
realizations in the Logical View of the system under development.
A sequence diagram shows, as parallel vertical lines (lifelines), different processes or
objects that live simultaneously, and, as horizontal arrows, the messages exchanged
between them, in the order in which they occur. This allows the specification of simple runtime scenarios in a graphical manner.
19
CHAPTER 4
DESIGN
20
4.1 Modules
4.1.1 User Interface
Swing is the primary Java GUI widget toolkit. It is part of Oracle's Java Foundation Classes (JFC) —
an API for providing a graphical user interface (GUI) for Java programs.
Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract
Window Toolkit (AWT). Swing provides a native look and feel that emulates the look and feel of
several platforms, and also supports a pluggable look and feel that allows applications to have a look
and feel unrelated to the underlying platform. It has more powerful and flexible components than
AWT. In addition to familiar components such as buttons, check box and labels, Swing provides
several advanced components such as tabbed panel, scroll panes, trees, tables and lists.
Unlike AWT components, Swing components are not implemented by platform-specific code. Instead
they are written entirely in Java and therefore are platform-independent. The term "lightweight" is
used to describe such an element.
The Abstract Window Toolkit (AWT) is Java's original platform-independent windowing, graphics,
and user-interface widget toolkit. The AWT is now part of the Java Foundation Classes (JFC) — the
standard API for providing a graphical user interface (GUI) for a Java program.
AWT is also the GUI toolkit for a number of Java ME profiles. For example, Connected Device
Configuration profiles require Java runtimes on mobile telephonesto support AWT.
21
The AWT provides two levels of APIs:
A general interface between Java and the native system, used for windowing, events, and layout
managers. This API is at the core of Java GUI programming and is also used by Swing and Java
2D. It contains:
The interface between the native windowing system and the Java application;
The core of the GUI event subsystem;
Several layout managers;
The interface to input devices such as mouse and keyboard; and
A java.awt.datatransfer package for use with the Clipboard and Drag and Drop.
A basic set of GUI widgets such as buttons, text boxes, and menus. It also provides the AWT
Native Interface, which enables rendering libraries compiled to native code to draw directly to an
AWTCanvas object drawing surface.
AWT also makes some higher level functionality available to applications, such as:
Access to the system tray on supporting systems; and
The ability to launch some desktop applications such as web browsers and email clients from a
Java application.
Neither AWT nor Swing are inherently thread safe. Therefore, code that updates the GUI or processes
events should execute on the Event dispatching thread. Failure to do so may result in a deadlocker
race condition. To address this problem, a utility class called SwingWorker allows applications to
perform time-consuming tasks following user-interaction events in the event dispatching thread.
Prior to Java 6 Update 12, mixing Swing components and basic AWT widgets often resulted in
undesired side effects, with AWT widgets appearing on top of the Swing widgets regardless of their
defined z-order. This problem was because the rendering architecture of the two widget toolkits was
very different, despite Swing borrowing heavyweight top containers from AWT.
Starting in Java 6 Update 12, it is possible to mix Swing and AWT widgets without having z-order
problems.
4.1.2 Verification
In computer science, a hash table or hash map is a data structure that uses a hash function to map
identifying values, known as keys (e.g., a person's name), to their associated values (e.g., their
telephone number). Thus, a hash table implements an associative array. The hash function is used to
transform the key into the index (the hash) of an array element (the slot or bucket) where the
corresponding value is to be sought.
22
Ideally, the hash function should map each possible key to a unique slot index, but this ideal is rarely
achievable in practice (unless the hash keys are fixed; i.e. new entries are never added to the table
after it is created). Instead, most hash table designs assume that hash collisions—different keys that
map to the same hash value—will occur and must be accommodated in some way.
In this project we will use primary key for indexing the records of the tables. Searching and retrieving
records using primary key is best as it identifies the records uniquely.
4.1.3 Database
Authentication Table
This table consists of all the records necessary for a person to log in. The uname field is the username
and is the primary key as it will be unique, passwd provides password for the corresponding uname,
role field provides a indication as to whether the user is admin or operator. The operator and admin
can change their password whenever required.
Voter Table
This table contains voter details. The primary is v_id which represents the voter id available with the
voter. v_name represents the name of the voter. v_address represents the address of the voter. v_dob
shows the date of birth of the voter. v_sex shows us the gender of the voter. v_image stores the image
of a voter for proper use and validation. v_voted shows whether the voter has casted his vote or not.
v_voted is initialized with “Not Voted”.
Nominee Table
23
This table consists of details of nominee from a constituency. n_id represents the nominee id of the
nominee and this field is unique for each nominee and this field is identity, so it gets incremented
automatically as a record is inserted in the table. n_v_id shows the voter id of the nominee and acts as
a foreign key for the Voterinfo table. n_party stores the party to which the nominee belongs and the
name of which is taken from the party table except in the case of others when nominee does not
belong to a party. In case of others the nominee logo is to be chosen otherwise logo is taken from the
party table. n_place represents the constituency from which the nominee is contesting an election.
n_vote keeps the count of votes being casted to the nominee at the time of polling.
Party Table
This table consists of information of the party p_id represents the party id and uniquely identifies a
party. p_name shows the name of the party and it needs to be unique. p_head shows the name of the
head of the party. p_logo shows the logo of the party for the election and it also should be unique.
State Table
This table shows the state name iv the form of s_name associated with s_id which is the id of the
particular state. s_id is the primary key of the table.
Constituency Table
This table shows the constituencies in a state. c_id shows the constituency id as the primary key of the
table. s_id represents the state id which is the foreign key of the state table. c_name gives the
constituency name.
24
4.1.4 Error Handling
Java provides the java.util.regex package for pattern matching with regular expressions. Java regular
expressions are very similar to the Perl programming language and very easy to learn.
A regular expression is a special sequence of characters that helps you match or find other strings or
sets of strings, using a specialized syntax held in a pattern. They can be used to search, edit, or
manipulate text and data.
The java.util.regex package primarily consists of the following three classes:
Pattern Class: A Pattern object is a compiled representation of a regular expression. The Pattern class provides no public constructors. To create a pattern, you must first invoke one of
its public static compile methods, which will then return a Pattern object. These methods
accept a regular expression as the first argument. Matcher Class: A Matcher object is the engine that interprets the pattern and performs match
operations against an input string. Like the Pattern class, Matcher defines no public
constructors. You obtain a Matcher object by invoking the matcher method on a Pattern
object.
Static methods in the JOptionPane class let you easily create modal dialogs to show messages
(JOptionPane.showMessageDialog), to ask for confirmation (JOptionPane.showConfirmDialog), to
let the user enter text or to choose among predefined options (JOptionPane.showInputDialog), or to
choose among a variety of buttons (JOptionPane.showOptionDialog). Each of these methods either
returns an int specifying which button was pressed, or a String specifying the option selected.
This Dialog or popup help us in showing different error state to user, it also sometimes is used for
confirmation of certain action by the user. This tool helps us in error handling as it gives time to time
update to the user about the mistakes that he might be committing while performing his actions.
4.1.5 Report Generation
With the JTable class you can display tables of data, optionally allowing the user to edit the
data. JTable does not contain or cache data; it is simply a view of your data.
We can display or report of a particular election at particular place using JTable. JTable shows the
details of the votes casted to the nominee.
The report generated will also contain the percentage of voting at a place.
25
CHAPTER 5
DATA FLOW DIAGRAM
26
5. Data Flow Diagram A data flow diagram is graphical tool used to describe and analyze movement of data through a system. These are the central tool and the basis from which the other components are developed. The
transformation of data from input to output, through processed, may be described logically and
independently of physical components associated with the system. These are known as the logical data flow diagrams. The physical data flow diagrams show the actual implements and movement of
data between people, departments and workstations. A full description of a system actually consists of
a set of data flow diagrams. Using two familiar notations Yourdon, Gane and Sarson notation develops the data flow diagrams. Each component in a DFD is labeled with a descriptive name.
Process is further identified with a number that will be used for identification purpose. The
development of DFD’S is done in several levels. Each process in lower level diagrams can be broken
down into a more detailed DFD in the next level. The lop-level diagram is often called context diagram. It consist a single process bit, which plays vital role in studying the current system. The
process in the context level diagram is exploded into other process at the first level DFD.
The idea behind the explosion of a process into more process is that Understanding at one level of
detail is exploded into greater detail at the next level. This is done until further explosion is necessary
and an adequate amount of detail is described for analyst to understand the process.
Larry Constantine first developed the DFD as a way of expressing system requirements in a graphical
from, this lead to the modular design.
A DFD is also known as a “bubble Chart” has the purpose of clarifying system requirements and
identifying major transformations that will become programs in system design. So it is the starting
point of the design to the lowest level of detail. A DFD consists of a series of bubbles joined by data flows in the system.
DFD SYMBOLS:
In the DFD, there are four symbols
A square defines a source (originator) or destination of system data
An arrow identifies data flow. It is the pipeline through which the information flows
A circle or a bubble represents a process that transforms incoming data flow into outgoing
data flows.
An open rectangle is a data store, data at rest or a temporary repository of data.
27
CONSTRUCTING A DFD:
Several rules of thumb are used in drawing DFD’S:
Process should be named and numbered for an easy reference. Each name should be
representative of the process.
The direction of flow is from top to bottom and from left to right. Data traditionally flow from
source to the destination although they may flow back to the source. One way to indicate this is to draw long flow line back to a source. An alternative way is to repeat the source symbol
as a destination. Since it is used more than once in the
DFD it is marked with a short diagonal.
When a process is exploded into lower level details, they are numbered.
The names of data stores and destinations are written in capital letters. Process and dataflow
names have the first letter of each work capitalized. A DFD typically shows the minimum contents of data store. Each data store should contain all the
data elements that flow in and out.
Questionnaires should contain all the data elements that flow in and out. Missing interfaces
redundancies and like is then accounted for often through interviews.
28
AUTHENTICATION
NOMINEE
PARTY
CONSTIUENCY
VOTERINFO
eNIRVACHAN
LOGIN
ADMIN
OPERATOR
ADMIN
RESULTS
REMOVE PARTY
ADD
CONSTITUENCY
OPERATOR
VOTE
ADD VOTER
ADD PARTY
DELETE VOTER
TABLE 1
TABLE 2
TABLE 3
TABLE 4
TABLE 5
29
CHAPTER 6
ER DIAGRAM
30
6. ER Diagrams
An ERD is a model that identifies the concepts or entities that exist in a system and the relationships between those entities. An ERD is often used as a way to visualize a relational database: each entity
represents a database table, and the relationship lines represent the keys in one table that point to
specific records in related tables. ERDs may also be more abstract, not necessarily capturing every table needed within a database, but serving to diagram the major concepts and relationships. This
ERD is of the latter type, intended to present an abstract, theoretical view of the major entities and
relationships needed for management of electronic resources. It may assist the database design process for an e-resource management system, but does not identify every table that would be
necessary for an electronic resource management database.
The ERD presents a visual representation of e-resource management concepts and the relationships between them. The Data Element Dictionary identifies and defines the individual data elements that
an e-resource management system must contain and manage, but leaves the relationship between the
elements to be inferred by the reader.
Entities Entities are equivalent to database tables in a relational database, with each row of the table
representing an instance of that entity.
Relationships Relationships are represented by lines between entities. Relationship lines indicate that each instance
of an entity may have a relationship with instances of the connected entity, and vice versa.
31
Entity Relation Diagram
32
CHAPTER 7
HARDWARE REQUIREMENTS
33
7. HARDWARE REQUIREMENTS
This project is a simple lightweight installation-free application employing the technologies of JAVA. Since project is a lightweight application, the hardware requirements are such that
computers, that are about five or six years back would too satisfy the hardware requirements.
For the convenience of the prospective user, and information, the likely minimum configuration for a Personal Computer for successfully running project would be:-
Hard disk (free) 64 MB
RAM 128 MB
Processor 2.40 GHz
I/O Webcam
Mouse
Speaker
Monitor
As we would observe, most of the working PC’s we see around us exceed these specifications in
excess so project is most likely to run on any PC.
34
CHAPTER 8
SOFTWARE REQUIREMENTS
35
8. SOFTWARE REQUIREMENTS
Operating System Windows 98 or higher
Front end .JDK
J Creator
Back end SQL Server 2008
8.1 JAVA
Java is a programming language originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core
component of Sun Microsystems' Java platform. The language derives much of
its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file) that can run on any Java Virtual
Machine (JVM) regardless of computer architecture. Java is a general-purpose, concurrent, class-
based, object-oriented language that is specifically designed to have as few implementation
dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to run on
another. Java is currently one of the most popular programming languages in use, particularly for
client-server web applications, with a reported 10 million users.
8.2 JCreator
JCreator is a Java IDE created by Xinox Software. Its interface is similar to that of Microsoft's Visual Studio. Because it is programmed entirely in C++, (except the first version
(0.1), which was Java-based ), Xinox Software has asserted that JCreator is faster than competing
Java-based Java IDEs.
Features:-
Custom color schemes
Wrapping around of your existing projects
Different JDK profiles can be used
Quick code writing via project templates
Easy project viewing with the class browser
36
Debugging with an easy, intuitive interface. No command-line prompts necessary
Wizards help you cut to the chase writing your project, quickly and easily
Automatic Classpath configuration
UI customization (similar to Microsoft Visual Studio)
The run-time environment can run your application as an applet, in a JUnit environment or in a
command-line window JCreator's IDE does not require a Java Runtime Environment to execute, which may make it faster
than Java-based IDE's.
8.3 MICROSOFT SQL SERVER (RDBMS) SQL SERVER is one of the leading database management systems (DBMS) because it is the only
Database that meets the uncompromising requirements of today’s most demanding information systems. From complex decision support systems (DSS) to the most rigorous online transaction
processing (OLTP) application, even application that require simultaneous DSS and OLTP access to
the same critical data, SQL Server leads the industry in both performance and capability SQL
SERVER is a truly portable, distributed, and open DBMS that delivers unmatched performance, continuous operation and support for every database.
SQL SERVER RDBMS is high performance fault tolerant DBMS which is specially
designed for online transactions processing and for handling large database application.SQL SERVER with transactions processing option offers two features which contribute to very high level of
transaction processing throughput, which are The row level lock manager
ENTERPRISE WIDE DATA SHARING The unrivaled portability and connectivity of the SQL SERVER DBMS enables
all the systems in the organization to be linked into a singular, integrated computing resource.
PORTABILITY SQL SERVER is fully portable to more than 80 distinct hardware and operating systems platforms,
including UNIX, MSDOS, OS/2, Macintosh and dozens of proprietary platforms. This portability
gives complete freedom to choose the database server platform that meets the system requirements.
OPEN SYSTEMS SQL SERVER offers a leading implementation of industry –standard SQL. SQL Server’s open architecture integrates SQL SERVER and non –SQL SERVER DBMS
with industry’s most comprehensive collection of tools, application, and third party software products
SQL Server’s Open architecture provides transparent access to data from other relational database and
even non-relational database.
DISTRIBUTED DATA SHARING SQL Server’s networking and distributed database capabilities to access data stored on remote server with the same ease as if the information was stored on a single local computer. A single SQL
37
statement can access data at multiple sites. You can store data where system requirements such as
performance, security or availability dictate.
UNMATCHED PERFORMANCE The most advanced architecture in the industry allows the SQL SERVER DBMS
to deliver unmatched performance.
SOPHISTICATED CONCURRENCY CONTROL Real World applications demand access to critical data. With most database
Systems application becomes “contention bound” – which performance is limited not by the CPU
power or by disk I/O, but user waiting on one another for data access . SQL Server employs full, unrestricted row-level locking and contention free queries to minimize and in many cases entirely
eliminates contention wait times.
NO I/O BOTTLENECKS SQL Server’s fast commit groups commit and deferred write technologies dramatically reduce disk I/O bottlenecks. While some database write whole data block to disk at
commit time, SQL Server commits transactions with at most sequential log file on disk at commit
time, On high throughput systems, one sequential writes typically group commit multiple transactions.
Data read by the transaction remains as shared memory so that other transactions may access that data without reading it again from disk. Since fast commits write all data necessary to the recovery to the
log file, modified blocks are written back to the database independently of the transaction commit,
when written from memory to disk.
SQL SERVER TABLES SQL Server stores records relating to each other in a table. Different tables are created for the various
groups of information. Related tables are grouped together to form a database.
PRIMARY KEY Every table in SQL Server has a field or a combination of fields that uniquely identifies each record in
the table. The Unique identifier is called the Primary Key, or simply the Key. The primary key
provides the means to distinguish one record from all other in a table. It allows the user and the
database system to identify, locate and refer to one particular record in the database.
38
CHAPTER 9
FEATURES
39
9. FEATURES
Some of the features of e-NIRVACHAN are :-
Fast results: - In traditional voting system one have to wait for results but through this
application we can get results faster.
Secure: - this application is secure since user have provided user name and password and
the user have provided different level of visibility.
User friendly: - the interface of the application has been designed in such a way that
anyone can easily use and handle it.
Independent of place for voter : - In a constituency a voter need not to go on specific
place to cast vote. Since the systems are connected in LAN so a voter can cast his vote
from different place.
Reduce the paper work of election commission: - With this application the paperwork of
election commission will be reduced since the voter and party registration can be done on
system.
Environmental effect: - For each national election alone it is estimated that about 10,000
tons of ballot paper (roughly 200,000 trees) would be saved. There are of course many
more state and city/village level elections and the cost of printing those ballot papers
would be also enormous.
Bogus voting can be greatly reduced
No transportation cost.
Invalid votes can be reduced.
40
CHAPTER 10
USER MANUAL
41
10. USER MANUAL
Table of Contents:
Overview
How to install
How to run
Overview -
e-NIRVACHAN is a user friendly software it use java platform and MS-SQL.
How to install –
For installing this application JDK is needed.
MS-SQL is also needed for backend.
How to Run –
To run the application, open the folder in which it is saved. Then click the e-NIRVACHAN logo. The
application will be started.
Next enter the user name and password according to your designation. Now the window have
different buttons which will lead to different application. Every window have menu bar through which log out is possible and there is option to change the password.
42
CHAPTER 11
RESULTS
43
Home Page of e-NIRVACHAN:
This is the home page of our project. In the given fields of username and password a person
will enter his username and password. If the username and password are valid then the person
will be redirected towards the page assigned according to role which may be admin or
operator.
44
Admin Home Page:
This is the home page of admin which is redirected after the home page of project. In this
form there are different buttons like “ADD VOTER” ,”ADD NOMINEE”,”ADD PARTY”,
and other buttons to modify or delete the entry from the database tables. Admin can add,
delete or modify in tables by a click on the buttons which are redirected towards the
appropriate pages. Admin can see the results of different places by choosing the place from
drop down list.
45
Add Nominee Page:
This is the page to add nominee details in database table. It should be noted that for a person
to be nominee in the election he or she must be registered as voter. Using voter id all the
details like name, date of birth , address, image can retrieved from voterinfo table. If the
person is from a party the party symbol will updated as his logo or he will have to choose the
logo.
46
Add Party Page:
This page is to add party in the party table of database. The field party name and party head’s
name are validated such that they will accept only characters. In party logo field the size of
image which will be uploaded should be less than 50 KB and the image will ne automatically
resized according to thumbnail.
47
Delete Nominee Page:
This page is used to delete a registered nominee. To delete nominee from database one must
know the nominee id. As the nominee id is entered all the nominee information will be
displayed on the page. As the delete button is clicked the user is asked whether he is sure of
deleting the nominee or not.
48
Modify Party Page:
This page is used to modify party detail. As the party’s name is entered the party head name
will be displayed in a text box which can be modified.
49
Operator Assign Page:
This page is under the functionality of admin to an election operator. Here admin will assign
a username and a password to the operator.
50
Delete Operator Page:
This page is designed to delete an existing operator from the database. Admin have to choose
the operator name from the drop down list. As the operator is selected and delete button is
clicked the user will be asked if he is sure to delete the operator.
51
Change Password Page:
This page is used to change the password of a user. The password will only be changed if the
user enters the current password correctly.
52
Operator Home Page:
This is the Home page of Operator which shows all the functionalities which are present with
the Operator. The functionalities include Adding a Voter, Modifying the details of the Voter,
Deleting an existing Voter, and Voter Authentication at the time of Polling.
53
Voter Modify Window:
This page is used by the Admin and the Operator to modify the details of an existing voter.
The admin or the operator can edit the Voter Name, Date of Birth, Address of the Voter, sex,
and the Image of the Voter.
54
Voter Authentication Window (For the Operator):
This page is used for the authentication of the Voter at the time of the poll. The operator
would ask for the Voter ID of the voter and his Date of Birth. If the two match with the
entries in the database, the voter is deemed as an authentic one and the Voter then proceeds to
the Voting Window.
55
Voting Window:
This window is used by the voter to vote the candidate of his choice. The window consists of
the name of all the nominees which are standing for the election from the area to which the
voter belongs. The voter can vote on a particular nominee of his choice simply by clicking
the button ‘Click to Vote’ which is placed adjacent to the nominee name.
56
Result Table Window:
This page displays the result of a particular constituency after the conduction of the Elections.
This functionality is present with the Admin. The result page displays the name of the
constituency for which the Admin has selected to view the result, the voting percent of that
constituency and the number of votes each candidate from that constituency has achieved.
The name of the candidates is displayed in the table in the descending order of the number of
votes the candidates have got individually.
57
Database Snapshots:
Authentication Table:
Constituency Table:
Party Table:
Nominee Table:
Voter Information Table:
58
CHAPTER 12
CONCLUSION
59
12. CONCLUSION
12.1 Applications of e-NIRVACHAN
e-NIRVACHN retains all the characteristics of voting by ballot papers, while making polling a lot
more expedient. Being fast and absolutely reliable, the e-NIRVACHAN saves considerable time,
money and manpower. And, of course, helps maintain total voting secrecy without the use of ballot papers. The e-NIRVACHAN is 100 per cent tamper proof. And, at the end of the polling, just press a
button and there you have the results. This can also be used for election at small organization. It
reduces the cost of election so it will be very useful for small organization where budget is limited.
12.2 Advantages of e-NIRVACHAN
1. Instant results
Once polling is completed, the election results can be known instantly at the counting station by
pressing the '‘Result'’ button.
2. Security
It is secure since for admin and operator it is password protected. Voter s will be authenticated before
casting vote so it is secure from user and voter view.
3. Easy to install
It just needs a common system with jdk and MS-SQL installed in it.
4. Economical
Since there is no transportation cost and paper cost so it is economic.
5. Less Invalid Votes
There will be less invalid votes since there is no use of ink and paper.
6. Eco Friendly
Large number of trees can be saved which is used for ballot papers.
12.3 Limitations
Some disadvantages of electronic voting can include viruses and hacking, as well physical tampering.
Hackers are a big problem on the internet today. Although companies and organizations take many
precautions when it comes to their electronic products, there always seems to be ways to hack into
them. Electronic voting machines are no different than web sites or software; they can be penetrated
and altered by a hacker.
60
Also, besides tampering with the machines electronically, machines could be tampered physically,
with foreign software being uploaded into the machine by someone trying to corrupt the election
results.
Another disadvantage of electronic voting systems could be the overall costs. Software, machines,
installations, proper software protection, and validation of results could be expensive; even more
expensive than paper-based machines.
There could also be just a general error in the system, without any outsider tampering. Computer
software and systems can have problems that may delay or even halt voting, or may cause errors in
calculations
12.4 Future Enhancements
The following are the areas in which we would like to enhance our software: in its usability and in its compatibility.
Complete PC Security Check
Database Modification
Fingerprint Validation
Visual Effects
Touch Screen Mode
Security Enhancement
61
13. Bibliography
We are indebted to many sources for the information provided by them which helped in the
completion of this project.
Books: -
1. Java TM
2: A Complete Reference – Herbert Schildt. McGraw-Hill/Osborne. New York
Chicago San Francisco.
2. Head First Java (2nd
Edition)- Katy Sierra and Bert Bates.
Websites:-
1. www.stackoverflow.com
2. www.roseindia.net
3. www.docs.oracle.com
4. www.javalobby.org
5. www.social.msdn.microsoft.com/Forums
62