Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

SOFTWARE REQUIREMENT SPECIFICATION

OF
iVOTE CHAIN
(Blockchain Based Voting System)
Submitted by
Raj Aryan Gupta (Reg. No.20040440029)
Arshia Negar (Reg. No.20040440010)
Sunita Kumari (Reg. No.20040440037)
Alka Kumari (Reg. No.20040445002)
Sourav Gorai (Reg. No.20040440036)

Under the guidance of


Mrs. Sunidhi Priyadarshini
(Asst. Prof., Department of Computer Science & Engineering)

Polytechnic Compound Road, Dumka, Jharkhand 814101

SRS Report
submitted to
Dumka Engineering College
in
partial fulfillment
the award of the degree of

BACHELOR OF TECHNOLOGY

In the department of

Computer Science & Engineering September 2023

Jharkhand University of Technology, Ranchi


CERTIFICATE OF THE SUPERVISOR

Certified that this project report titled “iVote Chain” (A Blockchain Based Voting
System) is the bonafide work of “Raj Aryan Gupta (Reg. No.20040440029),
Arshia Negar (Reg. No.20040440010), Sunita Kumari (Reg. No.20040440037),
Alka Kumari (Reg. No.20040445002), Sourav Gorai (Reg. No.20040440036)”
who carried out the project work under my supervision. Certified further, that to the
best of my knowledge the work reported herein does not form any other project
report or dissertation on the basis of which a degree or award was conferred on an
earlier occasion on this or any other candidate.

Signature
Mrs. SUNIDHI PRIYADARSHINI
Mentor
DECLARATION

I declare that this written submission represents my ideas in my own words and where
other's ideas or words have been included, I have adequately cited and referenced the
original sources. I also declare that I have adhered to all academic honesty and integrity
principles and have not misrepresented, fabricated, or falsified any idea/data/fact/source
in my submission. I understand that any violation of the above will cause disciplinary
action by the Institute and can also evoke penal action from the sources which have thus
not been properly cited or from whom proper permission has not been taken when
needed.

………………………………………
Signature of the Student
TABLE OF CONTENTS

1. Introduction
1.1 Purpose…………………………………………………………………………....2
1.2 Product Scope…………………………………………………………………… 2
1.3 Overview………………………………………………………………………… 3

2. Overall Description
2.1 Product Perspective………………………………………………………........... 4
2.2 Product Functions……………………………………………………………….. 5
2.3 User Classes and Characteristics……………………………..………………... 8
2.4 Operating Environment…………………...……………………………………. 8
2.5 Design and Implementation Constraints……………………….……………... 8
2.6 User Documentation……………………………………………………………. 9
2.7 Assumptions and Dependencies……………………………………………….. 9

3. Specific Requirements
3.1 Functional Requirements……………………………………………………... 10
3.2 Non-Functional Requirements……………………………………………….. 11

4. External Internal Requirement


4.1 User Interface……………………………………………………………………13
4.2 Software Interface………………………………………………………………13
4.3 Hardware Interface……………………………………………………………...13

5. Data Flow Diagram


5.1 0-level DFD………………………………………………………………..14
5.2 1-level DFD……………………………………………………………......15
5.3 2-level DFD……………………………………………………………......16

6. References…………………………………………………………………….18

1
Introduction

1.1 Purpose

The purpose of a block chain-based voting system is to use the unique properties of
blockchain technology to improve the security, transparency, and accessibility of the
voting process. Specifically, the system aims to provide a secure and tamper-proof
method for storing and counting votes, using the immutability of the blockchain to
ensure that votes cannot be altered or manipulated. It increases transparency by
allowing real-time tracking of voting results and providing a permanent, auditable
record of all votes. It increases voter participation by enabling remote voting and
reducing barriers to entry, such as the need for in-person voting or the requirement for
physical voter identification. It improves the integrity of the voting process by using
digital signatures to authenticate voter identities and prevent voter fraud. To eliminate
intermediaries and centralized systems that can be subject to manipulation. Overall, the
purpose of a blockchain-based voting system is to create a more secure, transparent and
accessible voting system that can increase public trust in the democratic process by
increasing the vote participation.[1]

1.2 Product Scope

The scope of a blockchain-based voting system can include a variety of different


features and functionalities, depending on the specific implementation. Some of the key
areas that may be included in the scope of a block chain-based voting system are:

Voter identity verification: The system may use digital signatures and other forms of
Authentication like unique identification documents and unique id to verify voter
identities, ensuring that only eligible voters are able to participate in the voting process.

Smart contract management: The system may use smart contracts to create and
manage voting events, automating the process of vote counting and tallying results.

Remote voting: The system may allow for remote voting, enabling voters to cast their
ballots from any location with an internet connection, which can increase voter
participation.

Real-time tracking: The system may provide real-time tracking of voting results,
allowing for transparency and the ability to detect and correct errors or fraud in real-
time.

Data immutability: The system may use block chain technology to store the voting
data and results, ensuring that the data cannot be altered or manipulated.

2
1.3 Overview

The remaining part of the specification document is organized as follows:

• Section 2 Defines overall description of the system which defines product


perspectives and functions, classes and characteristics of involved users, the
environment that the system is going to be deployed, constraints on design and
implementation of the system, user documentation, assumptions and
dependencies.

• Section 3 Focuses on Secure and Transparent voting, the Voting System will be
based on Aadhaar verification system. Once the Aadhaar authentication is done,
the next problem arises is the issue of the data manipulation security and
transparency of each vote. As soon as the voters cast their votes, block chain come
into existence which is integrated inside the EVM. By adopting block chain in the
distribution of databases can reduce the cheating source of database manipulation.
Block chain technology is one solution that can be used to reduce the problems
that occurs in voting.

• Section 4 contains all the specific requirements such as functional and non-
functional requirements.

3
Overall Description

2.1 Product Perspective

In present days process of voting system in India is very messy, time consuming and
very expensive, there are many loop holes and drawbacks in this voting system like
printing of ballot papers, organizing a physical election and ensuring all securities
concerns, requires a huge amount of unwanted budget.

Sometimes many illegal activities occur during the election like multiple vote casting,
booth capturing some time voters are being forced by some specific parties to vote them
in the election or they give bribees to the voters to vote them.[2]

During elections many disputes occurs among the political parties and sometimes
among voters. The Election commission has to set a huge budget only for the security
concerns, they have to deploy armed forces each and every where during the election
and the major issue which arises is the transportation of the ballot boxes and EVM
machines after the election, many incidents has occurred in past like terrorist attacks or
other destruction. To ensure the safe transportation of the ballot boxes and EVM
machines an army or armed forces are required and many other resources.

In the present voting system, the task of counting votes and publishing results is very
difficult and time consuming and some time it fails to give 100% accuracy.
Our proposed system of online voting system with blockchain technology can easily
solve all the issues which arises in present voting system. The cost or budget to conduct
an election can be reduced to minimum as it will eliminate the misuse of many resources
which were required in present voting system to conduct any physical elections.

The major issue of vote tempering and multiple vote casting can also be resolved
through this system as this system will be based on blockchain technology the chance
of cheating and vote tempering will be eliminated. The votes will be more secure along
with the user information, it will allow voters to cast vote only once and it will be
immutable.

Counting and publishing result will become easier as the votes will be counted in the
real time it will save many resources and cost. The results can be easily published on
the portal just in a single click with 100% accuracy, every voter will also get the
notification of the result on their devices through SMS or email. [3]

The major security concern in transporting the ballot boxes and EVM machines which
is a very risky task after every election will be completely eliminated.

Over all this system will completely change the election process and cultures and will
save many resources and costs, which can be used in different sectors for their
betterment and improvement.

4
2.2 Product Function

• Voters

2.2.1 Select Preferred Language

Description: This function indicates that the users of different region who cannot
operate in the official language can select their preferred language to operate the
system.

2.2.2 Register as a voter:

Description: This function of the system will allow the new user to register
themselves as a voter and will require identification as well as biometrics
registration.

2.2.3 Login:

Description: This function of the system will allow the registered user to login
to their dashboard where they can see their personal details and perform their
general activities which are required which are required at the time of voting.

2.2.4 Get tutorial on how to use:

Description: Using this function all users who are new to the system can access
instructions and tutorials on how to use this system and perform their specific
activities.

2.2.5 Select Political Parties:

Description: With the help of this function voters will be able to select the
political parties of their own choice whom they want to cast their vote.

2.2.6 Verify identity before voting:

Description: Using this functionality the voters will have to verify their identity
which was registered at the time of registration along with their biometric
verification, an unique code which has been sent to the user.

2.2.7 Cast Vote:

Description: This function will allow the voters to cast their vote to the party of
their choice and record their vote on the database.

5
• Political Parties

2.2.8 Register their parties:

Description: This function will allow the political parties to register their parties
on the system, so that they can be eligible to participate in the election.

2.2.9 Apply for nomination:

Description: This function will give access to the registered parties to file their
nomination for the election process and get confirmation to participate in election.

2.2.10 Edit their details:

Description: This functionality will allow the parties to edit their entries or details
if entered wrong within a given time period with proper documents and proofs.

2.2.11 Check Status of verification:

Description: By using this function of the system, the parties can check the status
of their nomination and verification whether their entries are verified or not.

2.2.12 Parties can run campaign:

Description: This functionality will give access to the parties to run an ad


campaign on the system to promote their parties among the users.

• Election Commission

2.2.12 Verify the entries of parties

Description: This functionality will allow the Election Commission to cross


check and verify the entries made by the political parties for the nomination
process.

2.2.13 Schedule date and time of election

Description: Using this function of the system the Election Commission can
schedule date and time to conduct any election with proper guidelines.

2.2.14 Identifying the eligible voters

Description: This functionality will allow the Election Commission to identify


the registered user as a voter by cross checking their details and giving them
access of the voting panel with an unique identification code.

6
2.2.15 Open the voting portal

Description: Using this functionality of the system the Election Commission


can open and close the voting portal for safe and secure voting.

2.2.16 Managing the database

Description: This function will provide an access to the Election Commission


to manage the data of voters and parties, they can add or remove any one from
the voter list if required.

2.2.17 Publishing the result

Description: Using this function the Election Commission can publish the result
with a single click of the election on the portal.

2.2.18 Cancel Election

Description: Using this functionality the Election Commission can cancel any
election at any point of time if required.

2.2.19 Reschedule Election

Description: This function of the system allows the Election Commission to


reschedule any election if required.

2.2.20 Send Notifications to Users

Description: This function allows the election commission to notify the users
regarding any updates, notification, date and time of the election, result,
instruction and guidelines to be followed by the users.

7
2.4 User Classes and Characteristics

• Voters: Voters are the general users of the system or the portal, they should get
proper knowledge to use the voting online voting portal, they can easily get a
video tutorial on the portal, on the topic how to use the portal and how they can
register themselves how to cast their vote on the day of voting. They will also
have an option if they can’t register or cast their vote by their own this complete
process can be arranged in computer centers. Voters have to register themselves
on the system for the secure voting they have to register their fingerprint and face
identification as well. On the day of voting, they will get the access of the voting
panel with unique id and password. After casting their vote, they will get the
confirmation through SMS and receipt.

• Political Parties: Political parties also need some specialized training to operate
the portal or system as they have some specific role on the portal, they just need
to register their parties on the portal with the proper documents before the
election. They can just check the status of their entries and other information
regarding their parties with all statics, their winning and loose, number of their
MLA’s and their winning regions and can also run ad campaign for their party.

• Election Commission: The Election Commission will hold all the powers to
conduct any elections with proper rules and regulation, they will be responsible
for the verification of the entries made by the political parties and to give them
the party symbol, Notifying the schedules dates of elections and examine
nomination papers. Publishes the result of the Election they will decide the date
and time to conduct the election and notify the general users regarding the election
date and time and general rules. They will give permission and a unique key to
every eligible voter to cast their vote on the online portal.

2.5 Operating Environment:

As the proposed system is an online blockchain based voting system so it needs to


be very simple and easy to use, with simple UI and UX an can operate on every
device. So, it should be a web-based application which can easily operate on nearly
all devices with minimum configuration requirements. It will not need any specific
OS or configuration to operate. The system will be available in multiple languages
with user manual and video guide for every user category. [4]

2.6 Design and Implementation Constraints:

The design of the proposed system must be simple, user friendly and easy to use. As
the proposed system will be used by every type of user including educated,
uneducated and people who only understand regional languages so it should be
available in all regional languages for the convenience of every user.
User should get an option to register themselves as a voter on the system or the portal
after registration and login, on the home page the use will get details of the ongoing

8
elections, list of political parties participating in the election and their details. Voters
will get an option to select and conform the party whom they want to vote, after
selecting the party and leader they will get an option to cast their vote or to go back
and select party again or cancel. Once they caste the vote they will get a confirmation
on the screen as well as on their registered phone number or email id and they will
also get a printed receipt.

2.7 User Documentation:

The instruction on how to register user as a voter and how to cate their votes will
be provided on the portal in all regional languages, as well as a video tutorial will
be also provided to the user on the website and all instructions on how to caste vote
along with the link of video tutorial will be given to the user via email or to their
registered phone number.

2.8 Assumptions and Dependencies:

It is assumed that all voters and political parties have been registered on the system
where the election has to be conducted at least a month before the election and all
users have at least basic knowledge and understanding of the voting system at the
time of voting. The security and integrity of the votes is dependent on the Blockchain
system where every vote and all data of the users will be stored so that the system
could be more secure and authentic way to conduct any elections.

9
Specific Requirements

3.1 Functional Requirements

1. Description: The users should be able to register or login to their dashboard.

1.1 If entered username or password is not present in database


• Input: Enter username and password
• Output: Enter a valid information or forgot password

1.2 If forgot password selected


• Input: Enter email
• Output: Set pass and enter to app

1.3 If valid password and username entered


• Input: Enter username and password
• Output: Home page of application

2. Description: Voters should be able to cast their vote by selecting their preferred
parties.
• Input: Select the option vote
• Output: Shows all the party name along with candidates

2.1 If preferred candidate or party whom to vote is selected successfully.


• Input: Tick the box, are you sure want to proceed with this option
• Output: The vote is registered

3. Description: Political parties should be able to register their parties in the


system.
• Input: Select the option to register parties
• Output: Registration under process (Verifying)

3.1 If registration done successfully without any errors


• Input: Check Status of Verification
• Output: Verification under process / Verified

4. Description: Parties should be able to run ad campaign of their parties for


promotion.
• Input: Select option to start campaign
• Output: Select campaign material.

4.1 If campaign material is selected successfully for campaign


• Input: Confirm the selected Campaign material

10
• Output: Campaign started successfully

5. Description: The Election Commission should be able to communicate with the


users to provide any information, updates or instructions.
• Input: Select option to send notification
• Output: Notification sent successfully

6. Description: Election commission should be able to analyze the voting data.


• Input: Click on the analyze voting data
• Output: Voting data fetched successfully

7. Description: Election Commission should be able to Schedule date and time of


election.
• Input: Select option plan and schedule election.
• Output: Select date and time

7.1 If date and time for election id selected successfully.


• Input: Confirm Date and time selected
• Output: Election scheduled successfully

8. Description: Election Commission should be able to publish election results.


• Input: Choose option publish results
• Output: Select election name and date to publish result

8.1 If name and date of the election is selected successfully


• Input: Click to confirm the selected Election name and date to publish
result
• Output: Result published successfully

3.1 Non-Functional Requirements

1. Input Validation: The system should validate and sanitize all user inputs to
ensure they are accurate, complete, and free from malicious or unauthorized
content. This helps prevent errors, data corruption, and security vulnerabilities.

2. Data Integrity: The system should ensure the integrity of data throughout the
voting process. It should employ mechanisms to detect and prevent data
tampering, such as checksums, hashing, or digital signatures using the
blockchain technology for integrity and security of the user’s data and votes.

3. Data Encryption: The system should encrypt sensitive data, such as voter
information and voting choices, during transmission and storage. This helps
protect the confidentiality of data and prevents unauthorized access or
interception.

11
4. Auditability and Transparency: The system should provide mechanisms for
auditing and verifying the accuracy of voting results. It should enable
transparent and verifiable tracking of votes, ensuring that the entire voting
process is accountable and can be audited if necessary.

5. Data Persistence: The system should securely store and persist voting data,
including ballots, voter records, and audit logs. This ensures data availability
and enables historical analysis, audit trails, and compliance with data retention
policies.

6. Multilingual support: The system should support multiple languages to


accommodate voters from all regions and all background without any
difficulties.

7. User interface: The system should provide an intuitive and user-friendly


interface that allows voters to easily understand and navigate the voting process.

8. Performance: The system should support a high number of transactions per


second to accommodate a large number of voters during peak times, and it
should provide real-time responses to user actions, ensuring minimal latency.

12
External Internal Requirement

4.1 User Interface


The user interface of this application will be simple and user friendly as this will
be a web-based application and it will be a voting application, it will be available
in multiple languages so that users from different region and background can easily
access and perform their tasks in the application without any difficulties.

• Voters: Voters can view the list of political parties on the system with their
party symbol and can cast their vote to their preferred parties.

• The Election Commission: Election Commission can view, edit or modify


any details of the user but they can’t modify the votes. They can schedule and
conduct elections with proper regulations.

4.2 Software Interface


The software interface of this system defines the basic working of the system with
and also defines how it integrates with different software to provide a desired
result.

• Voting Process: The voting process starts with the ballot creation and
customization. It features encrypted and anonymous voting process which
ensures data security and privacy of the voters, it also provides real time
counting of votes. This system ensures secure and genuine voting by
confirming biometric and identity of the voters.

• Blockchain Integration: The main feature of this system the integration of


voting system with the blockchain technology to ensure secure and temper
proof voting. The votes will be recorded in the blockchain network to provide
an extra layer of security and integrity.

4.3 Hardware Interface:


The hardware interface for the online voting system comprises robust servers, a
dependable network, blockchain nodes, secure storage, and hardware security
modules. User devices and biometric tools enable voter interaction, while printing
and scanning equipment may be used for paper audits. Uninterruptible power
supplies ensure system reliability.

13
Data Flow Diagram

Fig 5.1 : 0-Level DFD

14
Fig. 5.2: 1-Level DFD

15
Fig. 5.3: 2-Level DFD

16
Fig. 5.4: 2-Level DFD

17
References

[1] Desna Sebastian, Greeshma Gopi,Lini Rajan,“Aadhar Based Electronic Voting


System and Providing Authentication”,International Journal of Science and
Engineering Research(IJ0SER),no. 3,March 2015.

[2] Ahmed Ben Ayed, A Conceptual Secure Blockchain-based Electronic Voting


System”, International Journal of Network Security & It Applications (INJSA)
Vol.9,No.3,May 2017.

[3] Freya Sheer Hardwick, Apostolos Gioulis, Raja Naeem Akram, and Konstantinos
Markantonakis, “E-Voting with Blockchain: An E-Voting Protocol with
Decentralisation and Voter Privacy”, ISG-SCC, 2018.

[4] Ashok Kumar D., Ummal Sariba Begum T., “A Novel design of Electronic Voting
System Using Fingerprint”, International Journal of Innovative Technology &
Creative Engineering (ISSN:2045-8711), Vol.1, No.1. pp: 12 19, January 2011

18

You might also like