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................ CERTIFICATE............................ ........................ ........................ ........................ ...................5 .......5 DECLARATION«««««««««««««««««6 ACKNOWLEDGEMENT«««««««««««««..7 ABSTRACT«««««««««««««««««««.8 LIST OF FIGURES««««««««««««««««9
CHAPTER 1: BASIC INTRODUCTION 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 characteristics«««««««14 2.4 Operating environment«««««««««« environment««««««««««..14 ..14 2.5 Design and implementation constraints««««.15 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 Study«««««««..16 2.2 Time Feasibility Study«««««««««..16 2.3 Economic Feasibility Study«««««««.17 Study«««««««.17 2.4 Operational Feasibility Study«««««««.17 Study«««««««.17 2.5 Behavioral Feasibility Study«««««««..17 Study«««««««..17 2.6 Legal Feasibility Study«««««««««..17
3 Requirement Analysis««««««««««««««18 4 System Features««««««««««««««««18 4.1 Functional requirements««««««««« requirements«««««««««««18 ««18 5 External interface i nterface requirements«««««««««. requirements«««««««««.19 19
5.1 User interfaces«««««««««««««««19 5.2 Hardware interfaces«««««««««««««27 5.3 Software interfaces«««««««««««««.27 5.4 Communication interfaces«««««««« interfaces««««««««««..27 ««..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 CHAPTE R 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«««««««««««««««.3 2 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 Cont ext Level Diagram««««««««32 3.4.2 Level1(high level Diagram)««««««.33 Diagram)««««««.33 3.4.3 Use Case Modal«««««««««««34 CHAPTER 4: INTERFACE OF USER 1. SNAPSHOT««««««««««««««««««35 2. CODING«««««««««««««««««««.42 CHAPTER CHAPTE R 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 entitled ³ONLINE NATIONAL POLLING SYSTEM ´ has been develop under the supervision during session 2011-2012 at HPES NOIDA by Vishabh o f B-Tech, Final year (Information Technology). Goel, student of 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: th Vishabh Goel(IT- 4 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 a lso 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 peop le 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 Figure 3.3.1 Figure 3.3.2 Figure 3.3.3
Description Context Level DFD 1st Levels DFD 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 o f 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 y y
y
y y
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 e ligible citizens and candidates. It will manage all the account details of the voters such as citizen name, date of birth, their constituency area, reg ion, 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 pu rpose 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 acro ss 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: y
ASP.NET : Application architecture
y
Microsoft Sql Server : Database
y
WAS : Web server
y
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 co mers 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 app lications 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 pro ductivity 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 co mpletion and co lor-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 o rganizations 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 Stud io .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 t he "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: y
y
HTML Hyper Text Markup Language. HTTP Hyper Text Transfer Protocol.
P a g e | 13
2.
Overall Description Product
y
y
y
y
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 t he administrator on the server machine and the other visible to the end users, in this case t he 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 shou ld be able to specify the different attributes it wants for posts/candidates of a particular election instance and vot ers. 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 ro ll 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 a fter the elections are over, allow them to view the results, which are automatically posted o n 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 dec ides 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´ ena bled. 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:
y
Technical Feasibility Study
y
Economic Feasibility study
y
Legal Feasibility Study
y
Time Feasibility Study
y
Operational Feasibility Study
y
Social/ Behavioral Feasibility Study
Technical
Feasibility Study
The Project can be developed simply by using two platforms i.e. ASP.net as frontend and Microsoft SQL Server as back-end. All the functions of a Online Nat ional 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 custo mer and the developer. This
P a g e | 17 project is economically feasible in every sense t hat it takes less effort, less time, and nominal cost of tools for developing t he 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 co nsidered 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 s uccessfully implemented by those who are really in need o f 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
y
y
y
y
y
y
y
y
y
y
Requirements
Online registration for the voter id card which will be verified by the field officers (address and identity validation) and after rece iving 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 na me 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' peop le 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 po ling results to the database to calculate the final results which will immediately be flashed on the site. . Facilitate appropriate communication between a ll 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 t he things to do after winning the election, their previous works, their exper iences 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: y
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 o ption 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.
y
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 E A 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 pr imary key
P a g e | 20
d) e) f)
g) h)
i)
among them. The system then takes the EA to step 3 of the main success scenario. The class name specified already exists. The s ystem asks the EA to enter a new name, go back to step 5. Improper attribute format. Signal an error and go back to the same screen without any action. 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. Improper file format or file read error. Signal an error and go back to the same screen without any action. 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. The EA chooses to Exit. The system takes it back to the st art screen.
Acquire Data
Creating Voters Database
Provide a unique voter id and password
P a g e | 21
y
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
y
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.
y
Use case 4 : Creating the Election Instance. Main success scenario: 1). The EA is presented with a screen (called the start screen hencefort h) 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 o f the posts, steps 6-8 are repeated. 5). For a post, the system asks the EA the designation and ot her 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 t he 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 t his. 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 act ion. y
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. y
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 o f. 5). The system presents the EA with the list of all candidates in that post and an o ption 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.
y
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.
y
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 a bout this. 3a. EA does not confirm the request. The system takes the EA back t o the start screen. y
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 cho ice 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. y
y
y
y
2.
Register for voter id ± The general public will register themselves for voting through the online system. They will provide t heir details which will be submitted to the administrator and will be maintained as dat abase 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
Administrator: Responsible for maintaining all the databases, generat ing results of polling and registering candidates for elections. y
Register candidates ± Administrator will register the candidates who will nominate for the constituency area.
y
Add manual polling result ± The results of voting will be calculated by the administrator manually and will be added to t he website. The name of the w inner
P a g e | 26
y
y
from each constituency and the c ity 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 o n 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. y
Register for nomination ± The candidate will register for nomination through the website.
y
y
y
y
4.
Add details to profile ± Candidates will enter their details in their pro files 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.
Field Officer: Validate the registration of voters and view all reports. y
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 t he administrator who will finally validate the voter for registration.
y
View all reports ± The reports of election such as percentage voting done, no. of votes that different candidates got, the statistics of all the e lections done and reports containing details of voters, candidates based o n many criterions.
P a g e | 27
4.2
Hardware Interface: Client side
Web Browser (any)
Processor
Ram
Pentium IV processor
1 GB
Free Disk Space 160 GB
Intel core 2 duo at 1 GHz
2 GB
250 GB
Intel core 2 duo at 1 GHz
1 GB
250 GB
Server side Web Sphere Application Server (Community Edition) DB2 Express-c V9.7
4.3
Software Requirements
Operating System : User Interface : Client-side Scripting : Programming Language: Web Applications : IDE/Workbench : Database :
4.4
y y
y
Windows XP/2003/7 or Linux HTML, CSS JavaScript C# ASP.NET Visual Studio 2008/2010 Microsoft SQL Server 2005/2008
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 t he 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 o f posts to be voted for) in all. This would imply that the system should have t he capability for processing about 20 transactions each second.
5.2 Safety Requirements y
In order to prevent data loss in case of system failure, the result of votes that
y
were polled till then have to be saved in the database, for the system to resume
y
the counting process on reboot.
y
The EA should set up his system time appropriately for the election process to
y
start at the correct time.
y
In case the EA detects any security lapse in the system, he shou ld able to shut
y
y
down the server and close all connections immediately while preserving the already polled votes.
y
The system should be capable o f gracefully recovering from earlier crashes and
y
continuing the voting process.
5.3 Security Requirements y
The system should provide basic security features like password authentication
y
and encrypted transactions.
y
All the passwords generated and communicated to the users should be stored in
y
the server only in an encrypted form for login management to prevent misuse.
y
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. y
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 reco rding 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 we ll 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 t his is constrained by the resources made available to the server co mponent. Thus any constraints in the resources available like amount of Physical Memory and Netwo rk 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 situat ions 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 co mpletion 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
VOTERS
GET REGISTERED
ENTER DETAILS
Candidate
LOGIN FOR POLL
DATABASE GET RESULT GIVE VOTE
CANDIDATE AND PARTY INFORMATION
P a g e | 34
Use case model survey:
add details to profile
register for online v oting sy stem
modify profile
register for voter id
register for nomination
GENERAL PUBLIC
cast vote
CANDIDATE
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 using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; 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 using using using using using using using using using using using using
Page
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; 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 using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;
public partial class Home : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
4.
History Page
using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq;
P a g e | 51 using using using using using using using
System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;
public partial class History : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
5. About Us using using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;
public partial class AboutUs : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
6.Contact Us using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq;
P a g e | 52 using using using using using using using
System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;
public partial class ContactUs : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
7. Right to Vote using using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;
public partial class RightToVote : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
8.Right To Know using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; 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 using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;
public partial class Feedback : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
10. Election using using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; 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 using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;
public partial class Election : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
12. Rajyasabha Elections using using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; 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 using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;
public partial class Election : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
14. Rajyasabha Results using using using using using using using using using using using using
System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; 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=HAREPC;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=HAREPC;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 peop le, 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 co mputer 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.