62
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

Electronic Voting Sys

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Electronic Voting Sys

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:__________

Page 3: Electronic Voting Sys

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:__________

Page 4: Electronic Voting Sys

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.

Page 5: Electronic Voting Sys

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

Page 6: Electronic Voting Sys

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

Page 7: Electronic Voting Sys

7

List of Tables

TABE NAME PAGE NO.

Hardware Requirement………………………………………………….………………..33

Software Requirement……………………………………………………………………35

Page 8: Electronic Voting Sys

8

CHAPTER 1

INTRODUCTION

Purpose

Product Scope

Background

Traditional Voting System

Page 9: Electronic Voting Sys

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.

Page 10: Electronic Voting Sys

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.

Page 11: Electronic Voting Sys

11

CHAPTER 2

METHODOLOGY

Model: Spiral Model

Architectural Description

Page 12: Electronic Voting Sys

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

Page 13: Electronic Voting Sys

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

Page 14: Electronic Voting Sys

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.

Page 15: Electronic Voting Sys

15

CHAPTER 3

FUNCTIONAL REQUIREMENTS

Context

Data Requirements

Other non functional requirement

Use Case Diagram

Sequence Diagram

Page 16: Electronic Voting Sys

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.

Page 17: Electronic Voting Sys

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.

Page 18: Electronic Voting Sys

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.

Page 19: Electronic Voting Sys

19

CHAPTER 4

DESIGN

Page 20: Electronic Voting Sys

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.

Page 21: Electronic Voting Sys

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.

Page 22: Electronic Voting Sys

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

Page 23: Electronic Voting Sys

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.

Page 24: Electronic Voting Sys

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.

Page 25: Electronic Voting Sys

25

CHAPTER 5

DATA FLOW DIAGRAM

Page 26: Electronic Voting Sys

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.

Page 27: Electronic Voting Sys

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.

Page 28: Electronic Voting Sys

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

Page 29: Electronic Voting Sys

29

CHAPTER 6

ER DIAGRAM

Page 30: Electronic Voting Sys

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.

Page 31: Electronic Voting Sys

31

Entity Relation Diagram

Page 32: Electronic Voting Sys

32

CHAPTER 7

HARDWARE REQUIREMENTS

Page 33: Electronic Voting Sys

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.

Page 34: Electronic Voting Sys

34

CHAPTER 8

SOFTWARE REQUIREMENTS

Page 35: Electronic Voting Sys

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

Page 36: Electronic Voting Sys

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

Page 37: Electronic Voting Sys

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.

Page 38: Electronic Voting Sys

38

CHAPTER 9

FEATURES

Page 39: Electronic Voting Sys

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.

Page 40: Electronic Voting Sys

40

CHAPTER 10

USER MANUAL

Page 41: Electronic Voting Sys

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.

Page 42: Electronic Voting Sys

42

CHAPTER 11

RESULTS

Page 43: Electronic Voting Sys

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.

Page 44: Electronic Voting Sys

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.

Page 45: Electronic Voting Sys

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.

Page 46: Electronic Voting Sys

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.

Page 47: Electronic Voting Sys

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.

Page 48: Electronic Voting Sys

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.

Page 49: Electronic Voting Sys

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.

Page 50: Electronic Voting Sys

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.

Page 51: Electronic Voting Sys

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.

Page 52: Electronic Voting Sys

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.

Page 53: Electronic Voting Sys

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.

Page 54: Electronic Voting Sys

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.

Page 55: Electronic Voting Sys

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.

Page 56: Electronic Voting Sys

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.

Page 57: Electronic Voting Sys

57

Database Snapshots:

Authentication Table:

Constituency Table:

Party Table:

Nominee Table:

Voter Information Table:

Page 58: Electronic Voting Sys

58

CHAPTER 12

CONCLUSION

Page 59: Electronic Voting Sys

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.

Page 60: Electronic Voting Sys

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

Page 61: Electronic Voting Sys

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

Page 62: Electronic Voting Sys

62