Introduction:
This document describes the project background of the “Online Voting System for NRB” project.
Problem Definition
Manual voting system has been deployed for many years in our country. However in many parts of our country people cannot attend the voting because of several reasons. To illustrate,sometimes people may not be in their own registration region and due to this fact they cannot fulfilltheir voting duties. In order to solve these problems there is a need of online voting system in addition to manual voting system. After registering to system, the voters will use their votes at any field areas by using the system if they prefer online voting.
Scope
This document supplies to the initial part of the “Online Voting System”. This document describes the functional analysis of the system. The main aim of the system is to provide a set of protocols that allow Voters to cast ballots while a group of authorities collect votes and output final results. It will be flexible for user to use. It reduces the total cost of election management that will make the software more popular to both user and provider.
User Survey
Online Voting has being used in lots of countries with the development of the E-government technologies in the past years. Generally in these countries the electronic voting is supervised by the presence of the independent electoral authorities. The specific electronic voting machines are used at polling stations for the voting operation. The main users of the Online National Election System are the Voters, Election Candidates, Election Commission Authority and Election Station Supervisors. Their properties are described thorough the document.
Overall Description
The OVS (Online voting system) is a web-based system so fundamental features related with webbased technologies such as client-server and database properties determine the software requirements of that project.
Project Perspective
The software product is a standalone system and not a part of a larger system. The system will be made up of two parts. Before the election day the system will be used for general purposes such as viewing candidates’ profiles and past years’ election results. The voters will reach the system through web pages by using web-browsers such as Mozilla, Internet Explorer and Google Chrome.
On the election day another independent system will be used for voting operations. This system will be adapted to the computers at the polling stations. The voters cast their votes using the interface that are provided at these machines. These votes are accepted by the system on the server.
The ECA(Election Commission Authority) configures the whole system according to its needs on the server where the system is running.
Figure: Block diagram showing interaction between users and the system
Here:
EC= Election Commission
ECA= Election Commission Authority
ESS= Election Station Supervisor
Product Functions
The system can function in two modes, namely, Normal Interactive Mode and Election Mode. The system will be in Election Mode, for the purpose of vote polling only on the Election Day. Normal Interactive Mode is for accepting registrations, discussions between voters and candidates, campaigns and the system is available in this mode all the time except Election Days.
Normal Interactive Mode
Voter Registration
That system will be used only by the people who have been registered to the system. Main actor of the registration operator is the voter. The registration operator is approved by the ECAs (Election Commission Authority).
Approve Applicant
By using this function, ECA approves the application sent by the voters in order to use the
OVS. The main actor is the ECA.
Update Registered Voters
ECA deletes voters from the system who cannot use their vote officially. ECA also updates voter’s information. The main actor is the ECA.
Open Candidate Account
The EC’s profile must be created by the ECA. This functionality helps to perform this action. The ECA is the main actor of this functionality.
Login/Logout
All of the system users login to system by their user ids and passwords. All of the users are the main actor of this use case.
Account Update
By using this function the EC may change his password that enters the system. The main actor of this use case is the EC (Election Candidate).
View Election Commission Information
This function allows the voters to reach information about the EC (Election Candidate) such as their CVs, promises etc. Main actor is the voter for this use case.
Ask To Candidate
By using this functionality the voters can direct questions to the ECs about their election campaigns. The main actor for this use case is voter.
CV Edit
This function provides the EC (Election Candidate) to edit his CV information on his own profile. The EC is the main actor of that functionality.
Add / Edit Promises
By using that function the EC’s may add or edit promises to their own profile. The main actor of this use case is the EC.
Read/Answer Questions
This function provides ECs to read or answer questions about their election campaigns. The main actor is the EC.
View Election Results
This functionality provides voters to see the current or past years’ election result in a proper way. The main actor is the voter.
Election Mode
Open System
This function provides ESS (Election Station Supervisor) to start the system during the Election Day or before. The ESS is the main actor of this operation.
Mark Generate Password
Bu using that function the ESS will generate a password which will be used at voting operation by the voters. Main actor of this operation is the ESS.
Online Vote
This is the main function of the system that provides online voting for the general public. The main actor is the voter and votes are collected in the DB (Database).
Enter Offline Votes
By using this function the ESSs enters the offline votes to the system. The main actor of this use case is the ESS.
E-R Diagram:
Schema Diagram:
Schema Diagram for Online Voting System For NRB
DDL(Data Definition Language):
Here is The DDL for creating tables based on E-R Diagram and Schema Diagram.
create table election(
election_name varchar(30),
election_area varchar(30),
election_duration varchar(20),
e_date date,
primary key (election_name));
create table position(
position_name varchar(30),
number_of_position int,
election_area varchar(20),
primary key (position_name));
create table has (
election_name varchar(30),
position_name varchar(30),
foreign key (election_name) references election(election_name),
foreign key (position_name) references election(position_name));
create table candidate(
candidate_id varchar(50),
candidate_name varchar(50),
political_party varchar(30),
symbol varchar(20),
vote_earned int,
primary key (candidate_id));
create table vote(
political_party varchar(30),
no_vote varchar(20),
primary key (political_party ));
create table of (
position_name varchar(30),
candidate_id varchar(50),
political_party varchar(30),
total_vote int,
foreign key (position_name) references position(position_name),
foreign key (candidate_id) references candidate (candidate_id),
foreign key (political_party) references vote (political_party));
create table voter(
voter_id varchar(100),
name varchar(50),
current_address varchar(200),
permanent_address varchar(200),
sex varchar(20),
primary key (voter_id));
create table has (
political_party varchar(30),
voter_id varchar(100),
foreign key (political_party) references vote(political_party),
foreign key (voter_id) references voter(voter_id));
Example View:
Here is an example view for this project:
create view party as
(political_party(vote),
select * from position,
select * from candidate, );
select * from party ;
DML:
Here is the data manipulation language for Online Voting System for NRB This is for ECA (Election commission Authority). Here they can see that a candidate of a position (for example a chairman) get how votes.
select total_vote
frome of
where position.position_name = ‘chairman’
candidate.candidate_id = ‘201’;
Trigger:
Here we will use trigger for the ranking of any candidate. That’s who win and which political party now which position etc.
Database:
Here we use oracle database, because it is very good for large database. Here given the features of oracle:
Scalability and Performance
- Concurrency
- Read Consistency
- Locking Mechanisms
- Quiesce Database
- RAC
- Portability
Manageability
Self managing database
- OEM
- SQL*Plus
- ASM
- Scheduler
- Resource Manager
Backup and Recovery
High availability
Business Intelligence
- Data Warehousing
- ETL
- Materialized views
- Bitmap indexes
- Table compression
- Parallel Execution
- Analytic SQL
- OLAP
- Data mining
- Partitioning
Content Management
- XML
- LOB
- Oracle Text
- Oracle Ultra Search
- Oracle interMedia
- Oracle Spatial
Security
Data integrity/Triggers
- Integrity constraints
- Triggers
Information Integration Features
- Distributes SQL
- Oracle Streams
User Benefit:
Our users will be benefited from this project. Here is some list benefit:
- Security
- Easy to use
- Can give vote from any place
- No corruption in election
- Strong databases
- Saving time
The main features that NRB’s can give vote
Conclusion:
This document is prepared for Online Voting system for NRB. This is the concept of databases design. The functional and other requirements of the system will be described in future for software development.