SlideShare a Scribd company logo
1 
DECLARATION: 
I Stephen Nganda Muindi declare to the best of research knowledge that this semester project is 
my original work and that it has never been submitted to any university or any other institution. 
The literature and citations from other people’s work have been duly referenced and 
acknowledged in the text, footnotes and bibliography. 
Signed: …………………………………………………… 
Date…………………………………………………………… 
Stephen N. Muindi 
Student-JKUAT 
Signed: …………………………………………………… Date 
…………………………………………………………… 
Mr. Samson Ochingo 
Supervisor
2 
DEDICATION 
This project is dedicated to my Almighty God, my mother, to the department of computing in the 
faculty of Institute of Computer Science and Information Technology (ICSIT) at Jomo Kenyatta 
University of Agriculture and Technology (JKUAT) and to my fellow students who supported 
and guided me throughout this worthy course of study.
3 
ACKNOWLEDGEMENT 
I register my appreciation and acknowledgement to the Almighty God for sustaining me, giving 
me life, enabling me to finish this work through His strength, My mother (Ruth Muminah) and 
my sister (Grace Ivui Muindi) for their moral and spiritual support, JKUAT for providing me 
with such a conducive environment under which I could do my work and not forgetting my 
supervisor Mr. Samson Ochingo for the technical support that he has offered unto me throughout 
the entire process. My regards goes to all my classmates for the assistance and guidance that they 
have offered unto me.
Declaration…………………………………………………………………………………1 
Dedication………………………………………………………………………………….2 
Acknowledgement………………………………………….……………………………....3 
Introduction……………………………………………………………………………..…..6 
Background………………………………………………………………………….....…6 
Problem Statement………………………………………………………………………..6 
Justification……………………………………………………………………………….Error! 
Bookmark not defined. 
Benefits of the new systems………………………………………………………………7 
Objectives…………………………………………………………………………………7 
Project Schedule……………………………………………………………………….....8 
Literature Review……………………………………………………………………………9 
Introduction……………………………………………………………………………...10 
Case Study……………………………………………………………………………….10 
Overview of the current Voting system in J.K.U.A.T………………...…………….10 
System Analysis…………………………………………………………...………………..11 
Introduction………………………………………………………………………………11 
Problem Specification........................................................................................................12 
Proposed System................................................................................................................13 
Feasibility Study................................................................................................................14 
Operational Feasibility................................................................................................14 
Technical Feasibility...................................................................................................14 
Economic Feasibility...................................................................................................15 
Schedule Feasibility.....................................................................................................15 
Requirements Specification................................................................................................16 
Overview of System Requirements..............................................................................17 
Functional Requirements……………………………………………………………..18 
Non-Functional Requirements………………………………………………………...19 
4
Data Collection Methods.....................................................................................................21 
Questionnaires..............................................................................................................21 
Interviews.....................................................................................................................22 
Observation..................................................................................................................22 
Documentation.............................................................................................................22 
System Design........................................................................................................................23 
Data Flow diagram…………………………………………………………………..23 
Three Tier Architecture……………………………………………………………...24 
Description of the Three Tier Architecture……………………………………….…24 
System Interface and Design………………………………………………………………...26 
Functional breakdown of the system by design………………………………………26 
System Development…………………………………………………………….……….….30 
Properties of programming languages and database used………………………………..30 
PHP Programming Language……………………………………………………………..30 
MYSQL Database…………………………………………………………………………31 
XAMPP 1.7.2……………………………………………………………………………...31 
Data Structures and Algorithms used………………………………………………………..33 
Implementation and Testing…………………..………………………………………………38 
Installation Guide…………………………………………………………………...….…38 
Install the XAMPP server…………………………………………………………………38 
Setting up the System……………………………………………………………………..44 
Setting up the Database…………………………………………………………………...44 
Accessing the System……………………………………………………………………..44 
Risk associated with system…………………………………………………………………44 
APPENDIX A: SAMPLE CODE .................................................................................. 45 
APPENDIX B: REFERENCES ..................................................................................... 48 
B.1 Webliograpy……………………………………………………………………………..48 
B.1 Bibliography……………………………………………………………………………..48 
5
6 
CHAPTER ONE: INTRODUCTION 
Background 
Every academic year in J.K.U.A.T one of the most fundamental critical functions to the 
student community takes place. The election of the student’s leaders is held at September of each 
academic year in a bid to bring fresh ideas in the running of the student organization. 
The methods of campaign, election and post-election processes have been all the same since 
the inception of the student organization. These methods are in every right acceptable but fall 
short in this age of information and Technology, in that they are slow, entertain rigging to some 
degree and not so friendly to the environment. 
Bearing in mind just but the few reasons outlined above, the need for a more fast and robust 
election/voting system was idealized. Thus an online voting system. 
Problem Statement 
The major problem with the current system is that it involves a lot of manual operations which 
are prone to errors and are definitely slow. 
Limitations of the Current System 
 It is slow: the voting process has to be completed first before the results are announced 
and also queuing to vote enhances the slowness 
 It is tedious: The clerks involved in the verification, tallying and other elections duties get 
exhausted at the end of the day since everything is manual 
 The whole election process is not environment friendly since the amount of paper 
required for that single day is humongous 
 The process is expensive, this is because a lot of paper has to be bought, ballot boxes, and 
also the printing of the ballot papers 
 Rigging: Since the process of tallying the votes is manual unscrupulous clerks can tamper 
with the results through rigging votes 
 Time wastage, due to the slowness of the system a lot of time is wasted in the whole 
election process which could have been useful in undertaking other duties.
Justification 
Web-based solutions can be accessed anywhere as long as there is connectivity. Bearing in mind 
the expansive J.K.U.A.T intranet and the unlimited internet offered by the institution a web-based 
election system would come in handy to facilitate free and fair elections. 
The system would be centrally placed and only be active during the election period. The system 
will incorporate verifications of students, voting for the candidates and a real-time tally of the 
votes. 
Since it is web-based it can be accessed from anywhere, be it at campus, in the hostels and even 
at home. 
7 
Benefits of the new systems 
 The system will facilitate free and fair elections since the tallying of the votes 
cannot be tampered with. 
 The system will facilitate a faster election process since one can vote from 
anywhere and the real-time tallying makes it fast to announce the elected leaders. 
 Since the system removes the geographical limitation factor all students can vote 
for their leader regardless of their location. 
 The election process is made cheaper since printing of ballot papers is eliminated 
and fewer clerks if any required. 
 Cases of double voting are eliminated since the verification process of the system 
ensures one cannot vote more than once. 
Objectives 
 To develop an online web-based voting system that can be used during the 
election period to vote for student leaders. 
 To come up with a system documentation 
 To establish the metrics for measuring and evaluating usability 
 To establish the principles that support usability
Project Schedule: 
The project will take one semester. Below is the breakdown of activities; 
Task ID Week Task Name 
1. 1-6 Research and proposal writing 
2. 7-8 Data collection 
3. 9-14 Project Design 
4. 14-15 Documentation 
5. 16 Presentation 
8
CHAPTER TWO: LITERATURE REVIEW 
9 
Introduction 
This section intends to review the current situation in the school which will assist in bettering the 
voting system. Here we will look at the current methods and technologies used during voting as 
well as the processes involved. 
Case Study: Overview of the current Voting system in J.K.U.A.T 
Currently in JKUAT elections are done in using the old age manual ballot system. A list of the 
students vying for the Student Council has their names outlined so that the entire school can get 
acquainted with them. After a week of campaigns the elections are done. 
A list of all the students in JKUAT is availed to their respective departments. The different 
departments set up polling stations in different parts of the school to facilitate the elections 
process. 
At the polling stations, students queue for a chance to vote a list of leaders in the different 
positions. At the voting room a student is verified using their Student ID to ascertain that they are 
genuine students of the campus. Their names’ are crossed off and each is given a ballot papers 
where they check their candidates. Afterwards the votes are cast and the student leaves the room. 
After the day is over, the tallying is done and depending on when its done, the results are 
announced that day or the following morning. 
However, one major issue that has not been exhaustively addressed so far is the security of 
mobile applications. Security depends on several factors including sending and access to 
confidential information via the client phones, how the information is protected, secured and the 
level of user satisfaction in relation to reliability and dependability. The future of mobile 
application heavily depends upon how secure the service is to use. Reliable and secure 
applications play a central role in the success of mobile application. 
Elections allow the populace to choose their representatives and express their preferences for 
how they will be governed. Naturally, the integrity of the election process is fundamental to the 
integrity of democracy itself. The election system must be sufficiently robust to withstand a 
variety of fraudulent behaviors and must be sufficiently transparent and comprehensible that 
voters and candidates can accept the results of an election. Unsurprisingly, history is littered with 
examples of elections being manipulated in order to influence their outcome. 
The design of a “good” voting system, whether electronic or using traditional paper ballots or 
mechanical devices must satisfy a number of sometimes competing criteria. The anonymity of a
voter’s ballot must be preserved, both to guarantee the voter’s safety when voting against a 
malevolent candidate, and to guarantee that voters have no evidence that proves which 
candidates received their votes. The existence of such evidence would allow votes to be 
purchased by a candidate. The voting system must also be tamper-resistant to a wide range of 
attacks, including ballot stuffing by voters and incorrect tallying by insiders. 
10
CHAPTER THREE: SYSTEM ANALYSIS 
Introduction 
When carrying out System Analysis of an Online voting system, the initial step is to find out 
how the current/existing system works. This is to help in getting a better of understanding of the 
problems that are existent and whether they can be fixed with the proposed system or whether 
the existing system can be upgraded and modified. In short, system analysis is the process of 
investigating a system, identifying problems, and using the information to recommend 
improvements to the system. System analysis is supposed to define how the system will be 
implemented. 
Steps in System Analysis 
11
In this section, we will focus our attention on the principal functional and non- functional 
(performance) requirements of the Online voting System. These two types of requirements will 
describe to us the capabilities of the system based on the objectives and goals, and what physical 
software requirements are necessary for the system to work with ease. 
There are 2 main phases that are involved in System Analysis: 
 Feasibility Study – used to check whether the project can be implemented i.e. is 
12 
practical 
 Requirements Specification – used to find out the capabilities of the system i.e. 
what the system will be able to do, from as many sources as possible. Some of the 
techniques that can be used to accomplish this task are interviews, document review, 
focused group discussions and observation can be user to accomplish this task. 
Problem Specification - Current System Analysis 
After every year, a general election is held and the JKEC therefore is required to register voters 
during this period. A manual system is used to carry out this process where the records of voters 
are placed on paper. The process of voting takes a whole day in a specified polling stations, 
voters spend unproductive hours (2-3 hours on average) queuing to vote. This makes the process 
inconvenient as due to limitation of time and location, thereby reducing the voting rate and 
anonymity. This is attributed to the unavailability of alternatives, complexity and general 
uncertainty surrounding technological innovations. In the current system involves queuing at the 
polling station of voter registration. As a result, the process has the following drawbacks: 
 Time consuming: Voters spend unproductive hours (2-3 hours on average) queuing to 
vote. 
 Location limited: A voter can only vote at the polling station of registration. 
 Costly: A lot of paperwork involved in the current manual system which is costly and 
the voter travelling costs.
Proposed System - Applicable Solutions 
Development and implementation a secure system that will enable voting for the general public 
are made easier, faster and at the user’s point of work. This is in terms of accessibility of the 
service and the ease of its use. Voters will be able to vote from the point they are without need to 
travel in advance. 
There is a need to come up with a system that will not only help JKEC to improve its delivery of 
services to voters but also to cut on the Government expenditure 
The students registration process will be managed by the JKEC in collaboration with the 
Department his/her course is offered. An administrator to update and manage the system will be 
in charge of that stage of the registration process. The system will assist in ensuring that JKEC 
has data on voters for use when need arises. 
13 
Voters’ data include: 
 Admission REG number. 
 Voter Identity. 
Therefore e-voting not only serves as aid in counting the votes, by now they support all three 
main voting processes: 
1. Pre-Election Phase: Identification of the voter, checking of eligibility 
2. Election Phase: Casting the vote 
3. Post-Election Phase: Counting of the votes. 
The aim of this project is to develop a secure voting system with which users can participate 
using their mobile phone. 
The system shall be made up of the following four components: 
1. Web client application (e-vote) 
2. Server application 
3. Database back-end and web-based administration tool 
The server should be able to send a reply to the client at real time, acknowledging the receiving 
of the voter’s response. 
In case of any delays like network traffic, the client party should be notified. This Proposal 
allows a voter to cast his vote in a simple and convenient way without the limit of time and 
location, thereby increasing the voting rate, and also ensuring confidentiality and anonymity. 
Keywords - Voting, web terminal (mobile phone), confidentiality, anonymity.
Feasibility Study 
This is the measure of how beneficial or practical the development of an information system will 
be to an organization. It is aimed at establishing whether it is worthwhile developing the new 
system. This area introduces the system in terms of research into why it is more viable than the 
existing system. Three main areas of feasibility study are identified: Operational Feasibility, 
Technical Feasibility, Economical Feasibility and Schedule Feasibility. The following study was 
carried out to establish whether the system development will carry on to the next stage: 
a) Operational Feasibility 
This is the measure of how well the solution of problems will work in the organization. It seeks 
to answer the question: Is the problem worth solving? It is also a measure of how people feel 
about the system project. 
The system will save time for both voters and voting administrators. By use of their mobile 
phones, voters will cast their votes. The voting exercise of voting can be done without 
necessarily lining up in a polling station. This saves both time and cost. 
b) Technical Feasibility 
This is the measure of the practicality of a specific technical solution and the availability of 
technical resources and expertise. 
These recent advances in wireless and mobile communications have led to faster connection 
speeds (currently at 384 kbps in 3G+), larger device screen size, and multiple modes of input and 
new applications. These applications consist of software that runs on a mobile device and 
performs tasks for the user of the mobile phone. Also known as downloadable, mobile 
applications are common on most phones, including inexpensive, entry-level models. Their wide 
use is due to the many functions they perform, including providing user interfaces for basic 
telephony and messaging services as well as for advanced services such as games and videos. As 
a result, there has been some serious interest in mobile applications and some progress has been 
made in applications, framework, networking requirements, and business models. 
14
15 
c) Economic Feasibility 
This is a measure of the cost effectiveness of a project or solution. It takes into account costs and 
benefits. Thus it is often called Cost-Benefit Analysis. 
 A lot of paperwork involved in the current manual system which is costly and the voter 
travelling costs. 
 Voters spend unproductive hours (2-3 hours on average) queuing to vote. 
d) Schedule Feasibility 
Schedule feasibility is a measure of how reasonable the project timetable is. It seeks to answer 
the following question: ‘Given our technical expertise, are the project deadlines reasonable?’ 
Each phase of the system development should be done within a specific time frame to avoid 
delays in the implementation and testing of the final product.
Requirement Specification 
The process of requirements specification for a software product is very crucial since it plays a 
great role towards the acceptability and the effectiveness of the developed software. 
Requirements engineering is composed of: 
• Requirements elicitation. 
• Requirements analysis and negotiation. 
• Requirements specification. 
• System modeling. 
• Requirements validation. 
• Requirements management. 
The study of the software product’s characteristics is very important since: 
 The relative importance of these characteristics depends on the product and the 
environment in which it is to be used. In some cases, some attributes may dominate. The 
deep study of the intended product exposes the key attributes of the system since this may 
vary with regard to the system and its environment of use. 
 Costs tend to rise exponentially if very high levels of any one attribute are required. It is 
therefore important to consider the feasibility of the system which is implied by the 
ability of the stakeholders to facilitate the realization of such attributes. 
Requirements engineering and analysis is however a very difficult task especially for large 
projects. This is contributed by the fact that most users are not completely and clearly aware of 
what they want in the system and this can be coupled with the volatility of the requirements. The 
scope of the system may also be misunderstood that may lead to assumption of key components 
of the system that would later call for reengineering the system which is costly in terms of 
financial resources, labor and time. 
The challenges encountered in requirements engineering inspired Somerville and Sawyer to 
suggest a set of detailed guidelines for requirements elicitation. This includes: 
• Assessing the business and technical feasibility for the proposed system. 
16
• Identify the people who will help specify requirements and understand their organizational 
bias. 
• Define the technical environment into which the system or product will be placed. 
• Identify the constraints that limit the functionality or performance of the system or product to 
be built. 
•A list of one or more requirements elicitation methods. 
• Solicit participation from all stakeholders. 
• Identify ambiguous requirements as candidates for prototyping. 
• Create usage scenarios to help customers/users better identify key requirements. 
The purpose of the proposed application is to allow users (votes) to vote using their mobile 
phones i.e. the aim of this project is to develop a secure voting system with which users can 
Participate using their mobile phone. 
Overview of System Requirements 
Description of Information 
The information required for the system includes: 
 The voter details – All the necessary information about the voter i.e. voter name, ID 
number, registered SIMs, voter Security password and voting place identity information 
e.g. county code, constituency code, ward code and polling station code. 
 The candidate details – All the necessary information about the candidate who is also a 
voter i.e. ID number, political party, candidate photo, post vying. 
 Voting day details- voter details, candidates of choice, time casted. 
17 
Users of the Information 
 For the voting process the voter needs to identity is required i.e. ID number, voter 
Security password. 
 Voter’s choice candidates are necessary for the voting process.
User Objectives 
The following are some of the objectives that the voters would like to see from the system: 
 Convenient vote casting through the mobile phone. 
 Secure voting system. 
User Access Restrictions 
Administrator will access the details of the voters who have registered to vote via the phone. 
Functional Requirements 
This refers to the necessary tasks, action or activities that the system must accomplish, or enable 
the user to do. The Online phone voting System is a secure mobile phone voting system with 
which users can participate using their mobile phone. 
The functional requirements of the system describe the functionality or services that the system 
is expected to provide. In this case: 
 The system (mobile phone application- m-vote) will allow users to vote via their mobile 
18 
phones 
 Send a confirmation message to the voter that the voting process was successful e.g. time 
when vote was cast. 
 The system shall provide appropriate error messages and users shall be accorded 
sufficient help on how to carry on tasks e.g. In case of any delays like network traffic, the 
voter should be notified. 
 Authentication -The system should identify each authorized voters every time they use 
the system using a Student ID number. 
 The system shall impose a successful voter determination strategy in order to determine a 
successful voter in order to avoid multi voting. 
 Make vote counting convenient.
Non-Functional Requirements 
A non-functional requirement is a requirement that specifies criteria that can be used to judge the 
operation of a system, rather than specific behaviors. The plan for implementing non-functional 
requirements is detailed in the system architecture. Non-functional requirements define how a 
system is supposed to be. Outlined below are some of the expectations of the system when 
implemented: 
19 
a) Reliability 
 The Online voting system (e-vote) shall be robust enough to have a high degree of fault 
tolerance. For example, if there is an invalid entry, the system should not crash and shall 
identify the invalid input and produce a suitable error message. 
 The Online voting system shall be able to recover from hardware failures, power 
 The Online voting system shall impose a successful voter determination strategy in order 
to determine a successful voter in order to avoid multi voting. 
 The Online voting system shall be available during the voting hours of the voting day. 
 Failures and other natural catastrophes should rollback the databases to their most recent 
valid state. 
b) Security 
The system should implement strategies to counter hacking and access by unauthorized persons. The 
application needs to be secure enough and should enable users to access it depending on the level of 
the user. e.g. An administrator will be register voters, a authorized voter will only be allowed to vote. 
The election system must be sufficiently robust to withstand a variety of fraudulent behaviors 
and must be sufficiently transparent and comprehensible that voters and candidates can 
accept the results of an election. 
c) Performance 
 Response time of e-vote should be less than 5 seconds most of the time. Response time 
refers to the time that the user should wait for before getting a response from the system 
after querying it. 
 E-vote shall show no visible deterioration.
20 
d) Integrity 
 Only the system administrator has the right to register voters. The system should be 
physically and logically secure to protect the databases. The administrators need to be 
authenticated before having access to the system 
e) Scalability: 
 The system should be able to expand to meet future needs of the organization and still be 
able to serve the purpose for which it was build. 
f) Usability 
 Users should be able to understand the menu and options provided by the system. 
 The system shall provide an easy-to-use interface so that the users do not strain to interact 
with the system. 
 Any notification or error messages generated by the system shall be clear, polite and free 
of jargon. 
 The interface should be intuitive and easily navigable. 
g) Availability and accessibility 
 The system should be up and running whenever needed. 
h) Inte roperability 
The system should be able to work with other existing systems. It should ensure backward and 
forward compatibility.
CHAPTER FOUR: DATA COLLECTION METHODS 
These are the methods that were used to elicit requirements from the stakeholders of the system. 
21 
These stakeholders included: 
 Students i.e. voters 
 The candidates 
 JKEC (Jomo Kenyatta Electoral Commission) 
The following is a brief description of the tools used to collect data from the various stakeholders 
in order to establish requirements: 
Questionnaires 
A questionnaire is a method to collect data from the target users in a specific knowledge 
domain. According to Peerce et al. Questionnaire is a well known technique to collect 
demographic data and users’ opinions. The design of a questionnaire is important because it 
addresses the research questions and hypothesis on which data is to be collected. The questions 
can be closed or open ended. 
The initial part in a questionnaire is mostly concern with demographical and experiential 
information. This information could be used to find out the users’ experience with the current 
system. Some of the major areas covered by the questionnaires were: 
 Shortcomings associated with the current mode of voting. 
 Views on online voting. 
 The proposed system. 
 Characteristics of a good output with regard to the system. 
The questionnaires were administered to the students as well as the electoral commission. Fifty 
(50) respondents were polled.
22 
Interviews 
Interviews are used to gain more insight into the user requirements. They involve having face to 
face conversations with various stakeholders and getting to get more information. One advantage 
of using interviews was that a participant's unique point of view can be explored in detail and 
any point of misunderstanding was clarified. 
These were administered on all the stakeholders. They interviews were open ended and semi-structured. 
These were administered on all the stakeholders. They were mostly open-ended and 
semi-structured to allow the users provide as much information as possible without feeling 
pressured. One advantage of using interviews that a participant's unique point of view can be 
explored in detail. 
Observation 
This involved observing the various stakeholders and their various roles they perform in the 
process of voting. It was important in getting to know the problems that the clients mostly go 
through in the process of voting. The main focus was on the students because the intended 
software solution is aimed at making the process of voting more efficient and convenient for 
them. 
Documentation 
Studying documentation involved studying the companies’ documented procedures for 
transacting business. It involved studying the documents that have to be filled in, their contents 
and the approval that is required to make a vote legally binding. It also involved getting to know 
from JKEC what the necessary steps are in order for one to be eligible to vote and also eligible to 
vie for a position. 
Through the documentation, I was able to see what inputs were required for the process of voting 
and the corresponding outputs.
CHAPTER FIVE: SYSTEM DESIGN 
23 
Data Flow diagram 
Figure 1: Data Flow Diagram 
Voting Process 
Login 
Registration 
1. Chairperson 
2. Vice-Chairperson 
3. Secretary General 
4. Finance Secretary 
. . . . . . . . . . . . . . . . . . 
Vote Tallying 
RESULTS 
Has voted? 
YES 
NO 
STUDENT 
VOTER 
Not Registered 
Registered
24 
Three Tier Architecture 
Figure 2: Three Tier Architecture 
Description of the Three Tier Architecture 
Presentation Tier 
This layer presents data to the user and optionally permits data manipulation and data entry. 
Web-based applications now often contain most of the data manipulation features. This is 
accomplished through use of Dynamic HTML and client-side data sources and data cursors. 
Logic Tier 
Also referred to as the business logic tier, the middle tier. It controls an application’s 
functionality by performing detailed processing. In this system tallying and checking whether 
one has voted are processed at this level and the business functionalities are achieved at this 
point.
25 
Data Tier 
This tier consists of database servers. This is where the project details are stored and they are 
retrieved on request.
CHAPTER SIX: SYSTEM INTERFACE AND DESIGN 
Most of the design is done on HTML 5 and jQuery libraries. Reason for choosing this was 
because its easy and flexible to work with. HTML 5 being one of the latest technologies in web 
programming provides more functionality than the previous. 
Functional breakdown of the system by design 
26 
Login Page: 
For anyone who is registered in the system, they provide the login details i.e Student Id no. , password 
and choose their voter type (e.g Voter or Candidate). 
The system verifies the credentials and logs into the system. If any of the log in details is wrong, an error 
message is displayed. 
Figure 3: Registering as a Voter 
Registration: 
For any student who is not registered as a voter/candidate, they register on this page. After registration the 
persons are verified on whether they are students by the admin. 
The registration link can be accessed at the login page:
27 
Figure 4: Registering as a Voter 
The registration page is active for a whole month before the elections, so that candidates and voters can 
register and be verified. A week before elections the registration page cannot be accessed. 
One can register as a voter or as a candidate: 
Figure 5: Registering as a Voter 
Figure 6: Registering as a Voter
28 
Voting: 
On successful log in, one can now do the voting. 
The page is tabbed depending on the number of candidates to be voted for. 
On this system there are 4 candidates to be voted for: Chairman, Vice Chairman, Entertainment Secretary 
and Treasurer. 
Figure 7: Voting For Chairperson
29 
Figure 8: Voting For Vice Chairperson 
Figure 9 :Voting for Treasurer 
Figure 10: Voting for Entertainment Secretary
CHAPTER SEVEN: SYSTEM DEVELOPMENT 
In the system analysis and design OOP (objects Oriented Programming) is used. The language 
that is majorly in use on the server side is the PHP scripting language. 
Properties of programming languages and database used 
PHP Programming Language 
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose 
scripting language that is especially suited for web development and can be embedded 
30 
into HTML. 
There are three main areas where PHP scripts are used. 
 Server-side scripting. This is the most traditional and main target field for PHP. You need 
three things to make this work. The PHP parser (CGI or server module), a web server and 
a web browser. You need to run the web server, with a connected PHP installation. You 
can access the PHP program output with a web browser, viewing the PHP page through 
the server. 
 Command line scripting. You can make a PHP script to run it without any server or 
browser. You only need the PHP parser to use it this way. This type of usage is ideal for 
scripts regularly executed using cron (on *nix or Linux) or Task Scheduler (on 
Windows). 
 Writing desktop applications. PHP is probably not the very best language to create a 
desktop application with a graphical user interface, but if you know PHP very well, and 
would like to use some advanced PHP features in your client-side applications you can 
also use PHP-GTK to write such programs. 
PHP can be used on all major operating systems, including Linux, many Unix variants (including 
HP-UX, Solaris and OpenBSD), Microsoft Windows, Mac OS X, RISC OS, and probably others. 
PHP has also support for most of the web servers today. This includes Apache, IIS, and many 
others. And this includes any web server that can utilize the FastCGI PHP binary, like lighttpd 
and nginx. PHP works as either a module, or as a CGI processor.
31 
MYSQL Database 
MySQL runs on more than 20 platforms including Linux, Windows, Mac OS, Solaris, IBM AIX, 
giving you the kind of flexibility that puts you in control. 
The MySQL database has become the world's most popular open source database because of its 
high performance, high reliability and ease of use. It is also the database of choice for a new 
generation of applications built on the LAMP stack (Linux, Apache, MySQL, PHP / Perl / 
Python.) Many of the world's largest and fastest-growing organizations including Facebook, 
Google, Adobe, Alcatel Lucent and Zappos rely on MySQL to save time and money powering 
their high-volume Web sites, business-critical systems and packaged software. 
Reason for use 
Flexible 
Open source 
Panel to easily navigate in phpmyadmin 
XAMPP 1.7.2 
XAMPP is a full- featured AMPP (Apache MySQL, PHP, Perl) package that is one of the few 
non-commercials AMPP middleware stacks available on Linux. With its tight integration, 
XAMPP makes it possible to run anything from a personal home page to a full- featured 
production site (though only for development purposes; XAMPP is not meant to be used on a 
production server due to security issues). 
XAMPP really shines in the following areas: 
 It is easy to install and set up. 
 It contains a number of useful packages that make it easy to do things like generate traffic 
reports and accelerate PHP content. 
 It has been thoroughly tested on the SUSE, Red Hat, Mandrake, and Debian Linux 
distributions, as well as on Windows® and Solaris.
32 
XAMPP has various packages as stated below: 
Basic packages 
Basic packages include system, programming, and server software: 
 Apache, the famous Web server 
 MySQL, an excellent, free, open source database 
 PHP, the programming language 
 Perl, the programming language 
 ProFTPD, an FTP server 
 OpenSSL, for secure sockets layer support 
Graphics packages 
XAMPP includes the following graphics-related packages: 
 GD, the "Graphics Draw" library 
 libpng, the official PNG reference library 
 libjpeg, the official JPEG reference library 
 ncurses, the character graphics library 
Database packages 
And what would an integrated stack be without some database packages such as: 
 gdbm, the GNU implementation of the standard UNIX dbm library 
 SQLite, an extremely small, zero-configuration SQL database engine 
 FreeTDS, a database library that gives UNIX and Linux programs the ability to talk to 
Microsoft SQL and Sybase databases 
XML packages 
For XML development, XAMPP includes the following:
33 
 expat, an XML parser library 
 Salbotron, an XML toolkit 
 libxml, an XML C parser and toolkit for GNOME 
PHP packages 
For PHP development, XAMPP includes the following: 
 PEAR, the PHP library 
 A pdf class that generates dynamic PDF documents with PHP 
 TURCK MMCache, a PHP performance enhancer 
Data Structures and Algorithms used 
Php code has very few data structures in the system. Although object oriented programing was 
used to model the Candidate class: 
<?php 
include_once('php/dbconnector.php'); 
class Acandidate{ 
public $firstname=null; 
public $secondname=null; 
public $surname=null; 
public $moto=null; 
public $photo=null; 
public $password=null; 
public $memberType=null; 
public $isVoted=null; 
public $studentId=null;
34 
public $position=null; 
public function instantiate($id) 
{ 
$sql="select * from voters where id='".trim($id)."'"; 
$result=mysql_query($sql); 
if($row=mysql_fetch_object($result)) 
{ 
$this->firstname=$row->FirstName; 
$this->secondname=$row->SecondName; 
$this->surname=$row->SurName; 
$this->moto=$row->Moto; 
$this->photo=$row->Photo; 
$this->password=$row->password; 
$this->memberType=$row->memberType; 
$this->hasVoted=$row->hasVoted; 
} 
} 
public function update($id)
35 
{ 
$sql="update voters set firstname='".$this->firstname."', 
secondname='".$this->secondname."', 
surname='".$this->surname."', 
moto='".$this->moto."', 
photo='".$this->photo."' 
password='".$this->password."' where 
id='".$id."'"; 
} 
public function vInsert() 
{ 
$sql="insert into 
voters(firstname,secondname,surname,id,password,memberType) values('".trim($this- 
>firstname)."','".trim($this->secondname)."','".trim($this->surname)."','".trim($this- 
>studentId)."','".trim($this->password)."','".trim($this->memberType)."')"; 
//$state="1 Voter Added"; 
$query=mysql_query($sql); 
if(!$query) 
{ 
echo "Pole"; 
die('Error: '.mysql_error());
36 
} 
else 
//echo $state; 
//alert("You have been successfully Registered"); 
header('location:../project/index.php'); 
} 
public function cInsert() 
{$sql="insert into 
voters(firstname,secondname,surname,id,Position,moto,Photo,password,memberType) 
values('".trim($this->firstname)."','".trim($this->secondname)."','".trim($this- 
>surname)."','".trim($this->studentId)."','".trim($this->position)."','".trim($this- 
>moto)."','".trim($this->photo)."','".trim($this->password)."','".trim($this->memberType)."')"; 
//$state="1 Candidate Added"; 
$query=mysql_query($sql); 
if(!$query) 
{ 
echo "Pole "; 
die('Error: '.mysql_error()); 
} 
else 
//echo $state; 
//alert("You have been successfully Registered");
header('location:../project/index.php'); 
37 
} 
public function checkId($id) 
{ 
$sql="select * from voters where id='".$id."'"; 
$result=mysql_query($sql); 
if(mysql_num_rows($result)>0) 
{ 
echo 'Student ID already in use!'; 
} 
Else 
echo'Student ID available!'; 
} 
} 
?>
CHAPTER EIGHT: IMPLEMENTATION AND TESTING 
This is the second last stage in SDLC (Software Development Life cycle) the installation of the 
software is done. 
Installation Guide 
The system runs on a server and does not have an .exe or Executable file. Below is the 
installation process of the system and how it is setup: 
38 
Install the XAMPP server 
Step One 
XAMPP installs everything you need to run PHP pages and a MySQL database on your local 
machine. 
1. Double-click the Installer (.exe) file you downloaded from the XAMPP website. 
2. The XAMPP installer asks you to specify the directory to install XAMPP. It is 
recommended you leave the default setting specified. 
3. Click Install. 
Figure 11: Installation snap1
NOTE: The Installation process can take up to a few minutes. Once complete, a 
Command Prompt window will display for you to configure a few additional settings. 
The Command Prompt dialog will ask you some questions that you can answer by 
choosing 'y' or 'n' on your keyboard. 
4. You should answer each question using the default answer provided. The following 
outlines each question, and the answer you should give. 
o Should I add shortcuts to the startmenu/desktop? 
 Enter 'y' then Enter to add these shortcuts, otherwise hit the 'n' key on your 
39 
keyboard, then hit Enter. 
o Should I locate the XAMPP paths correctly? Should I proceed? 
 Enter 'y' and then the Enter key. 
o Should I make a portable XAMPP without drive letters? 
 Enter 'n' and then the Enter key. 
o XAMPP is ready to use. 
 Hit the Enter key. 
o I have set the timezone to... 
 Hit the Enter key. 
5. Once you have answered all these questions, the following message will display.
40 
Figure 12: Installation snap2 
6. First, enter 5 to enable IPv4 only. 
7. Lastly, enter 1 and hit Enter to open the XAMPP Control Panel. 
Step 2: Start your Server 
Once installed, you can use the XAMPP Control Panel to start your testing server. 
1. Click Start next to both Apache and MySQL to start the services. 
Starting these services can take a few seconds. When it is complete, ‘Running’ will display beside 
each option.
41 
Figure 13: Installation snap3 
To make your testing server start automatically when your computer starts, you can check 
the Svc checkbox beside both options. 
NOTE: If the XAMPP Control Panel is not already running, go to C:xamppcontrol.exe to open 
the panel. 
Step 3: A little cleanup 
With your testing server now installed and running, there are a few final steps you should take to 
make sure everything is configured to work perfectly. 
1. Open a web browser such as Firefox or Internet Explorer.
2. In the address bar,enter http://localhost; You should see a XAMPP splash screen with 
42 
language options 
3. Choose your preferred language; You should now see a confirmation window informing 
you that ‘You have successfully installed XAMPP on your system’. This interface allows 
you to configure certain XAMPP settings. 
Security Settings 
Best practices encourage you to always have a password specified for your MySQL 
database, and we think you should too. 
4. From the side navigation, choose Security. 
Figure 14: Installation snap4 
5. Click the link shown in the graphic below. 
Figure 15: Installation snap5
The next page displays the login credentials for your MySQL database. The username 
(SuperUser), 'root' is created for you automatically and is the username you can use for 
accessing your MySQL database or creating a database connection. 
6. In the new password field, enter a password for accessing your database. 
7. Enter the password again in the second text field. 
8. Choose Password Changing to confirm your new password. 
You’ve now determined the username and password that you will use every time you 
need to access your database, or create a database connection in Dreamweaver. 
Each time you change your password, you will need to restart your testing server for the 
change to take effect. Access the Control Panel by double-clicking the XAMPP icon in 
your taskbar. Choose Stop and then Start beside the MySQL option to restart the 
database. 
43 
Test the PHP Installation 
Lastly, you should test your PHP Installation to make sure everything is set up for you to 
load PHP pages on your local computer. 
9. Navigate back to the http://localhost page you were at before. 
10. Click the phpinfo() option from the side navigation.
44 
Figure 16: Installation snap6 
If you see a PHP page similar to this, you have completed setting up your PHP/MySQL 
testing server. 
Setting up the System 
1 Copy all the files of the System from Evote/System Files to where xampp folder is 
/xampp/htdocs/.. 
2 Navigate to php folder 
3 Select Dbcon.php file and open 
4 Change the username, Password of the database 
5 Save the file 
6 Navigate to data link 
7 Change the username and the password of the variable as per your database 
Setting up the Database 
1. Open phpmyadmin by going to the URL http://localhost/phpmyadmin 
2. Create a new database title evote 
3. Import the database file(voters.sql) from the database folder in the Evote folder 
Accessing the System 
Open web browser (Mozilla, I.E) 
Type URL http://localhost/eVote/ 
Risk associated with system 
Uses CSS (Cascading Style Sheets) so may not be compatible with all Browsers.
APPENDIX A: SAMPLE CODE 
45 
Login Page:
46 
Registration Page: 
Voting Page:
47
APPENDIX B: REFERENCES 
48 
B.1 Webliograpy 
W3Schools www.w3schools.com 
B.2 Bibliography 
Janet Valade, PHP and MySql for Dummies, 3rd Edition 
Earle Castledine and Craig Sharkie, First Edition February 2010, JQuery from 
Novice to Ninja 
Rusell J.T Dyer ,MYSQL In A Nutshell (Page 3,14 ,40), 2nd Edition

More Related Content

What's hot

Online voting system
Online voting systemOnline voting system
Online voting system
Meghna Dwivedi
 
Online voting system
Online voting systemOnline voting system
Online voting system
Pooja Jain
 
Online polling system
Online polling systemOnline polling system
Online polling system
Avinash Prakash
 
Online e-voting
Online e-votingOnline e-voting
Online e-votingaeioou
 
Online voting system presentation slide (1)
Online voting system presentation slide (1)Online voting system presentation slide (1)
Online voting system presentation slide (1)
wasi0013
 
ADVANCED ONLINE VOTING SYSTEM
ADVANCED ONLINE VOTING SYSTEMADVANCED ONLINE VOTING SYSTEM
ADVANCED ONLINE VOTING SYSTEM
abadmgr
 
Online votingsystem
Online votingsystemOnline votingsystem
Online votingsystemManish Kumar
 
Online Voting System
Online Voting SystemOnline Voting System
Online Voting Systemstudent
 
Documentation work online voting
Documentation work  online votingDocumentation work  online voting
Documentation work online voting
Thenmozhi Divya
 
Online voting
Online votingOnline voting
Online voting
Thenmozhi Divya
 
Online Voting System
Online Voting SystemOnline Voting System
Online Voting System
Sankhadip Kundu
 
Mobile e voting system using android application for higher
Mobile e voting  system using android application for higherMobile e voting  system using android application for higher
Mobile e voting system using android application for higher
Morine Gakii
 
E voting(online voting system)
E voting(online voting system)E voting(online voting system)
E voting(online voting system)
Saurabh Kheni
 
Project synopsis on online voting system
Project synopsis on online voting systemProject synopsis on online voting system
Project synopsis on online voting systemLhakpa Yangji
 
online voting system
online voting systemonline voting system
online voting system
student
 
Online voting system project
Online voting system projectOnline voting system project
Online voting system projectsnauriyal1994
 
Election managment
Election managmentElection managment
Election managment
chikkujacob
 
Feasibility Study on e-Voting System
Feasibility Study on e-Voting SystemFeasibility Study on e-Voting System
Online Voting System - Project
Online Voting System - ProjectOnline Voting System - Project
Online Voting System - Project
Subhashis Das
 

What's hot (20)

Online voting system
Online voting systemOnline voting system
Online voting system
 
Online voting system
Online voting systemOnline voting system
Online voting system
 
Online polling system
Online polling systemOnline polling system
Online polling system
 
Online e-voting
Online e-votingOnline e-voting
Online e-voting
 
Online voting system presentation slide (1)
Online voting system presentation slide (1)Online voting system presentation slide (1)
Online voting system presentation slide (1)
 
ADVANCED ONLINE VOTING SYSTEM
ADVANCED ONLINE VOTING SYSTEMADVANCED ONLINE VOTING SYSTEM
ADVANCED ONLINE VOTING SYSTEM
 
Online votingsystem
Online votingsystemOnline votingsystem
Online votingsystem
 
Online Voting System
Online Voting SystemOnline Voting System
Online Voting System
 
Documentation work online voting
Documentation work  online votingDocumentation work  online voting
Documentation work online voting
 
Online voting
Online votingOnline voting
Online voting
 
Online Voting System
Online Voting SystemOnline Voting System
Online Voting System
 
Mobile e voting system using android application for higher
Mobile e voting  system using android application for higherMobile e voting  system using android application for higher
Mobile e voting system using android application for higher
 
online polling system
online polling systemonline polling system
online polling system
 
E voting(online voting system)
E voting(online voting system)E voting(online voting system)
E voting(online voting system)
 
Project synopsis on online voting system
Project synopsis on online voting systemProject synopsis on online voting system
Project synopsis on online voting system
 
online voting system
online voting systemonline voting system
online voting system
 
Online voting system project
Online voting system projectOnline voting system project
Online voting system project
 
Election managment
Election managmentElection managment
Election managment
 
Feasibility Study on e-Voting System
Feasibility Study on e-Voting SystemFeasibility Study on e-Voting System
Feasibility Study on e-Voting System
 
Online Voting System - Project
Online Voting System - ProjectOnline Voting System - Project
Online Voting System - Project
 

Viewers also liked

Aadhar Based Electronic Voting Machine
Aadhar Based Electronic Voting MachineAadhar Based Electronic Voting Machine
Aadhar Based Electronic Voting Machine
Associate Professor in VSB Coimbatore
 
Smart Voting System using Aadhar Card
Smart Voting System using Aadhar CardSmart Voting System using Aadhar Card
Smart Voting System using Aadhar Card
Associate Professor in VSB Coimbatore
 
Real time voting system using face recognition for different expressions and ...
Real time voting system using face recognition for different expressions and ...Real time voting system using face recognition for different expressions and ...
Real time voting system using face recognition for different expressions and ...
eSAT Publishing House
 
Iris recognition and the challenge of homeland & border control security in UAE
Iris recognition and the challenge of homeland & border control security in UAEIris recognition and the challenge of homeland & border control security in UAE
Iris recognition and the challenge of homeland & border control security in UAE
Arab Federation for Digital Economy
 
Electronic voting system security
Electronic voting system securityElectronic voting system security
Electronic voting system security
Adeel Javaid
 
Evaluation of Iris Recognition System on Multiple Feature Extraction Algorith...
Evaluation of Iris Recognition System on Multiple Feature Extraction Algorith...Evaluation of Iris Recognition System on Multiple Feature Extraction Algorith...
Evaluation of Iris Recognition System on Multiple Feature Extraction Algorith...
Editor IJCATR
 
Mobile Voting System Using Advanced NFC Technology
Mobile Voting System Using Advanced NFC TechnologyMobile Voting System Using Advanced NFC Technology
Mobile Voting System Using Advanced NFC Technology
ijsrd.com
 
Mobile, Secure E - Voting Architecture for the Nigerian Electoral System
Mobile, Secure E - Voting Architecture for the Nigerian Electoral SystemMobile, Secure E - Voting Architecture for the Nigerian Electoral System
Mobile, Secure E - Voting Architecture for the Nigerian Electoral System
iosrjce
 
Comparison of various Biometric methods
Comparison of various Biometric methodsComparison of various Biometric methods
Comparison of various Biometric methods
Rupinder Saini
 

Viewers also liked (10)

Aadhar Based Electronic Voting Machine
Aadhar Based Electronic Voting MachineAadhar Based Electronic Voting Machine
Aadhar Based Electronic Voting Machine
 
8 g iris-recognition_system
8 g iris-recognition_system8 g iris-recognition_system
8 g iris-recognition_system
 
Smart Voting System using Aadhar Card
Smart Voting System using Aadhar CardSmart Voting System using Aadhar Card
Smart Voting System using Aadhar Card
 
Real time voting system using face recognition for different expressions and ...
Real time voting system using face recognition for different expressions and ...Real time voting system using face recognition for different expressions and ...
Real time voting system using face recognition for different expressions and ...
 
Iris recognition and the challenge of homeland & border control security in UAE
Iris recognition and the challenge of homeland & border control security in UAEIris recognition and the challenge of homeland & border control security in UAE
Iris recognition and the challenge of homeland & border control security in UAE
 
Electronic voting system security
Electronic voting system securityElectronic voting system security
Electronic voting system security
 
Evaluation of Iris Recognition System on Multiple Feature Extraction Algorith...
Evaluation of Iris Recognition System on Multiple Feature Extraction Algorith...Evaluation of Iris Recognition System on Multiple Feature Extraction Algorith...
Evaluation of Iris Recognition System on Multiple Feature Extraction Algorith...
 
Mobile Voting System Using Advanced NFC Technology
Mobile Voting System Using Advanced NFC TechnologyMobile Voting System Using Advanced NFC Technology
Mobile Voting System Using Advanced NFC Technology
 
Mobile, Secure E - Voting Architecture for the Nigerian Electoral System
Mobile, Secure E - Voting Architecture for the Nigerian Electoral SystemMobile, Secure E - Voting Architecture for the Nigerian Electoral System
Mobile, Secure E - Voting Architecture for the Nigerian Electoral System
 
Comparison of various Biometric methods
Comparison of various Biometric methodsComparison of various Biometric methods
Comparison of various Biometric methods
 

Similar to Online Voting System

Pritam bhansali Online Exam - Project Report
Pritam bhansali  Online Exam - Project ReportPritam bhansali  Online Exam - Project Report
Pritam bhansali Online Exam - Project Report
Pritam Bhansali
 
E votingproposal
E votingproposalE votingproposal
E votingproposal
Morine Gakii
 
Assignment2 nguyen tankhoi
Assignment2 nguyen tankhoiAssignment2 nguyen tankhoi
Assignment2 nguyen tankhoi
VnhTngLPhc
 
CLINICAL_MANAGEMENT_SYSTEM_PROJECT_DOCUM.docx
CLINICAL_MANAGEMENT_SYSTEM_PROJECT_DOCUM.docxCLINICAL_MANAGEMENT_SYSTEM_PROJECT_DOCUM.docx
CLINICAL_MANAGEMENT_SYSTEM_PROJECT_DOCUM.docx
HussainiHamza1
 
Final Year Project
Final Year ProjectFinal Year Project
Final Year Project
Mahesh Kodituwakku
 
Sport.net(2).doc
Sport.net(2).docSport.net(2).doc
Sport.net(2).doc
KrishnaVerma111737
 
E learning project report (Yashraj Nigam)
E learning project report (Yashraj Nigam)E learning project report (Yashraj Nigam)
E learning project report (Yashraj Nigam)
Yashraj Nigam
 
Project sample
Project sampleProject sample
Project sample
KULDEEPSINGH CHAUHAN
 
A Project Paper On Smart Gym Management System
A Project Paper On Smart Gym Management SystemA Project Paper On Smart Gym Management System
A Project Paper On Smart Gym Management System
Amy Roman
 
Online examination
Online examinationOnline examination
Online examination
farouq umar
 
Ignou MCA mini project report
Ignou MCA mini project reportIgnou MCA mini project report
Ignou MCA mini project report
Hitesh Jangid
 
A permit approval system for environmental impact assessment by epa
A permit approval system for environmental impact assessment by epaA permit approval system for environmental impact assessment by epa
A permit approval system for environmental impact assessment by epa
Kingsley Mensah
 
My project
My projectMy project
My project
Aminiel Michael
 
Online Test
Online TestOnline Test
Online Test
Vikas Sharma
 
MANUSCRIPT.docx
MANUSCRIPT.docxMANUSCRIPT.docx
MANUSCRIPT.docx
AlbaracinKingEzekiel
 
TY BSc.IT Blackbook Cover page
TY BSc.IT  Blackbook   Cover pageTY BSc.IT  Blackbook   Cover page
TY BSc.IT Blackbook Cover page
AkashChauhan139
 
Doctor appointment system.docx
Doctor appointment system.docxDoctor appointment system.docx
Doctor appointment system.docx
bbc53020
 
Analysis audio visual new
Analysis audio visual newAnalysis audio visual new
Analysis audio visual new
Darshana Chauhan
 

Similar to Online Voting System (20)

Pritam bhansali Online Exam - Project Report
Pritam bhansali  Online Exam - Project ReportPritam bhansali  Online Exam - Project Report
Pritam bhansali Online Exam - Project Report
 
E votingproposal
E votingproposalE votingproposal
E votingproposal
 
Assignment2 nguyen tankhoi
Assignment2 nguyen tankhoiAssignment2 nguyen tankhoi
Assignment2 nguyen tankhoi
 
CLINICAL_MANAGEMENT_SYSTEM_PROJECT_DOCUM.docx
CLINICAL_MANAGEMENT_SYSTEM_PROJECT_DOCUM.docxCLINICAL_MANAGEMENT_SYSTEM_PROJECT_DOCUM.docx
CLINICAL_MANAGEMENT_SYSTEM_PROJECT_DOCUM.docx
 
Final Year Project
Final Year ProjectFinal Year Project
Final Year Project
 
report
reportreport
report
 
Sport.net(2).doc
Sport.net(2).docSport.net(2).doc
Sport.net(2).doc
 
E learning project report (Yashraj Nigam)
E learning project report (Yashraj Nigam)E learning project report (Yashraj Nigam)
E learning project report (Yashraj Nigam)
 
Project sample
Project sampleProject sample
Project sample
 
A Project Paper On Smart Gym Management System
A Project Paper On Smart Gym Management SystemA Project Paper On Smart Gym Management System
A Project Paper On Smart Gym Management System
 
Online examination
Online examinationOnline examination
Online examination
 
Ignou MCA mini project report
Ignou MCA mini project reportIgnou MCA mini project report
Ignou MCA mini project report
 
A permit approval system for environmental impact assessment by epa
A permit approval system for environmental impact assessment by epaA permit approval system for environmental impact assessment by epa
A permit approval system for environmental impact assessment by epa
 
My project
My projectMy project
My project
 
Online Test
Online TestOnline Test
Online Test
 
MANUSCRIPT.docx
MANUSCRIPT.docxMANUSCRIPT.docx
MANUSCRIPT.docx
 
TY BSc.IT Blackbook Cover page
TY BSc.IT  Blackbook   Cover pageTY BSc.IT  Blackbook   Cover page
TY BSc.IT Blackbook Cover page
 
Doctor appointment system.docx
Doctor appointment system.docxDoctor appointment system.docx
Doctor appointment system.docx
 
Online shopping
Online shoppingOnline shopping
Online shopping
 
Analysis audio visual new
Analysis audio visual newAnalysis audio visual new
Analysis audio visual new
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 

Online Voting System

  • 1. 1 DECLARATION: I Stephen Nganda Muindi declare to the best of research knowledge that this semester project is my original work and that it has never been submitted to any university or any other institution. The literature and citations from other people’s work have been duly referenced and acknowledged in the text, footnotes and bibliography. Signed: …………………………………………………… Date…………………………………………………………… Stephen N. Muindi Student-JKUAT Signed: …………………………………………………… Date …………………………………………………………… Mr. Samson Ochingo Supervisor
  • 2. 2 DEDICATION This project is dedicated to my Almighty God, my mother, to the department of computing in the faculty of Institute of Computer Science and Information Technology (ICSIT) at Jomo Kenyatta University of Agriculture and Technology (JKUAT) and to my fellow students who supported and guided me throughout this worthy course of study.
  • 3. 3 ACKNOWLEDGEMENT I register my appreciation and acknowledgement to the Almighty God for sustaining me, giving me life, enabling me to finish this work through His strength, My mother (Ruth Muminah) and my sister (Grace Ivui Muindi) for their moral and spiritual support, JKUAT for providing me with such a conducive environment under which I could do my work and not forgetting my supervisor Mr. Samson Ochingo for the technical support that he has offered unto me throughout the entire process. My regards goes to all my classmates for the assistance and guidance that they have offered unto me.
  • 4. Declaration…………………………………………………………………………………1 Dedication………………………………………………………………………………….2 Acknowledgement………………………………………….……………………………....3 Introduction……………………………………………………………………………..…..6 Background………………………………………………………………………….....…6 Problem Statement………………………………………………………………………..6 Justification……………………………………………………………………………….Error! Bookmark not defined. Benefits of the new systems………………………………………………………………7 Objectives…………………………………………………………………………………7 Project Schedule……………………………………………………………………….....8 Literature Review……………………………………………………………………………9 Introduction……………………………………………………………………………...10 Case Study……………………………………………………………………………….10 Overview of the current Voting system in J.K.U.A.T………………...…………….10 System Analysis…………………………………………………………...………………..11 Introduction………………………………………………………………………………11 Problem Specification........................................................................................................12 Proposed System................................................................................................................13 Feasibility Study................................................................................................................14 Operational Feasibility................................................................................................14 Technical Feasibility...................................................................................................14 Economic Feasibility...................................................................................................15 Schedule Feasibility.....................................................................................................15 Requirements Specification................................................................................................16 Overview of System Requirements..............................................................................17 Functional Requirements……………………………………………………………..18 Non-Functional Requirements………………………………………………………...19 4
  • 5. Data Collection Methods.....................................................................................................21 Questionnaires..............................................................................................................21 Interviews.....................................................................................................................22 Observation..................................................................................................................22 Documentation.............................................................................................................22 System Design........................................................................................................................23 Data Flow diagram…………………………………………………………………..23 Three Tier Architecture……………………………………………………………...24 Description of the Three Tier Architecture……………………………………….…24 System Interface and Design………………………………………………………………...26 Functional breakdown of the system by design………………………………………26 System Development…………………………………………………………….……….….30 Properties of programming languages and database used………………………………..30 PHP Programming Language……………………………………………………………..30 MYSQL Database…………………………………………………………………………31 XAMPP 1.7.2……………………………………………………………………………...31 Data Structures and Algorithms used………………………………………………………..33 Implementation and Testing…………………..………………………………………………38 Installation Guide…………………………………………………………………...….…38 Install the XAMPP server…………………………………………………………………38 Setting up the System……………………………………………………………………..44 Setting up the Database…………………………………………………………………...44 Accessing the System……………………………………………………………………..44 Risk associated with system…………………………………………………………………44 APPENDIX A: SAMPLE CODE .................................................................................. 45 APPENDIX B: REFERENCES ..................................................................................... 48 B.1 Webliograpy……………………………………………………………………………..48 B.1 Bibliography……………………………………………………………………………..48 5
  • 6. 6 CHAPTER ONE: INTRODUCTION Background Every academic year in J.K.U.A.T one of the most fundamental critical functions to the student community takes place. The election of the student’s leaders is held at September of each academic year in a bid to bring fresh ideas in the running of the student organization. The methods of campaign, election and post-election processes have been all the same since the inception of the student organization. These methods are in every right acceptable but fall short in this age of information and Technology, in that they are slow, entertain rigging to some degree and not so friendly to the environment. Bearing in mind just but the few reasons outlined above, the need for a more fast and robust election/voting system was idealized. Thus an online voting system. Problem Statement The major problem with the current system is that it involves a lot of manual operations which are prone to errors and are definitely slow. Limitations of the Current System  It is slow: the voting process has to be completed first before the results are announced and also queuing to vote enhances the slowness  It is tedious: The clerks involved in the verification, tallying and other elections duties get exhausted at the end of the day since everything is manual  The whole election process is not environment friendly since the amount of paper required for that single day is humongous  The process is expensive, this is because a lot of paper has to be bought, ballot boxes, and also the printing of the ballot papers  Rigging: Since the process of tallying the votes is manual unscrupulous clerks can tamper with the results through rigging votes  Time wastage, due to the slowness of the system a lot of time is wasted in the whole election process which could have been useful in undertaking other duties.
  • 7. Justification Web-based solutions can be accessed anywhere as long as there is connectivity. Bearing in mind the expansive J.K.U.A.T intranet and the unlimited internet offered by the institution a web-based election system would come in handy to facilitate free and fair elections. The system would be centrally placed and only be active during the election period. The system will incorporate verifications of students, voting for the candidates and a real-time tally of the votes. Since it is web-based it can be accessed from anywhere, be it at campus, in the hostels and even at home. 7 Benefits of the new systems  The system will facilitate free and fair elections since the tallying of the votes cannot be tampered with.  The system will facilitate a faster election process since one can vote from anywhere and the real-time tallying makes it fast to announce the elected leaders.  Since the system removes the geographical limitation factor all students can vote for their leader regardless of their location.  The election process is made cheaper since printing of ballot papers is eliminated and fewer clerks if any required.  Cases of double voting are eliminated since the verification process of the system ensures one cannot vote more than once. Objectives  To develop an online web-based voting system that can be used during the election period to vote for student leaders.  To come up with a system documentation  To establish the metrics for measuring and evaluating usability  To establish the principles that support usability
  • 8. Project Schedule: The project will take one semester. Below is the breakdown of activities; Task ID Week Task Name 1. 1-6 Research and proposal writing 2. 7-8 Data collection 3. 9-14 Project Design 4. 14-15 Documentation 5. 16 Presentation 8
  • 9. CHAPTER TWO: LITERATURE REVIEW 9 Introduction This section intends to review the current situation in the school which will assist in bettering the voting system. Here we will look at the current methods and technologies used during voting as well as the processes involved. Case Study: Overview of the current Voting system in J.K.U.A.T Currently in JKUAT elections are done in using the old age manual ballot system. A list of the students vying for the Student Council has their names outlined so that the entire school can get acquainted with them. After a week of campaigns the elections are done. A list of all the students in JKUAT is availed to their respective departments. The different departments set up polling stations in different parts of the school to facilitate the elections process. At the polling stations, students queue for a chance to vote a list of leaders in the different positions. At the voting room a student is verified using their Student ID to ascertain that they are genuine students of the campus. Their names’ are crossed off and each is given a ballot papers where they check their candidates. Afterwards the votes are cast and the student leaves the room. After the day is over, the tallying is done and depending on when its done, the results are announced that day or the following morning. However, one major issue that has not been exhaustively addressed so far is the security of mobile applications. Security depends on several factors including sending and access to confidential information via the client phones, how the information is protected, secured and the level of user satisfaction in relation to reliability and dependability. The future of mobile application heavily depends upon how secure the service is to use. Reliable and secure applications play a central role in the success of mobile application. Elections allow the populace to choose their representatives and express their preferences for how they will be governed. Naturally, the integrity of the election process is fundamental to the integrity of democracy itself. The election system must be sufficiently robust to withstand a variety of fraudulent behaviors and must be sufficiently transparent and comprehensible that voters and candidates can accept the results of an election. Unsurprisingly, history is littered with examples of elections being manipulated in order to influence their outcome. The design of a “good” voting system, whether electronic or using traditional paper ballots or mechanical devices must satisfy a number of sometimes competing criteria. The anonymity of a
  • 10. voter’s ballot must be preserved, both to guarantee the voter’s safety when voting against a malevolent candidate, and to guarantee that voters have no evidence that proves which candidates received their votes. The existence of such evidence would allow votes to be purchased by a candidate. The voting system must also be tamper-resistant to a wide range of attacks, including ballot stuffing by voters and incorrect tallying by insiders. 10
  • 11. CHAPTER THREE: SYSTEM ANALYSIS Introduction When carrying out System Analysis of an Online voting system, the initial step is to find out how the current/existing system works. This is to help in getting a better of understanding of the problems that are existent and whether they can be fixed with the proposed system or whether the existing system can be upgraded and modified. In short, system analysis is the process of investigating a system, identifying problems, and using the information to recommend improvements to the system. System analysis is supposed to define how the system will be implemented. Steps in System Analysis 11
  • 12. In this section, we will focus our attention on the principal functional and non- functional (performance) requirements of the Online voting System. These two types of requirements will describe to us the capabilities of the system based on the objectives and goals, and what physical software requirements are necessary for the system to work with ease. There are 2 main phases that are involved in System Analysis:  Feasibility Study – used to check whether the project can be implemented i.e. is 12 practical  Requirements Specification – used to find out the capabilities of the system i.e. what the system will be able to do, from as many sources as possible. Some of the techniques that can be used to accomplish this task are interviews, document review, focused group discussions and observation can be user to accomplish this task. Problem Specification - Current System Analysis After every year, a general election is held and the JKEC therefore is required to register voters during this period. A manual system is used to carry out this process where the records of voters are placed on paper. The process of voting takes a whole day in a specified polling stations, voters spend unproductive hours (2-3 hours on average) queuing to vote. This makes the process inconvenient as due to limitation of time and location, thereby reducing the voting rate and anonymity. This is attributed to the unavailability of alternatives, complexity and general uncertainty surrounding technological innovations. In the current system involves queuing at the polling station of voter registration. As a result, the process has the following drawbacks:  Time consuming: Voters spend unproductive hours (2-3 hours on average) queuing to vote.  Location limited: A voter can only vote at the polling station of registration.  Costly: A lot of paperwork involved in the current manual system which is costly and the voter travelling costs.
  • 13. Proposed System - Applicable Solutions Development and implementation a secure system that will enable voting for the general public are made easier, faster and at the user’s point of work. This is in terms of accessibility of the service and the ease of its use. Voters will be able to vote from the point they are without need to travel in advance. There is a need to come up with a system that will not only help JKEC to improve its delivery of services to voters but also to cut on the Government expenditure The students registration process will be managed by the JKEC in collaboration with the Department his/her course is offered. An administrator to update and manage the system will be in charge of that stage of the registration process. The system will assist in ensuring that JKEC has data on voters for use when need arises. 13 Voters’ data include:  Admission REG number.  Voter Identity. Therefore e-voting not only serves as aid in counting the votes, by now they support all three main voting processes: 1. Pre-Election Phase: Identification of the voter, checking of eligibility 2. Election Phase: Casting the vote 3. Post-Election Phase: Counting of the votes. The aim of this project is to develop a secure voting system with which users can participate using their mobile phone. The system shall be made up of the following four components: 1. Web client application (e-vote) 2. Server application 3. Database back-end and web-based administration tool The server should be able to send a reply to the client at real time, acknowledging the receiving of the voter’s response. In case of any delays like network traffic, the client party should be notified. This Proposal allows a voter to cast his vote in a simple and convenient way without the limit of time and location, thereby increasing the voting rate, and also ensuring confidentiality and anonymity. Keywords - Voting, web terminal (mobile phone), confidentiality, anonymity.
  • 14. Feasibility Study This is the measure of how beneficial or practical the development of an information system will be to an organization. It is aimed at establishing whether it is worthwhile developing the new system. This area introduces the system in terms of research into why it is more viable than the existing system. Three main areas of feasibility study are identified: Operational Feasibility, Technical Feasibility, Economical Feasibility and Schedule Feasibility. The following study was carried out to establish whether the system development will carry on to the next stage: a) Operational Feasibility This is the measure of how well the solution of problems will work in the organization. It seeks to answer the question: Is the problem worth solving? It is also a measure of how people feel about the system project. The system will save time for both voters and voting administrators. By use of their mobile phones, voters will cast their votes. The voting exercise of voting can be done without necessarily lining up in a polling station. This saves both time and cost. b) Technical Feasibility This is the measure of the practicality of a specific technical solution and the availability of technical resources and expertise. These recent advances in wireless and mobile communications have led to faster connection speeds (currently at 384 kbps in 3G+), larger device screen size, and multiple modes of input and new applications. These applications consist of software that runs on a mobile device and performs tasks for the user of the mobile phone. Also known as downloadable, mobile applications are common on most phones, including inexpensive, entry-level models. Their wide use is due to the many functions they perform, including providing user interfaces for basic telephony and messaging services as well as for advanced services such as games and videos. As a result, there has been some serious interest in mobile applications and some progress has been made in applications, framework, networking requirements, and business models. 14
  • 15. 15 c) Economic Feasibility This is a measure of the cost effectiveness of a project or solution. It takes into account costs and benefits. Thus it is often called Cost-Benefit Analysis.  A lot of paperwork involved in the current manual system which is costly and the voter travelling costs.  Voters spend unproductive hours (2-3 hours on average) queuing to vote. d) Schedule Feasibility Schedule feasibility is a measure of how reasonable the project timetable is. It seeks to answer the following question: ‘Given our technical expertise, are the project deadlines reasonable?’ Each phase of the system development should be done within a specific time frame to avoid delays in the implementation and testing of the final product.
  • 16. Requirement Specification The process of requirements specification for a software product is very crucial since it plays a great role towards the acceptability and the effectiveness of the developed software. Requirements engineering is composed of: • Requirements elicitation. • Requirements analysis and negotiation. • Requirements specification. • System modeling. • Requirements validation. • Requirements management. The study of the software product’s characteristics is very important since:  The relative importance of these characteristics depends on the product and the environment in which it is to be used. In some cases, some attributes may dominate. The deep study of the intended product exposes the key attributes of the system since this may vary with regard to the system and its environment of use.  Costs tend to rise exponentially if very high levels of any one attribute are required. It is therefore important to consider the feasibility of the system which is implied by the ability of the stakeholders to facilitate the realization of such attributes. Requirements engineering and analysis is however a very difficult task especially for large projects. This is contributed by the fact that most users are not completely and clearly aware of what they want in the system and this can be coupled with the volatility of the requirements. The scope of the system may also be misunderstood that may lead to assumption of key components of the system that would later call for reengineering the system which is costly in terms of financial resources, labor and time. The challenges encountered in requirements engineering inspired Somerville and Sawyer to suggest a set of detailed guidelines for requirements elicitation. This includes: • Assessing the business and technical feasibility for the proposed system. 16
  • 17. • Identify the people who will help specify requirements and understand their organizational bias. • Define the technical environment into which the system or product will be placed. • Identify the constraints that limit the functionality or performance of the system or product to be built. •A list of one or more requirements elicitation methods. • Solicit participation from all stakeholders. • Identify ambiguous requirements as candidates for prototyping. • Create usage scenarios to help customers/users better identify key requirements. The purpose of the proposed application is to allow users (votes) to vote using their mobile phones i.e. the aim of this project is to develop a secure voting system with which users can Participate using their mobile phone. Overview of System Requirements Description of Information The information required for the system includes:  The voter details – All the necessary information about the voter i.e. voter name, ID number, registered SIMs, voter Security password and voting place identity information e.g. county code, constituency code, ward code and polling station code.  The candidate details – All the necessary information about the candidate who is also a voter i.e. ID number, political party, candidate photo, post vying.  Voting day details- voter details, candidates of choice, time casted. 17 Users of the Information  For the voting process the voter needs to identity is required i.e. ID number, voter Security password.  Voter’s choice candidates are necessary for the voting process.
  • 18. User Objectives The following are some of the objectives that the voters would like to see from the system:  Convenient vote casting through the mobile phone.  Secure voting system. User Access Restrictions Administrator will access the details of the voters who have registered to vote via the phone. Functional Requirements This refers to the necessary tasks, action or activities that the system must accomplish, or enable the user to do. The Online phone voting System is a secure mobile phone voting system with which users can participate using their mobile phone. The functional requirements of the system describe the functionality or services that the system is expected to provide. In this case:  The system (mobile phone application- m-vote) will allow users to vote via their mobile 18 phones  Send a confirmation message to the voter that the voting process was successful e.g. time when vote was cast.  The system shall provide appropriate error messages and users shall be accorded sufficient help on how to carry on tasks e.g. In case of any delays like network traffic, the voter should be notified.  Authentication -The system should identify each authorized voters every time they use the system using a Student ID number.  The system shall impose a successful voter determination strategy in order to determine a successful voter in order to avoid multi voting.  Make vote counting convenient.
  • 19. Non-Functional Requirements A non-functional requirement is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. The plan for implementing non-functional requirements is detailed in the system architecture. Non-functional requirements define how a system is supposed to be. Outlined below are some of the expectations of the system when implemented: 19 a) Reliability  The Online voting system (e-vote) shall be robust enough to have a high degree of fault tolerance. For example, if there is an invalid entry, the system should not crash and shall identify the invalid input and produce a suitable error message.  The Online voting system shall be able to recover from hardware failures, power  The Online voting system shall impose a successful voter determination strategy in order to determine a successful voter in order to avoid multi voting.  The Online voting system shall be available during the voting hours of the voting day.  Failures and other natural catastrophes should rollback the databases to their most recent valid state. b) Security The system should implement strategies to counter hacking and access by unauthorized persons. The application needs to be secure enough and should enable users to access it depending on the level of the user. e.g. An administrator will be register voters, a authorized voter will only be allowed to vote. The election system must be sufficiently robust to withstand a variety of fraudulent behaviors and must be sufficiently transparent and comprehensible that voters and candidates can accept the results of an election. c) Performance  Response time of e-vote should be less than 5 seconds most of the time. Response time refers to the time that the user should wait for before getting a response from the system after querying it.  E-vote shall show no visible deterioration.
  • 20. 20 d) Integrity  Only the system administrator has the right to register voters. The system should be physically and logically secure to protect the databases. The administrators need to be authenticated before having access to the system e) Scalability:  The system should be able to expand to meet future needs of the organization and still be able to serve the purpose for which it was build. f) Usability  Users should be able to understand the menu and options provided by the system.  The system shall provide an easy-to-use interface so that the users do not strain to interact with the system.  Any notification or error messages generated by the system shall be clear, polite and free of jargon.  The interface should be intuitive and easily navigable. g) Availability and accessibility  The system should be up and running whenever needed. h) Inte roperability The system should be able to work with other existing systems. It should ensure backward and forward compatibility.
  • 21. CHAPTER FOUR: DATA COLLECTION METHODS These are the methods that were used to elicit requirements from the stakeholders of the system. 21 These stakeholders included:  Students i.e. voters  The candidates  JKEC (Jomo Kenyatta Electoral Commission) The following is a brief description of the tools used to collect data from the various stakeholders in order to establish requirements: Questionnaires A questionnaire is a method to collect data from the target users in a specific knowledge domain. According to Peerce et al. Questionnaire is a well known technique to collect demographic data and users’ opinions. The design of a questionnaire is important because it addresses the research questions and hypothesis on which data is to be collected. The questions can be closed or open ended. The initial part in a questionnaire is mostly concern with demographical and experiential information. This information could be used to find out the users’ experience with the current system. Some of the major areas covered by the questionnaires were:  Shortcomings associated with the current mode of voting.  Views on online voting.  The proposed system.  Characteristics of a good output with regard to the system. The questionnaires were administered to the students as well as the electoral commission. Fifty (50) respondents were polled.
  • 22. 22 Interviews Interviews are used to gain more insight into the user requirements. They involve having face to face conversations with various stakeholders and getting to get more information. One advantage of using interviews was that a participant's unique point of view can be explored in detail and any point of misunderstanding was clarified. These were administered on all the stakeholders. They interviews were open ended and semi-structured. These were administered on all the stakeholders. They were mostly open-ended and semi-structured to allow the users provide as much information as possible without feeling pressured. One advantage of using interviews that a participant's unique point of view can be explored in detail. Observation This involved observing the various stakeholders and their various roles they perform in the process of voting. It was important in getting to know the problems that the clients mostly go through in the process of voting. The main focus was on the students because the intended software solution is aimed at making the process of voting more efficient and convenient for them. Documentation Studying documentation involved studying the companies’ documented procedures for transacting business. It involved studying the documents that have to be filled in, their contents and the approval that is required to make a vote legally binding. It also involved getting to know from JKEC what the necessary steps are in order for one to be eligible to vote and also eligible to vie for a position. Through the documentation, I was able to see what inputs were required for the process of voting and the corresponding outputs.
  • 23. CHAPTER FIVE: SYSTEM DESIGN 23 Data Flow diagram Figure 1: Data Flow Diagram Voting Process Login Registration 1. Chairperson 2. Vice-Chairperson 3. Secretary General 4. Finance Secretary . . . . . . . . . . . . . . . . . . Vote Tallying RESULTS Has voted? YES NO STUDENT VOTER Not Registered Registered
  • 24. 24 Three Tier Architecture Figure 2: Three Tier Architecture Description of the Three Tier Architecture Presentation Tier This layer presents data to the user and optionally permits data manipulation and data entry. Web-based applications now often contain most of the data manipulation features. This is accomplished through use of Dynamic HTML and client-side data sources and data cursors. Logic Tier Also referred to as the business logic tier, the middle tier. It controls an application’s functionality by performing detailed processing. In this system tallying and checking whether one has voted are processed at this level and the business functionalities are achieved at this point.
  • 25. 25 Data Tier This tier consists of database servers. This is where the project details are stored and they are retrieved on request.
  • 26. CHAPTER SIX: SYSTEM INTERFACE AND DESIGN Most of the design is done on HTML 5 and jQuery libraries. Reason for choosing this was because its easy and flexible to work with. HTML 5 being one of the latest technologies in web programming provides more functionality than the previous. Functional breakdown of the system by design 26 Login Page: For anyone who is registered in the system, they provide the login details i.e Student Id no. , password and choose their voter type (e.g Voter or Candidate). The system verifies the credentials and logs into the system. If any of the log in details is wrong, an error message is displayed. Figure 3: Registering as a Voter Registration: For any student who is not registered as a voter/candidate, they register on this page. After registration the persons are verified on whether they are students by the admin. The registration link can be accessed at the login page:
  • 27. 27 Figure 4: Registering as a Voter The registration page is active for a whole month before the elections, so that candidates and voters can register and be verified. A week before elections the registration page cannot be accessed. One can register as a voter or as a candidate: Figure 5: Registering as a Voter Figure 6: Registering as a Voter
  • 28. 28 Voting: On successful log in, one can now do the voting. The page is tabbed depending on the number of candidates to be voted for. On this system there are 4 candidates to be voted for: Chairman, Vice Chairman, Entertainment Secretary and Treasurer. Figure 7: Voting For Chairperson
  • 29. 29 Figure 8: Voting For Vice Chairperson Figure 9 :Voting for Treasurer Figure 10: Voting for Entertainment Secretary
  • 30. CHAPTER SEVEN: SYSTEM DEVELOPMENT In the system analysis and design OOP (objects Oriented Programming) is used. The language that is majorly in use on the server side is the PHP scripting language. Properties of programming languages and database used PHP Programming Language PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded 30 into HTML. There are three main areas where PHP scripts are used.  Server-side scripting. This is the most traditional and main target field for PHP. You need three things to make this work. The PHP parser (CGI or server module), a web server and a web browser. You need to run the web server, with a connected PHP installation. You can access the PHP program output with a web browser, viewing the PHP page through the server.  Command line scripting. You can make a PHP script to run it without any server or browser. You only need the PHP parser to use it this way. This type of usage is ideal for scripts regularly executed using cron (on *nix or Linux) or Task Scheduler (on Windows).  Writing desktop applications. PHP is probably not the very best language to create a desktop application with a graphical user interface, but if you know PHP very well, and would like to use some advanced PHP features in your client-side applications you can also use PHP-GTK to write such programs. PHP can be used on all major operating systems, including Linux, many Unix variants (including HP-UX, Solaris and OpenBSD), Microsoft Windows, Mac OS X, RISC OS, and probably others. PHP has also support for most of the web servers today. This includes Apache, IIS, and many others. And this includes any web server that can utilize the FastCGI PHP binary, like lighttpd and nginx. PHP works as either a module, or as a CGI processor.
  • 31. 31 MYSQL Database MySQL runs on more than 20 platforms including Linux, Windows, Mac OS, Solaris, IBM AIX, giving you the kind of flexibility that puts you in control. The MySQL database has become the world's most popular open source database because of its high performance, high reliability and ease of use. It is also the database of choice for a new generation of applications built on the LAMP stack (Linux, Apache, MySQL, PHP / Perl / Python.) Many of the world's largest and fastest-growing organizations including Facebook, Google, Adobe, Alcatel Lucent and Zappos rely on MySQL to save time and money powering their high-volume Web sites, business-critical systems and packaged software. Reason for use Flexible Open source Panel to easily navigate in phpmyadmin XAMPP 1.7.2 XAMPP is a full- featured AMPP (Apache MySQL, PHP, Perl) package that is one of the few non-commercials AMPP middleware stacks available on Linux. With its tight integration, XAMPP makes it possible to run anything from a personal home page to a full- featured production site (though only for development purposes; XAMPP is not meant to be used on a production server due to security issues). XAMPP really shines in the following areas:  It is easy to install and set up.  It contains a number of useful packages that make it easy to do things like generate traffic reports and accelerate PHP content.  It has been thoroughly tested on the SUSE, Red Hat, Mandrake, and Debian Linux distributions, as well as on Windows® and Solaris.
  • 32. 32 XAMPP has various packages as stated below: Basic packages Basic packages include system, programming, and server software:  Apache, the famous Web server  MySQL, an excellent, free, open source database  PHP, the programming language  Perl, the programming language  ProFTPD, an FTP server  OpenSSL, for secure sockets layer support Graphics packages XAMPP includes the following graphics-related packages:  GD, the "Graphics Draw" library  libpng, the official PNG reference library  libjpeg, the official JPEG reference library  ncurses, the character graphics library Database packages And what would an integrated stack be without some database packages such as:  gdbm, the GNU implementation of the standard UNIX dbm library  SQLite, an extremely small, zero-configuration SQL database engine  FreeTDS, a database library that gives UNIX and Linux programs the ability to talk to Microsoft SQL and Sybase databases XML packages For XML development, XAMPP includes the following:
  • 33. 33  expat, an XML parser library  Salbotron, an XML toolkit  libxml, an XML C parser and toolkit for GNOME PHP packages For PHP development, XAMPP includes the following:  PEAR, the PHP library  A pdf class that generates dynamic PDF documents with PHP  TURCK MMCache, a PHP performance enhancer Data Structures and Algorithms used Php code has very few data structures in the system. Although object oriented programing was used to model the Candidate class: <?php include_once('php/dbconnector.php'); class Acandidate{ public $firstname=null; public $secondname=null; public $surname=null; public $moto=null; public $photo=null; public $password=null; public $memberType=null; public $isVoted=null; public $studentId=null;
  • 34. 34 public $position=null; public function instantiate($id) { $sql="select * from voters where id='".trim($id)."'"; $result=mysql_query($sql); if($row=mysql_fetch_object($result)) { $this->firstname=$row->FirstName; $this->secondname=$row->SecondName; $this->surname=$row->SurName; $this->moto=$row->Moto; $this->photo=$row->Photo; $this->password=$row->password; $this->memberType=$row->memberType; $this->hasVoted=$row->hasVoted; } } public function update($id)
  • 35. 35 { $sql="update voters set firstname='".$this->firstname."', secondname='".$this->secondname."', surname='".$this->surname."', moto='".$this->moto."', photo='".$this->photo."' password='".$this->password."' where id='".$id."'"; } public function vInsert() { $sql="insert into voters(firstname,secondname,surname,id,password,memberType) values('".trim($this- >firstname)."','".trim($this->secondname)."','".trim($this->surname)."','".trim($this- >studentId)."','".trim($this->password)."','".trim($this->memberType)."')"; //$state="1 Voter Added"; $query=mysql_query($sql); if(!$query) { echo "Pole"; die('Error: '.mysql_error());
  • 36. 36 } else //echo $state; //alert("You have been successfully Registered"); header('location:../project/index.php'); } public function cInsert() {$sql="insert into voters(firstname,secondname,surname,id,Position,moto,Photo,password,memberType) values('".trim($this->firstname)."','".trim($this->secondname)."','".trim($this- >surname)."','".trim($this->studentId)."','".trim($this->position)."','".trim($this- >moto)."','".trim($this->photo)."','".trim($this->password)."','".trim($this->memberType)."')"; //$state="1 Candidate Added"; $query=mysql_query($sql); if(!$query) { echo "Pole "; die('Error: '.mysql_error()); } else //echo $state; //alert("You have been successfully Registered");
  • 37. header('location:../project/index.php'); 37 } public function checkId($id) { $sql="select * from voters where id='".$id."'"; $result=mysql_query($sql); if(mysql_num_rows($result)>0) { echo 'Student ID already in use!'; } Else echo'Student ID available!'; } } ?>
  • 38. CHAPTER EIGHT: IMPLEMENTATION AND TESTING This is the second last stage in SDLC (Software Development Life cycle) the installation of the software is done. Installation Guide The system runs on a server and does not have an .exe or Executable file. Below is the installation process of the system and how it is setup: 38 Install the XAMPP server Step One XAMPP installs everything you need to run PHP pages and a MySQL database on your local machine. 1. Double-click the Installer (.exe) file you downloaded from the XAMPP website. 2. The XAMPP installer asks you to specify the directory to install XAMPP. It is recommended you leave the default setting specified. 3. Click Install. Figure 11: Installation snap1
  • 39. NOTE: The Installation process can take up to a few minutes. Once complete, a Command Prompt window will display for you to configure a few additional settings. The Command Prompt dialog will ask you some questions that you can answer by choosing 'y' or 'n' on your keyboard. 4. You should answer each question using the default answer provided. The following outlines each question, and the answer you should give. o Should I add shortcuts to the startmenu/desktop?  Enter 'y' then Enter to add these shortcuts, otherwise hit the 'n' key on your 39 keyboard, then hit Enter. o Should I locate the XAMPP paths correctly? Should I proceed?  Enter 'y' and then the Enter key. o Should I make a portable XAMPP without drive letters?  Enter 'n' and then the Enter key. o XAMPP is ready to use.  Hit the Enter key. o I have set the timezone to...  Hit the Enter key. 5. Once you have answered all these questions, the following message will display.
  • 40. 40 Figure 12: Installation snap2 6. First, enter 5 to enable IPv4 only. 7. Lastly, enter 1 and hit Enter to open the XAMPP Control Panel. Step 2: Start your Server Once installed, you can use the XAMPP Control Panel to start your testing server. 1. Click Start next to both Apache and MySQL to start the services. Starting these services can take a few seconds. When it is complete, ‘Running’ will display beside each option.
  • 41. 41 Figure 13: Installation snap3 To make your testing server start automatically when your computer starts, you can check the Svc checkbox beside both options. NOTE: If the XAMPP Control Panel is not already running, go to C:xamppcontrol.exe to open the panel. Step 3: A little cleanup With your testing server now installed and running, there are a few final steps you should take to make sure everything is configured to work perfectly. 1. Open a web browser such as Firefox or Internet Explorer.
  • 42. 2. In the address bar,enter http://localhost; You should see a XAMPP splash screen with 42 language options 3. Choose your preferred language; You should now see a confirmation window informing you that ‘You have successfully installed XAMPP on your system’. This interface allows you to configure certain XAMPP settings. Security Settings Best practices encourage you to always have a password specified for your MySQL database, and we think you should too. 4. From the side navigation, choose Security. Figure 14: Installation snap4 5. Click the link shown in the graphic below. Figure 15: Installation snap5
  • 43. The next page displays the login credentials for your MySQL database. The username (SuperUser), 'root' is created for you automatically and is the username you can use for accessing your MySQL database or creating a database connection. 6. In the new password field, enter a password for accessing your database. 7. Enter the password again in the second text field. 8. Choose Password Changing to confirm your new password. You’ve now determined the username and password that you will use every time you need to access your database, or create a database connection in Dreamweaver. Each time you change your password, you will need to restart your testing server for the change to take effect. Access the Control Panel by double-clicking the XAMPP icon in your taskbar. Choose Stop and then Start beside the MySQL option to restart the database. 43 Test the PHP Installation Lastly, you should test your PHP Installation to make sure everything is set up for you to load PHP pages on your local computer. 9. Navigate back to the http://localhost page you were at before. 10. Click the phpinfo() option from the side navigation.
  • 44. 44 Figure 16: Installation snap6 If you see a PHP page similar to this, you have completed setting up your PHP/MySQL testing server. Setting up the System 1 Copy all the files of the System from Evote/System Files to where xampp folder is /xampp/htdocs/.. 2 Navigate to php folder 3 Select Dbcon.php file and open 4 Change the username, Password of the database 5 Save the file 6 Navigate to data link 7 Change the username and the password of the variable as per your database Setting up the Database 1. Open phpmyadmin by going to the URL http://localhost/phpmyadmin 2. Create a new database title evote 3. Import the database file(voters.sql) from the database folder in the Evote folder Accessing the System Open web browser (Mozilla, I.E) Type URL http://localhost/eVote/ Risk associated with system Uses CSS (Cascading Style Sheets) so may not be compatible with all Browsers.
  • 45. APPENDIX A: SAMPLE CODE 45 Login Page:
  • 46. 46 Registration Page: Voting Page:
  • 47. 47
  • 48. APPENDIX B: REFERENCES 48 B.1 Webliograpy W3Schools www.w3schools.com B.2 Bibliography Janet Valade, PHP and MySql for Dummies, 3rd Edition Earle Castledine and Craig Sharkie, First Edition February 2010, JQuery from Novice to Ninja Rusell J.T Dyer ,MYSQL In A Nutshell (Page 3,14 ,40), 2nd Edition