Project On Online Voting System For NRB


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.


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


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.


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


select * from position,

select * from candidate, );

select * from party ;


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’;


Here we will use trigger for the ranking of any candidate. That’s who win and which political party now which position etc.


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


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


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


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.