You are on page 1of 59

Page |1

Project Report
On
Online National Polling System
SUBMITTED FOR THE PARTIAL FULFILLMENT OF AWARD OF
BACHELOR OF TECHNOLOGY
IN
INFORMATION TECHNOLOGY& ENGINEERING
(U.P. TECHNICAL UNIVERSITY, LUCKNOW)

Submitted to
Mr. Rishi Agarwal
Department of CS/IT
G.L.A.I.T.M, Mathura.

DEPARTMENT OF COMPUTER SCIENCE &ENGINEERING


G.L.A. INSTITUTE OF TECHNOLOGY & MANAGEMENT
(Affiliated to U.P. Technical University, Lucknow)
NH-2, MATHURA(U.P.)
(2010-11)
Page |2

Table Of Contents
CERTIFICATE.......................................................................5
DECLARATION……………………………………………6
ACKNOWLEDGEMENT…………………………………..7
ABSTRACT………………………………………………….8
LIST OF FIGURES…………………………………………9

CHAPTER 1: BASIC INTRODUCTION


1) Introduction…………………………………………. .10
1.1 Purpose………………………………………….
1.2 Scope……………………………………………..10
1.3 Document Convention…………………………...10
1.4 Intended Audience……………………………….11
1.5 Technologies……………………………………..11
1.6 Features Of ASP.NET………………………….12
1.7 Abreviations…………………………………….12

2) Overall description…………………………………..13
2.1 Product perspective……………………………..13
2.2 Product Function………………………………..13
2.3 User classes and characteristics…………………14
2.4 Operating environment…………………………..14
2.5 Design and implementation constraints………….15

CHAPTER 2:FEASIBILITY STUDY,REQUIREMENT


ANALYSIS

1 Software Development Cycle……………………15


Page |3

2 Feasibility Study………………………………….16
2.1 Technical Feasibility Study…………………..16
2.2 Time Feasibility Study………………………..16
2.3 Economic Feasibility Study………………….17
2.4 Operational Feasibility Study………………….17
2.5 Behavioral Feasibility Study…………………..17
2.6 Legal Feasibility Study………………………..17

3 Requirement Analysis……………………………………18

4 System Features…………………………………………18
4.1 Functional requirements……………………………18

5 External interface requirements……………………….19

5.1 User interfaces………………………………………19


5.2 Hardware interfaces…………………………………27
5.3 Software interfaces………………………………….27
5.4 Communication interfaces…………………………..27
6 Other Non-functional Requirements………………………28
6.1 Performance Requirements…………………………..28
6.2 Safety Requirements………………………………….28
6.3 Security Requirements………………………………..28
6.4 Software Quality Attributes…………………………..29

CHAPTER 3: SYSTEM ANALYSIS AND SYSTEM DESIGN

1. System Analysis…………………………………………30
1.1 Specification of project……………………………….
2. System Design……………………………………………30
2.1 Design Concept……………………………………31
Page |4

3. Data Flow Diagram……………………………………….32


3.1 Data Flow………………………………………….32
3.2 Developing Data Flow Diagram………………….32
3.3 Top Down Approach……………………………..32
3.4 Data Flow Diagram Levels………………………..32
3.4.1 Context Level Diagram……………………32
3.4.2 Level1(high level Diagram)……………….33
3.4.3 Use Case Modal……………………………34
CHAPTER 4: INTERFACE OF USER
1. SNAPSHOT………………………………………………35
2. CODING………………………………………………….42
CHAPTER 5: CONCLUSION……………………………………49

REFERENCES…………………………………………………….49
Page |5

(Affiliated to U.P. Technical University, Lucknow )

G.L.A INSTITUTE OF TECHNOLOGY &


MANAGEMENT
Approved by AICTE & Affiliated to U.P Technical University Lucknow
(An ISO 9002 Accredited Institute)
17 km Milestone N.H #2 Mathura Delhi Road

Certificate

DEPARTMENT OF COMPUTER SCIENCE

This is to certify that the Project entitled “ONLINE NATIONAL POLLING SYSTEM” has
been develop under the supervision during session 2011-2012 at HPES NOIDA by Vishabh
Goel, student of B-Tech, Final year (Information Technology).

It is further certified that the student have submitted the present volume as a project to
department of computer science.

Mr. Rishi Agarwal


Page |6

DECLARATION

We hereby declare that this submission is our own work of two months in summer training and
that, to the best of our knowledge and belief, it contains no material previously published or
written by another person nor material which to a substantial extent has been accepted for the
award of any other degree or diploma of the university or other institute of higher learning,
except where due acknowledgment has been made in the text.

TEAM MEMBERS:
Vishabh Goel(IT-4th yr.)
Page |7

ACKNOWLEDGEMENT

With deep regards we would like to pay our sincere thanks to Mr. Pramendra Tripathi for her
indispensible support and proper guidance. He has been very encouraging and helpful throughout
the development of the project. We would like to take the opportunity to thank Mr. Pramendra
Tripathi for motivating and inspiring us to develop this project into a reality. Also for his efforts
in making us available with all the resources required for the development of the project and also
for their cooperation.
Page |8

ABSTRACT

We live in a democracy and voting is one of our fundamental duties as responsible citizens of the
country, but nowhere around the country a 100% people come to vote during the elections in
their territory. There have been many reasons for that some of them are:
• In the rural areas the influential people keep their men at the polling booths to threaten the
common man to vote for them.
• There are many portions of the country like the North East where there is locally sponsored
terrorism, at such places the security conditions are also not very bright, so naturally people feel
afraid to come out of their houses and go to vote.
• Net savvy new generation want hassle free voting system. Also the people in metros want a
system thru which they can vote for their territory without traveling.
Keeping in mind these situations and to improve the state of democracy in the country Online
Polling System can be thought as a solution, in conjunction with the ongoing current manual
voting system.
Page |9

LIST OF FIGURES

Number Description

Figure 3.3.1 Context Level DFD


Figure 3.3.2 1st Levels DFD
Figure 3.3.3 Use Case Modal
P a g e | 10

1 Introduction
“[It is] by their votes the people exercise their sovereignty.” - Thomas Jefferson

 Purpose

‘One person, one vote’ – a guiding principle of Indian suffrage – is devalued when votes
are lost, miscounted, or erroneously discarded. Surely modern technology can save the
country from this awful electoral predicament.
The purpose of this document is to make the functional requirements of the Software
Engineering project on an online-voting system easy to comprehend. It also serves the purpose of
making the functionality clear to the end users. The reader is expected to have prerequisite
knowledge of online voting systems to be able to understand the document.

 Scope
 The software produced will be an online voting system.
 The software will be used by citizens to cast their vote online, it will also
calculate the voting percentage and may be used by candidates for online
campaigning. It will be used for the registration of voter and for filling
nomination forms of the candidates.
 The main objective of this software is to increase the overall voting %. It
will be used at the time of elections. Through this software people get
their voter-id card easily and each voter will get a unique id no. to caste
their valuable vote.
 It will maintain the database of all the eligible citizens and candidates.
 It will manage all the account details of the voters such as citizen name,
date of birth, their constituency area, region, state, login id and password
of the voter and also of the candidate from one central location

 Document Conventions

. Throughout the document we refer to the authority which is organizing the elections as
the EA( acronym for Election Authority ).
. The term ’system’ refers to the software system that is setup for the purpose of holding
the elections.
. The use of the term ’election instance’ refers to a particular election with its own timings,
P a g e | 11

candidates, posts. The voters’ database remains common across these election instances.

 Intended Audience

The intended audience of this document is the potential end user. The document may also
serve as a reference guide to the developers of the system.

 Technologies:
 ASP.NET : Application architecture
 Microsoft Sql Server : Database
 WAS : Web server
 Rational : Design tool

FEATURES OF ASP.NET:

ASP.NET is not just a simple upgrade or the latest version of ASP. ASP.NET combines
unprecedented developer productivity with performance, reliability, and deployment. ASP.NET
redesigns the whole process. It's still easy to grasp for new comers but it provides many new
ways of managing projects. Below are the features of ASP.NET.

Easy Programming Model

ASP.NET makes building real world Web applications dramatically easier. ASP.NET server
controls enable an
HTML-like style of declarative programming that let you build great pages with far less code
than with classic ASP. Displaying data, validating user input, and uploading files are all
amazingly easy. Best of all, ASP.NET pages work in all browsers including Netscape, Opera,
AOL, and Internet Explorer.

Flexible Language Options

ASP.NET lets you leverage your current programming language skills. Unlike classic ASP,
which supports only interpreted VBScript and JScript, ASP.NET now supports more than 25
.NET languages (built-in support for VB.NET, C#, and JScript.NET), giving you unprecedented
flexibility in your choice of language.

Great Tool Support

You can harness the full power of ASP.NET using any text editor, even Notepad. But Visual
Studio .NET adds the productivity of Visual Basic-style development to the Web. Now you can
visually design ASP.NET Web Forms using familiar drag-drop-doubleclick techniques, and
P a g e | 12

enjoy full-fledged code support including statement completion and color-coding. VS.NET also
provides integrated support for debugging and deploying ASP.NET Web applications. The
Enterprise versions of Visual Studio .NET deliver life-cycle features to help organizations plan,
analyze, design, build, test, and coordinate teams that develop ASP.NET Web
applications. These include UML class modeling, database modeling (conceptual, logical, and
physical models), testing tools (functional, performance and scalability), and enterprise
frameworks and templates, all available within the integrated Visual Studio .NET environment.

Rich Class Framework

Application features that used to be hard to implement, or required a 3rd-party component, can
now be added in just a few lines of code using the .NET Framework. The .NET Framework
offers over 4500 classes that encapsulate rich functionality like XML, data access, file upload,
regular expressions, image generation, performance monitoring and logging, transactions,
message queuing, SMTP mail, and much more. With Improved Performance and Scalability
ASP.NET lets you use serve more users with the same hardware

Compiled execution

ASP.NET is much faster than classic ASP, while preserving the "just hit save" update model of
ASP. However, no explicit compile step is required. ASP.NET will automatically detect any
changes, dynamically compile the files if needed, and store the compiled results to reuse for
subsequent requests. Dynamic compilation ensures that your application is always up to date,
and compiled execution makes it fast. Most applications migrated from classic
ASP see a 3x to 5x increase in pages served.

Rich output caching


ASP.NET output caching can dramatically improve the performance and scalability of your
application. When output caching is enabled on a page, ASP.NET executes the page just once,
and saves the result in memory in addition to sending it to the user. When another user requests
the same page, ASP.NET serves the cached result from memory without re-executing the
page. Output caching is configurable, and can be used to cache individual regions or an entire
page. Output caching can dramatically improve the performance of data-driven pages by
eliminating the need to query the database on every request.

 Abbreviations:

 HTML
Hyper Text Markup Language.
 HTTP
Hyper Text Transfer Protocol.
P a g e | 13

2. Overall Description
 Product perspective

 The web pages (XML/JSP) are present to provide the user interface on customer client
side. Communication between customer and server is provided through HTTP/HTTPS
protocols.
 The software product is a standalone system and not a part of a larger system. The system
will be made up of two parts, one running visible directly to the administrator on the
server machine and the other visible to the end users, in this case the voters, through web
pages.
 The two users of the system, namely the voters and the election authority(EA) interact
with the system in different ways. The election authority configures the whole system
according to its needs on the server where the system is running.
 The voters cast their votes using the web interface provided. These votes are accepted by
the system on the server.

 Product Functions

On the EA side, the system can be used to create/update/delete the election details (
Posts, candidates, electoral rolls etc.). The EA should be able to specify the different
attributes it wants for posts/candidates of a particular election instance and voters. For
example, one EA may want the candidate’s photograph as an attribute, where as another
EA may not find it necessary. Similarly, they may want one set of attributes for voters
in one setting and a different one in another. For Example, in a university, the EA might
P a g e | 14

be happy with just the roll numbers of each voter while an election in an association may
require voters’ name, phone number, address etc. After the election is set up, passwords
must be generated and mailed to voters on request.
The system should also be able to run separate election instances at the same time.
From the voters perspective, the system is used to help them cast their votes and after the
elections are over, allow them to view the results, which are automatically posted on the
same site after the election duration is over.

 User Classes and Characteristics

The users can be divided into two main classes:


– The EA :It’s primary objective is to conduct fair and hassle-free elections. The EA has
to be a neutral party and should not have any gain/loss from the election results. The
EA invites potential candidates to file their nomination for certain posts depending on
certain constraints. As explained earlier, the EA decides the classes of voters eligible
to vote for a certain post. They should have adequate experience of using a computer
to be able to configure the election properly.
– The Voters : The voters should have a basic knowledge of how to use a web browser
and navigate through web pages. The voters should be aware that they have to keep
their user-id and password confidential.

 Operating Environment

The server should have Java installed on the machine, along with Java’s cryptographic
packages. The election server runs on a http server, that is ”jsp” enabled. The browsers
through which the voters access the server should have minimal support for cookies and
encrypted transactions.

 Design/Implementation Constraints

Even though the system enables voters to poll their vote from any terminal connected
to the Internet, the voters should initially contact the election administrator’s office to
authenticate themselves and establish their user-ids. This constraint is imposed to ensure
that only the genuine person is allowed to vote in the elections.
Also, it is assumed that only the EA has access to the server that hosts the election.
P a g e | 15

 Assumptions and Dependencies

User side assumptions and dependencies


– PC (Personal Computer) or workstation with GUI.
– A web browser with support for cookies.
– Working Internet connection.
Server side assumptions and dependencies
– A web server with GUI, Java and an http server installed .

CHAPTER 2
FEASIBILITY STUDY, REQUIREMENT ANALYSIS

SOFTWARE DEVELOPMENT CYCLE

Since the inception of this project all software engineering principles have been followed.
This project has passed through all the stages of software development life cycle (SDLC).
A development process consist of various phases, each phase ending with a defined output. The
main reason for following the SDLC process is that it breaks the problem of developing
software into successfully performing a set of phases, each phase handling a different concern
of software development. Object technologies lead to reuse and reuse (of program
components) lead to faster software development and higher quality programs. Object
oriented software is easy to maintain because its structure is inherently decoupled. In
addition, object oriented systems are easier to adopt and easier to scale. The Object
Oriented process moves through an evolutionary spiral that starts with customer
satisfaction. It is here that the problem domain is defined and that basic problem classes
are identified. Planning establishes a foundation for the Object Oriented Project Plan.
P a g e | 16

FEASIBILITY STUDY

Feasibility study involves study of the system and to look whether the system does the
kind of job expected from it. The objective of the feasibility study is not to solve the problem but
to predict (on the basis of system analysis & problem definition) that if it does the kind of work
expected on it, in a reasonable period of elapsed time, & consistent with the financial &
processing objective and needs of the organization or any Placement Agency.
Feasibility study analysis is done in respect of the following:

 Technical Feasibility Study


 Economic Feasibility study
 Legal Feasibility Study
 Time Feasibility Study
 Operational Feasibility Study
 Social/ Behavioral Feasibility Study

 Technical Feasibility Study

The Project can be developed simply by using two platforms i.e. ASP.net as front-
end and Microsoft SQL Server as back-end. All the functions of a Online National
Polling System can be implemented in the new system. Hence it is technically
feasible.

 Economic Feasibility study

The Project of Online National Polling System is a worth making project.


Software which can keep all the details of voters info, voting details, will
definitely give remarkable benefits to both the customer and the developer. This
P a g e | 17

project is economically feasible in every sense that it takes less effort, less time,
and nominal cost of tools for developing the software

 Legal Feasibility Study

Since this project needs no copyrighting, patenting, and doesn’t have any relation
with anybody else’s property rights, it can be considered as a legally feasible
project.

 Time Feasibility Study

As it has been more probable (as per the requirements and functions specifications
of the system) that the project can be completed within the given timeframe, it is
considered that the undertaking this project is feasible in the context of time.

 Operational Feasibility Study

This system is completely operational and can be successfully implemented by


those who are really in need of such software which can keep record of their
contacts and appointments with a few modifications in the software.

 Social/Behavioral Feasibility Study

Online National Polling is easy to understand not only for any sophisticated users
but for the native users as well. It provides a simple way in which user can feel
free to vote faster, easier, and more accurately. Therefore, it can be socially and
behaviorally accepted and is feasible too.
P a g e | 18

3. System Features

 Functional Requirements

 Online registration for the voter id card which will be verified by the field officers
(address and identity validation) and after receiving the field officer's report only
the registration will be validated and a voter id will be issued (a photograph will
have to be uploaded). You can also think about any other secure method like
digital signature.
 Those already having a voter id card can register for the online voting system,
they will use their voter id as their user name and a separate password will be
used for secure authentication.
 The election commission will be able to use the site to let the candidates register
for their nomination on the site and their officers will validate it. Candidates can
run their election campaign through forums and chat-room.
 A detailed profile of all the candidates constituency wise will be maintained so
that voters can always know about the candidates of their area.
 Once registered whenever polling is done in any area that areas' people will be
able to vote for their favorite candidates.
 Devise a mechanism that ensures duplicates voting (online & offline) is not
happening.
 The system would show the current statistics as well on the web site about how
many votes which candidates have got.
 Later when the voting ends the administrator can add the manual poling results to
the database to calculate the final results which will immediately be flashed on the
site.
 . Facilitate appropriate communication between all stakeholders - Discussion
forum/chat/mail/polls
 . Candidates should be able to modify selected portions of their profile after
registration for nomination like the promises they make about the things to do
after winning the election, their previous works, their experiences and a
comprehensive about me, etc.
P a g e | 19

4. External Interface Requirements


 User Interfaces
We have given all the use cases that are there for the system to specify the user interface.
They are given below:
 Use case 0 : Welcome screen for the Administrator
Main success scenario:-
1) The EA is asked to login using his administrator password.
2) The EA is provided the option of working with voters database or the election
instances.
3) The EA chooses to work with election instances. Refer to use case 4.
Extensions:-
a) The EA enters wrong user-id or password. He is asked to re-enter the password.
b) The EA chooses to work with voters’ database. Refer to Use case 1.

 Use case 1 : Creating the Voters Database

Main success scenario:-


1) On start-up, the EA is presented with a screen (called the voter start screen
henceforth) where he can choose to either create, modify or delete the voters
database.
.
2) The EA chooses ’create’.
3) The system takes EA to a new screen and asks the EA to give a name for the new
voter class and asks the EA to provide some identification information for the
class.
4) The system provides a field where the EA can add a roll number and his attributes
by clicking add, in addition to a facility to load entries from a file.
5) The EA confirms the entries it has made. The system registers the entry and
presents the EA with welcome screens of Use case 0.

Extensions:-
a) The EA chooses to modify a voter instance.
b) The EA chooses to delete the voters’ database.
c) The EA chooses to create a new voter class for the first time ever, the EA is
Redirected to a new screen where he is required to specify the attributes of the
voters that are needed to be stored in the database along with the primary key
P a g e | 20

among them. The system then takes the EA to step 3 of the main success
scenario.
d) The class name specified already exists. The system asks the EA to enter a new
name, go back to step 5.
e) Improper attribute format. Signal an error and go back to the same screen without
any action.
f) The entered entity shares the same primary key with an existing entity, but the
other attributes differ in their values. The system throws up an error displaying
the clashing attributes and asks the EA to re-enter the entity.
g) Improper file format or file read error. Signal an error and go back to the same
screen without any action.
h) Clash in the attributes of an entity in the file with that in the database. The
system throws an error indicating the entity and its attributes that went wrong.
EA is shown the same screen as above.
i) The EA chooses to Exit. The system takes it back to the start screen.

Acquire Data

Creating Voters
Database

Provide a unique voter


id and password
P a g e | 21

 Use case 2 : Modify the voters databases

Main success scenario:

1) The system presents the EA with the search screen. The EA selects the attributes he
wants to search for and specifies their value.
2) The system presents the EA with the results. The EA chooses the voter(s) to modify.
3) The EA either modifies the details or deletes the voter(s).
4) The system asks the EA to confirm the changes. The EA confirms.
5) The system presents the EA with the search screen of step 1.

Extensions:
4a. The EA cancels without confirming. The system does nothing and takes the EA
back to the search screen of step 1.

Modifies or delete
the details

EA(Election
Authority)

Confirms the changes

 Use case 3 : Delete the Voters’ database

Main success scenario:


1). The system asks the EA to confirm his wish to delete the voters’ database for ever.
2). The EA confirms it.
3). The database is deleted.
Extensions
P a g e | 22

2a. The EA cancels without confirming the deletion. The system does not perform
any action.
Confirms system wish
to delete the database

EA

Database is deleted.

 Use case 4 : Creating the Election Instance.

Main success scenario:


1). The EA is presented with a screen (called the start screen henceforth) where he can
create, modify or delete an election instance.
2). The EA chooses to create an election.
3). The system asks the EA whether a candidate can stand for more than one posts.
4). The system asks the EA the number of posts. For each of the posts, steps 6-8 are
repeated.
5). For a post, the system asks the EA the designation and other required attributes of
the candidates competing for that post.
6). For the post, the system asks the EA for the class of voters that are allowed to vote
for the post.
7). For the post, the EA specifies the eligible nominated candidates. The system asks the
EA to fill in the required attributes.
8). The system asks the EA for the start and finish time of the Election. The EA provides
the necessary details.
9). The system asks the EA to confirm his election instance.
10). The system creates an election instance.
Extensions
1a. The EA enters wrong user-id or password. He is asked to re-enter the password.
3a. The EA chooses to modify an election instance. Refer to use-case 5.
3b. The EA chooses to delete an election instance. Refer to use-case 8.
3c. The election instance already exists. The system notifies the EA about this.
5a. The EA enters the number of posts as zero. The system asks him to re-enter the
number of posts.
P a g e | 23

6a. The designation of two posts is the same. The System asks the EA to delete/modify
one of them.
7a. The EA does not specify any of the classes of voters who can vote for a post. The
EA is directed to specify at least one class.
8a. The key attributes of the candidate are repeated. The system does not allow a
candidate to contest for the same post twice.
8b. A candidate is nominated for more than one post. The system acts according to
the response to 4. If required, the system notifies the EA and asks it to modify/delete
one of them.
9a. The values given by EA are improper. The system asks the EA to re-enter the
values.
10a. The EA quits without confirming. The system does not perform any action.

 Use case 5 : Modify the Posts

Main success scenario:


1). The system presents the user with the update options, namely Posts,Candidates,Voters
and time of election.
2). The EA chooses to update ’posts’.
3). The system presents the EA with the list of all posts and an option to add a post.
4). The EA chooses the post it wants to modify.
5). The EA either modifies the details or deletes the post.
6). The system presents the EA with the screen of step 4.
Extensions
2a. The EA chooses to update the candidates. refer to use case 6.
2b. The EA chooses to update the time of elections. Refer to use case 7.
4a. The EA chooses to add another post. Refer to Use case 4, step 6 onwards.

 Use case 6 : Modify the Candidates

Main success scenario:


1). The system presents the user with the update options, namely Posts,Candidates,Voters
and time of election.
2). The EA chooses to update ’candidates’.
3). The system presents the EA with the list of all posts.
4). The EA chooses the post it wants to modify the candidates of.
5). The system presents the EA with the list of all candidates in that post and an option
to add a candidate.
P a g e | 24

6). The EA chooses the candidate to modify.


7). The EA either modifies the details or deletes the candidate.
8). The system presents the EA with the screen of step 4.

Extensions
2a. The EA chooses to update the posts. refer to use case 5.
2b. The EA chooses to update the time of elections. Refer to use case 7.
5a. The EA chooses to add another candidate. Refer to Use case 4, step 7 onwards.

 Use case 7 : Modify the Election Time

Main success scenario:


1). The system presents the current election time and asks the EA to reset and confirm.
2). The system presents the EA with the screen of step 4.
Extensions
1a. The EA exits without confirming. The system does not do anything.

 Use case 8 : Deletion of the election instance

Main success scenario:


1). The EA chooses to delete the election instance.
2). The system asks the EA to confirm the request.
3). The EA confirms the request.
4). the system deletes all the information about the election instance and is now ready
for configuration of a new election instance.
Extensions:
1a. The election instance does not exist. The system notifies the EA about this.
3a. EA does not confirm the request. The system takes the EA back to the start
screen.

 Use case 9 : The Voting on the Voter’s end

Main success scenario:


1). The voter is asked to login using the user-id and password provided to him earlier.
P a g e | 25

Steps 2 and 3 are repeated for all the posts that this voter is available to vote for.
2). The system presents the voter with successive screens for voting for each of the posts.
3). The voter selects one of the candidates and submits his choice to the system.
4). The system presents the voter with the final choices of the candidates for each post
made by the voter for confirmation.
5). The voter confirms the choices.
6). The system registers the choices made by the voter.
7). The voter logs out.
Extensions:
1a. The voter enters wrong user-id or password. He is asked to re-enter the password.
1b. The voter has already voted once. The system does not allow him to log in again.
3a. The voter does not select any candidate for a post and attempts to submit. The
system asks him to select one of the candidates.
3b. The voter wishes to reconsider his choices. The system allows to re-vote for the
posts he is not content with.
System crashes or power failure at any point:
a. The voter has not confirmed. He has to re-login and vote again.
b. The voter has not confirmed his vote. He need not login again to vote.

1. General Public: The citizens of the country who are eligible for casting vote.

 Register for voter id – The general public will register themselves for voting
through the online system. They will provide their details which will be submitted
to the administrator and will be maintained as database in the system.
 Register for Online Voting System – Those who already have voter id, they
will register themselves for online voting system and they will use their voter id as
their user name and separate password will be used for secure authentication.
 Cast vote – The citizens will cast their votes for their favorite candidates online
through a secure system.
 View own details – The voters will view their own details which they filled up at
the time of their registration

2. Administrator: Responsible for maintaining all the databases, generating results of polling
and registering candidates for elections.

 Register candidates – Administrator will register the candidates who will


nominate for the constituency area.
 Add manual polling result – The results of voting will be calculated by the
administrator manually and will be added to the website. The name of the winner
P a g e | 26

from each constituency and the city wise, state wise and constituency wise
percentage voting will be made available on the website.
 View all reports – The reports of election such as percentage voting done, no.
of votes that different candidates got, the statistics of all the elections done and
reports containing details of voters, candidates based on many criterions.
 Validation of voters – Administrator will validate the online registration of
the voters. The voters will be qualified or disqualified for polling according to the
validation by the field officer.

3. Candidate: Register for nomination, add details to profile, modify profile and campaign
for elections.

 Register for nomination – The candidate will register for nomination through
the website.
 Add details to profile – Candidates will enter their details in their profiles such
as manifesto, experience
 Modify profile – Candidates will be able to modify selected portions of their
profile after registration for nomination.
 Campaign for elections – The candidates will campaign for the elections
through the website.
 View own details – The details filled by the candidates at the time of registration
will be viewed by them for future references.

4. Field Officer: Validate the registration of voters and view all reports.

 Generate reports for registration validation – The field officer will verify
the documents which the voter will bring to him for validation and will generate a
report after verifying them which will be sent to the administrator who will finally
validate the voter for registration.

 View all reports – The reports of election such as percentage voting done, no. of
votes that different candidates got, the statistics of all the elections done and reports
containing details of voters, candidates based on many criterions.
P a g e | 27

4.2 Hardware Interface:


Client side
Processor Ram Free Disk
Space
Web Browser (any) Pentium IV processor 1 GB 160 GB
Server side
Web Sphere Application Intel core 2 duo at 1 GHz 2 GB 250 GB
Server (Community
Edition)
DB2 Express-c V9.7 Intel core 2 duo at 1 GHz 1 GB 250 GB

4.3 Software Requirements

Operating System : Windows XP/2003/7 or Linux


User Interface : HTML, CSS
Client-side Scripting : JavaScript
Programming Language: C#
Web Applications : ASP.NET
IDE/Workbench : Visual Studio 2008/2010
Database : Microsoft SQL Server 2005/2008

4.4 COMMUNICATION INTERFACES


• It uses HTTP/HTTPS protocol on client side.
• Firewall security is required for securing the server.
• TCP/IP protocol is the basic need for client side.
 For the purpose of giving the EA an option of sending the voters their passwords
 through mail, the system should use the SMTP protocol.
– The system should also use standard protocols for secure transactions between the
 Voter and the system through the internet.
P a g e | 28

5 Other Non-Functional Requirements

5.1 Performance Requirements


The software is expected to have reasonably short response time. It should be able to
log-in and feed the voter with new pages on request with a response time of the order
of a few seconds. The system is expected to serve a maximum of up to 100 voters at
any point of time, each voter being active for about a couple of minutes and requiring
about 10 pages (depending on the number of posts to be voted for) in all. This would
imply that the system should have the capability for processing about 20 transactions
each second.

5.2 Safety Requirements


 In order to prevent data loss in case of system failure, the result of votes that
 were polled till then have to be saved in the database, for the system to resume
 the counting process on reboot.
 The EA should set up his system time appropriately for the election process to
 start at the correct time.
 In case the EA detects any security lapse in the system, he should able to shut
 down the server and close all connections immediately while preserving the
already
 polled votes.
 The system should be capable of gracefully recovering from earlier crashes and
 continuing the voting process.

5.3 Security Requirements


 The system should provide basic security features like password authentication
 and encrypted transactions.
 All the passwords generated and communicated to the users should be stored in
 the server only in an encrypted form for login management to prevent misuse.
 Serial attacks should be avoided by maintaining a minimum time gap between
 successive invalid log-in attempts.
* Additional security features like voter anonymity and threshold schemes for multiple
EAs might provide later on as an add-on feature to the software.
P a g e | 29

5.4 Software Quality Attributes


5.4.1 Security

The channels that will be opted for communication between the server-end and user-end
of the software shall be encryption supported secure channels.

5.4.2 Reliability

Our product must perform consistently in terms of handling multiple users and recording
their options as well as allowing them to change without any errors correctly at a later
stage.

5.4.3 Maintainability

We will be using the Java language which is a pure OOP language to code our product.
To improve the readability of the code, we are imposing a coding style within our own
group of using indentation to show structure and having appropriate comments.

5.4.4 Portability

Since Java code produces platform independent Java byte code on compilation, our
Software will be portable to any environment as along as it has a JRE installed.

5.4.5 Usability

The application will be easy to utilize. Since the interaction is only through the GUI's,
which are to the maximum extent self-explanatory, there will be no problem regarding
understandability of the software for the client as well as the users.
P a g e | 30

5.4.6 Scalability

The software does not make any assumptions on the size of the voter base and the
number of simultaneous operative voters. But this is constrained by the resources made
available to the server component. Thus any constraints in the resources available like
amount of Physical Memory and Network Bandwidth will impact the performance and
too the scalability of the system.
Code.

CHAPTER 3

SYSTEM ANALYSIS AND SYSTEM DESIGN

Requirement analysis defines “WHAT” the system should do; design tells ‘HOW’ to do it.
This is the simplest way to defines system design. Any design has to be constantly
evaluated to ensure that it meet its requirements, is practical and workable in the given
environment. If there are number of alternatives, then all alternatives must be evaluated
and the best possible solution must be implemented.

SYSTEM ANALYSIS:
System Analysis is a term used to describe the process of calculating and analyzing facts in
respect of existing operation of the prevailing situations that an effective computerized system
may be designed and implemented if provided feasible. This is required in order to
understand the problem that has to be solved. The problem may be of any kind like
computerizing an existing system or developing an entirely new system or it can be a
combination of two.

SPECIFICATION OF PROJECT: The proposed system should have following features:

SYSTEM DESIGN:
System Design is the technique of creating a system that takes into notice such factors
such as needs, performance levels, database design, hardware specifications, and data
management. It is the most important part in the development part in the development of the
system, as in the design phase the developer brings into existence the proposed system
the analyst through of in the analysis phase.
P a g e | 31

DESIGN CONCEPT:
Software design sites at the technical kernel of software engineering and is applied
regardless of the software process model that is used. After software requirements have been
analyzed and specified. Software design is the first of three technical activities- designs,
code generation and test-that are required to build and verify the software. Each activity
transforms information in a manner that utility results in validated computer software. The
design transforms the information domain model created during analysis into the data
structure that will be required to implement the software.
The data objects and relationship diagram and the detailed data content depicted in the
data dictionary provide the basis for the design activity. As aforesaid “Design” is that phase of
software engineering that tells all about the completion of a project or complete failure.
P a g e | 32

DATA FLOW DIAGRAM

DEVELOPING DATA FLOW DIAGRAM:


TOP DOWN APPROACH:
Top-Down Approach: The system designer makes "a context level DFD" or Level 0,
which shows the "interaction" (data flows) between "the system" (represented by one
process) and "ted the system environment" (represented by terminators). The system is
"decomposed in lower-level DFD (Level 1)" into a set of "processes, data stores, and the data
flows between these processes and data stores". Each process is then decomposed into an
"even-lower-level diagram containing its sub processes". This approach "then continues on
the subsequent sub processes", until a necessary and sufficient level of detail is reached which
is called the primitive process .

DATA FLOW DIAGRAM LEVELS

Context Level DFD of Online National Polling

VOTERS ADMINISTRATOR

Details Query
Information
Information

ONLINE POLLING
SYSTEM
P a g e | 33

1 LEVEL DFD OF ONLINE INVENTORY CONTROL

POLL MANAGEMENT

DATABASE

GET
VOTERS ENTER REGISTERED
DETAILS

Candidate LOGIN FOR POLL

DATABASE CANDIDATE
AND PARTY
GET INFORMATIO
RESULT N

GIVE VOTE
P a g e | 34

Use case model survey:

add details to profile


register for online voting system
modify profile

register for voter id


register for nomination

GENERAL PUBLIC CANDIDATE


cast vote
view own details campaign through
chat rooms

validate reg. of voters


view all reports

register candidate

add manual polling result generate report for


registration validation

ADMINISTRATOR FIELD OFFICER


P a g e | 35

CHAPTER 4
INTERFACE OF USER

SNAPSHOT

1. Login Page
P a g e | 36

2. Registration Page
P a g e | 37

3. Thanking Page

4.Home page:
P a g e | 38

5. History

History Contd.
P a g e | 39

History Contd.

6. About US
P a g e | 40

7. Right To Vote

8. Right To Know
P a g e | 41

9. Feedback

10.Election Page
P a g e | 42

11. Loksabha Elections


P a g e | 43

12. Rajya sabha Elections


P a g e | 44

13. Loksabha Results


P a g e | 45

14. Rajya sabha Results


P a g e | 46
P a g e | 47

DATABASE PAGE
P a g e | 48

CODING

1.Login Page

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

using System.Data.SqlClient;

public partial class Login : System.Web.UI.Page


{
SqlConnection con;

SqlCommand cmd;

protected void Page_Load(object sender, EventArgs e)


{
con = new SqlConnection("Data Source=.;Initial Catalog=polling;User
ID=sa;Password=1;");
}

protected void LoginButton_Click(object sender, EventArgs e)


{
int temp=0;
con.Open();

cmd = new SqlCommand();


cmd.CommandText = "Select * from registration";
cmd.Connection = con;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
if (dr["Userid"].Equals(UsernameTextBox.Text) &&
dr["password"].Equals(PasswordTextBox.Text))
{
temp = 1;
break;
}
}
P a g e | 49

if (temp != 1)
{
ErrorLabel.Visible = true;
ErrorLabel.Text = "please enter correct ID and password";
return;
}
else
{
Response.Redirect("Home.aspx");
}

}
}

2.Registration Page

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

using System.Data.SqlClient;

public partial class Registration : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void SubmitButton_Click(object sender, EventArgs e)
{
SqlConnection con;
SqlCommand cmd;
SqlDataAdapter da;
DataSet ds;

con = new SqlConnection("Data Source=.;Initial Catalog=polling;User


ID=sa;Password=1;");
cmd = new SqlCommand("insert into
registration(firstname,lastname,ftrname,state,city,address,phnno,Userid,passw
ord)
values('"+FrstnmTextBox.Text+"','"+LstTextBox.Text+"','"+FthrTextBox.Text+"',
'"+StateTextBox.Text+"','"+CityTextBox.Text+"','"+AddTextBox.Text+"','"+PhnTe
xtBox.Text+"','"+UIDTextBox.Text+"','"+PassTextBox.Text+"')");
P a g e | 50

da = new SqlDataAdapter(cmd.CommandText, con);


ds = new DataSet();

da.Fill(ds, "registration");
Response.Redirect("thanking.aspx");
}
protected void GenIDButton_Click(object sender, EventArgs e)
{
Int32 num;
Random ran = new Random();
num = ran.Next(00000001, 99999999);
string s = GenIDDropDownList.SelectedValue.ToString() +
num.ToString();
UIDTextBox.Text = s;

}
}

3.Home Page

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Home : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}

4. History Page

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
P a g e | 51

using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class History : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}

5. About Us

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class AboutUs : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}

6.Contact Us

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
P a g e | 52

using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class ContactUs : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}

7. Right to Vote

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class RightToVote : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}

8.Right To Know

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
P a g e | 53

using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class RightToKnow : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}

9. Feedback

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Feedback : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}

10. Election
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Election : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{
P a g e | 54

}
}

11. Loksabha Elections

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Election : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}

12. Rajyasabha Elections


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Election : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}
P a g e | 55

13. Loksabha results

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Election : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}

14. Rajyasabha Results

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Election : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

}
}
P a g e | 56

15. Class file

public static string GetConStr()


{
string str =
WebConfigurationManager.ConnectionStrings["MyCon1"].ConnectionString;

return str;
}
public static DataSet GetDataset(string qr)
{
SqlDataAdapter dap = new SqlDataAdapter(qr, GetConStr());
DataSet ds = new DataSet();
dap.Fill(ds);
return ds;
}
public static string Fatch(string qr)
{
string p = "";
DataSet ds = Class1.GetDataset(qr);
foreach (DataRow rw in ds.Tables[0].Rows)
{
p = rw[0].ToString();
}
return p;

}
public static void Insert(string qr)
{

SqlConnection con = new SqlConnection();


con.ConnectionString = "Server=HARE-
PC;uid=sa;pwd=sql;Database=Polling";
con.Open();
SqlCommand com = new SqlCommand(qr, con);
com.ExecuteNonQuery();
con.Close();
}

16. Bussiness Logic

public class B_L


{
public static string GetConStr()
{
string str =
WebConfigurationManager.ConnectionStrings["mycon"].ConnectionString;

return str;
}
public static DataSet GetDataset(string qr)
P a g e | 57

{
SqlDataAdapter dap = new SqlDataAdapter(qr, GetConStr());
DataSet ds = new DataSet();
dap.Fill(ds);
return ds;
}
public static string Fatch(string qr)
{
string p = "";
DataSet ds = B_L.GetDataset(qr);
foreach (DataRow rw in ds.Tables[0].Rows)
{
p = rw[0].ToString();
}
return p;

}
public static void Insert(string qr)
{

SqlConnection con = new SqlConnection();


con.ConnectionString = "Server=HARE-
PC;uid=sa;pwd=sql;Database=Polling";
con.Open();
SqlCommand com = new SqlCommand(qr, con);
com.ExecuteNonQuery();
con.Close();
}
P a g e | 58

CONCLUSION
Internet voting can solve a lot of problems that exist in our current voting system. The case
studies also showed how Internet voting can succeed, depending on what is at stake for the
election. I think it is safe to assume that voter turnout and participation would increase if
we have online voting. Increased voting convenience would reduce many barriers that
prevent several groups from having large turnouts, such as: students, handicapped people,
military stationed abroad, and busy professionals. Absentee voting helps the problem,
but Internet voting would serve these groups better and aid millions of other voters at the
same time.
We obviously cannot stop here – and we will not. Improvements in Internet
security, cryptography, voting protocols, and computer interfaces will one day bring a
successful remote online voting model to public elections. Internet voting is a good idea
and done right can help a lot of people in a lot of ways.
P a g e | 59

REFERENCES

1. IEEE SRS Format Google Search Engine


2. Project Scenario https://www.tgmc.in/project_scenario.php
3. Sample SRS http://www.tgmc.in/resource.php
4. Software Engineering Roger S. Pressman
5. Database System Concepts Abraham Silberschatz
Henry F. Korth
S. Sudarshan

You might also like