You are on page 1of 127

The Development and Evaluation of Electronic Voting System for the

Supreme Student Government of Lyceum of Alabang

A Research Paper

Presented to the Faculty of

Senior High School of

Lyceum of Alabang

In Partial Fulfillment

of the Requirements of

Research Project

By:

Loslos, Gabriel James Benedict

Panaligan, Kyfer

Sindac, Arcel Antoinette

Tablada, Johnrol

Valenzuela, Mykyla Jaimie

Velado, Justin Kurt

Vermug, Michael Rey

June 2023

i
APPROVAL SHEET

This is to certify that this project, titled “The Development and


Evaluation of Electronic Voting System for the Supreme Student
Government of Lyceum of Alabang”, prepared and submitted by Loslos,
Gabriel James Benedict , Panaligan, Kyfer , Sindac, Arcel Antoinette ,
Tablada, Johnrol , Valenzuela, Mykyla Jaimie , Velado, Justin Kurt ,
Vermug, Michael Rey, in partial fulfillment of the requirements for RESEARCH
PROJECT, is hereby endorse

MS. ALEXYS JAIRA E. FAZ


Research Adviser

Approved and accepted in partial fulfillment of the requirements for RESEARCH


PROJECT, by Information, Communication, and Technology faculty and panel.

Mr. Andro Philip G Banag *MIT Mr. Rynl Jude. G. Jusi


Panel Member Panel Member

Mr. Bobby D. Deladia Mr. John Lloyd S. Soneja


Panel Member Panel Member

The Senior High School Department approved and accepted this paper in partial
fulfillment of the requirements for RESEARCH PROJECT

ENGR. RODRIGO P. CALAPAN, MAED, LPT

ii
SHS Principal
ACKNOWLEDGEMENTS

We would like to thank God above all else for allowing us to carry out our

research study. It would not be possible for us to accomplish our goals if God

had not blessed us, and if he had not provided us with the needed strength,

energy, and determination for the ordeal. We are forever grateful for His love and

compassion, and we pray for Him to continue to support us throughout our

academic journey and our life.

We extend our heartfelt appreciation to our research teacher for her

invaluable guidance, wisdom, and dedication in nurturing our research skills.

Your expertise, patience, and unwavering belief in our potential have been

instrumental in shaping us into the researchers we are today. We are forever

grateful for your mentorship.

We would like to express our sincere appreciation to the esteemed

panelists and ICT teachers who graciously shared their time, expertise, and

valuable insights during the evaluation of our research study. Your expert

feedback has significantly aided us in improving our research output. We are

humbled by your expertise and grateful for your contribution.

Our deepest gratitude goes to our family for their unconditional love,

encouragement, and unwavering belief in our abilities. Your unwavering support,

understanding, and sacrifices have been the bedrock of our research journey.

Your belief in us has been our constant motivation, and we are forever grateful

for your presence in our lives.

iii
ABSTRACT

This research study aims to develop and evaluate a Supreme Student

Government Voting System for Lyceum of Alabang, that can be used to provide a

more convenient election for both the election administrators.and the voters

participating in the election. The researchers used the Descriptive-

Developmental method, which is a kind of quantitative research design that is an

appropriate choice when evaluating the characteristics of a research product.

The researchers used surveys for the system evaluation, which had 2 sets: End

users and Professionals. The software evaluation involved feedback from end

users and professionals. The majority of end user respondents were female,

accounting for 54.5% of the total, while male respondents accounted for 45.5%.

The strand ICT had the highest number of respondents, while STEM and HE had

fewer respondents, and the other strands had no respondents. In the

professional evaluation, the majority of respondents were male (80%), and all

respondents were from Lyceum of Alabang. According to the software evaluation

by end user and professional, the system demonstrated strong performance in

terms of Functionality, Usability, Reliability, Efficiency, Security, and Portability.

The positive feedback from both end users and professionals indicates that the

system is highly regarded and meets the required standards. However, some

areas, such as compatibility and maintainability, may require further

improvement.

iv
TABLE OF CONTENTS

Preliminary Pages………………………………………………………………………i

Title Page……………………………………………………………………........i

Approval Sheet............................................................................................ii

Acknowledgements.....................................................................................iii

Abstract......................................................................................................iv

Table of Contents........................................................................................v

List of Tables.............................................................................................vii

List of Figures...........................................................................................viii

Chapter 1: The Project and its Context..............................................................1

Project Context............................................................................................1

Background of the Study.............................................................................2

Conceptual Framework...............................................................................3

Statement of the Problem...........................................................................3

Scope and Limitation...................................................................................4

Significance of the Study.............................................................................5

Definition of Terms......................................................................................5

Chapter 2: Review of Related Literature and Studies

Local Literature...........................................................................................9

Foreign Literature......................................................................................11

Local Studies.............................................................................................13

Foreign Studies.........................................................................................14

Chapter 3: Research Methodology and Technical Background....................17

v
Research Design………………………………………………………………17

Project Design…………………………………………………………….……17

Software Development Methodology…………………………………..……18

Unified Modelling Language Program User Interface…………………......20

User Interface……………………………………………………..……………21

Hardware Interface…………………………………………………………….26

Communication interface……………………………………………………..26

Evaluation Procedure…………………………………………………………26

Respondents of the Study……………………………………………………27

Sampling Technique…………………………………………………………..27

Data Gathering Procedure……………………………………………………27

Research Instrument…………………………………………………………..27

Statistical Treatment…………………………………………………………..28

Chapter 4: Results and Discussion

Demographics...........................................................................................29

Software Evaluation Characteristics for End-User....................................31

Software Evaluation Characteristics for Professionals..............................36

Chapter 5: Summary, Conclusion, and Recommendations...........................48

Summary of Findings................................................................................48

Conclusion................................................................................................51

Recommendations....................................................................................53

References..........................................................................................................55

Appendices... .....................................................................................................57

vi
LIST OF TABLES

Demographics....................................................................................................26

Table 1: End User Gender........................................................................26

Table 2: Professional Gender...................................................................26

Table 3: End User Strand..........................................................................27

Table 4: Professionals Company/Institution..............................................28

Software Evaluation Characteristics for End-User.........................................28

Table 5: End-User Functionality................................................................28

Table 6: End-User Usability......................................................................29

Table 7: End-User Reliability.....................................................................31

Table 8: Overall Evaluation for Software Evaluation for End-Users..........32

Software Evaluation Characteristics for Professionals.................................33

Table 9: Professional Functionality...........................................................33

Table 10: Professional Usability................................................................34

Table 11: Professional Reliability..............................................................36

Table 12: Professional Efficiency..............................................................37

Table 13: Professional Compatibility.........................................................38

Table 14: Professional Security................................................................40

Table 15: Professional Maintainability......................................................41

Table 16: Professional Portability.............................................................42

Table 17: Overall Software Evaluation Characteristics for Professionals.43

vii
LIST OF FIGURES

Figure 1: Conceptual Framework IPO Model....................................................3

Figure 2: The Prototyping Model......................................................................15

Unified Modelling Language Program User Interface....................................17

Figure 3: User Modeling Language...........................................................17

Figure 4: Use-Case Diagram....................................................................18

User Interface.....................................................................................................18

Figure 5: Login Page.................................................................................18

Figure 6: Main Page..................................................................................19

Figure 7: Account Settings........................................................................20

Figure 8: Admin page...............................................................................20

Figure 9: Election name page...................................................................21

Figure 10: Add candidate page.................................................................21

Figure 11: Graph Result page...................................................................22

Figure 12: add account page...................................................................22

Figure 13: Laptop Hardware Interface.............................................................23

Figure 14: Communication interface................................................................23

viii
CHAPTER 1

The Problem and its Background

Project Context

The Supreme Student Government commonly referred to as the SSG is a

legislative and authoritative organization in Lyceum of Alabang tasked with

representing the students and implementing new things that are in their best

interests. Much like government elections, they campaign from classroom to

classroom discussing and explaining the plans they have when they are elected

to a position in the SSG. Students can decide who to vote for depending on

which candidate has the plan that suits their preferences the best.

A voting system is a software that students can use to cast their votes.The

voting system will have the list of candidates that voters can choose from, and

the collected votes will be stored in a database. Electronic voting essentially

removes the difficulties of voting such as voters waiting in long lines for hours,

the unforgiving weather, and so on. Electronic voting may also reduce the

amount of cheating that happens in traditional voting, since the vote counting is

performed by an unbiased computer and the transaction is automatic and

instantaneous. A voting system like this can be used for the SSG elections to

make the entire process faster and easier.

The SSG Department voting method has an issue since it uses a Google

Form, which may be troublesome for the students in charge of it. Many students

can impact the vote because they can establish accounts that allow them to vote

several times.

1
Background of the Study

The researchers noticed a lack of a voting system used for SSG elections

in Senior High School at Lyceum of Alabang. This has inspired the researchers

to develop a voting system as the product output of this research study.

Voting system is a kind of electronic voting that uses computers

connected to the Internet. Its functionality may vary from merely transmitting

tabulated results to a functional voting system. Although, for a voting system to

be considered fully functional, it must have the following important features. The

voting system must have a way for ballots to be inputted and recorded. The

recorded ballots must also be safely and securely stored on a server or

database, so that the data can be later tabulated for election results (Wikipedia

contributors, 2022).

Strictly speaking, electronic voting is a kind of voting method where voters

cast their votes with the help of a computer, usually connected to the Internet–

including their own personal computers inside their homes. Due to the

There are many benefits in using our voting method. It can provide

accessibility and ease to the voters by removing the need to be present at the

voting venue and waiting in long lines. It is more secure than traditional voting

where paper ballots are used, because it is safely stored on a database instead

of physical storage. It offers accuracy because a computer will keep count of the

votes, rather than a human, removing all chances of human error to occur.

Because of the higher accessibility, there is a higher chance that the

engagement rate of voters will increase because voting is easier to do. Finally, it

2
is cheaper than a paper ballot voting method, because you wouldn’t need to print

hundreds of voting ballots (YesElections, 2020).

Conceptual Framework

Figure 1: Conceptual Framework IPO Model

Statement of the Problem

The researchers aim to develop an evaluation model of a voting system

used in the elections of the SSG in Lyceum of Alabang.

Specifically, it aims to answer the following questions:

1. How will the voting system compare against existing alternatives?

2. What will be the level of satisfaction of the users of the voting system in

terms of:

a. Accessibility

b. Accuracy

3
c. Security

d. Reliability

e. Convenience

f. Cost-Efficiency

3. What other improvements can be made on the voting system in terms of:

a. Registration

b. Vote-counting system

c. Vote-count database

d. Privacy and security

Scope and Limitations

The coverage of this research study consists of developing and evaluating the

use of a voting system. It only covers the elections of officers in the Supreme

Student Government. The voting system is only available to senior highschool

students in Lyceum of Alabang. This study does not cover the use of the voting

system for other elections other than the SSG elections. Elementary, junior

highschool, and college students are not covered by this study.

The study only covers the use of VB.NET to create the product output of

the study, inside the Visual Studio environment. It, however, does not include the

use of other programming languages (i.e. Java, C#, HTML, etc) to create the

product output, and does not include the use of other programming environments

(i.e Eclipse, Visual Studio Code, Notepad++, etc).

4
Significance of the Study

This research intends to assist the SSG organization in developing a better

voting process that will benefit voters, particularly students, and ensure fair and

secure voting. We want to give adequate information and a voting method that is

both helpful and convenient for the users through this research.

Voters. The students who will participate in the election as votes will

benefit from the product output of this study because it helps them vote more

conveniently compared to the traditional paper ballot method of voting.

Election Coordinators. The people in charge of coordinating the

elections will benefit from the product output of this study because it makes their

job immensely easier, if not removing it altogether.

School Administration. The output of this research study can benefit the

school administration because it provides a secure election by means of this

voting system.

Future Researchers. This research study can be used to be based on

future research studies as a reference point by other researchers.

Definition of Terms

 Ballots: Ballots refer to the official voting papers or documents that contain

the choices or preferences of the voters. These can be physical paper

ballots or electronic forms used for recording votes in an election or

decision-making process.

5
 Candidates: Individuals who are running for a position in an election, in

this case, the candidates would be students vying for positions in the

Supreme Student Government (SSG).

 Computer: A computer is an electronic device that can perform various

tasks by executing programmed instructions and manipulating data. In the

context of voting, computers are used to facilitate electronic voting

systems, including ballot input, vote recording, and data processing.

 Database: A database is a structured collection of data that is organized,

stored, and managed in a systematic manner. In the context of voting

systems, a database is used to securely store and manage the recorded

ballots and related information. It provides a reliable and structured means

of storing and retrieving voting data.

 Elections: Elections refer to the process of choosing individuals for specific

positions or making decisions through voting. It is a democratic method

where eligible individuals participate in casting their votes to select their

preferred candidates or options.

 Electronic voting: A method of voting where electronic systems, such as

computers or electronic devices, are used to cast and record votes. It

eliminates the need for traditional paper ballots and manual vote counting.

 Integrated Development Environment (IDE): An Integrated Development

Environment is a software application that provides comprehensive tools

and features to support software development. It typically includes a code

6
editor, debugger, compiler, and other tools to streamline the coding

process and facilitate software development tasks.

 Programming languages: Programming languages are formal languages

used to write computer programs or instructions that can be executed by

computers. They provide a set of rules and syntax for writing code,

enabling developers to create software applications and systems.

 Software: A collection of programs, data, and instructions that are used to

operate a computer or perform specific tasks. In the context of voting, the

software refers to the system or application used to facilitate the electronic

voting process.

 Supreme Student Government (SSG): An organization in Lyceum of

Alabang that represents the students and works towards implementing

initiatives that are in their best interests.

 System: A collection of interrelated components, modules, or programs

that work together to perform specific functions or tasks. It encompasses

both the software itself and the underlying hardware infrastructure

necessary for its operation. A software system typically consists of

multiple modules or components that interact with each other to achieve a

desired outcome.

 VB.NET: VB.NET is a programming language and development

framework primarily used for building Windows-based applications. It is an

object-oriented language that is part of the Microsoft .NET framework,

7
allowing developers to create desktop, web, and mobile applications using

Visual Basic syntax.

 Visual Studio: Visual Studio is a popular Integrated Development

Environment (IDE) developed by Microsoft. It provides a comprehensive

set of tools, editors, and debuggers to support software development

across multiple programming languages. Visual Studio is widely used for

developing applications on the Microsoft platform, including VB.NET

applications.

 Vote counting: The process of tabulating and tallying the votes cast in an

election. It involves determining the number of votes received by each

candidate or option and declaring the results based on the counted votes.

 Voters: Voters are individuals who are eligible to participate in an election

or decision-making process by expressing their preferences or choices.

They are the key participants in the voting process, and their votes

determine the outcome of the election. Voters can be

8
CHAPTER 2

Review of Related Literature

This chapter presents the relevant literature and studies for the

researcher. It also presents the synthesis of the art to fully understand the

researcher for better comprehension of the study.

Local Literature

According to Wikipedia Contributor(2022), Since the 2008 Autonomous

Region in Muslim Mindanao general election, the voters in the Philippines have

to shade the oval that was indicated before the candidate's name, and a voting

machine manufactured by Smartmatic automatically counts each ballot as it is

fed into it. The results are then printed as the election return and sent

electronically to the city or municipal Board of Canvassers.

In 2016, for the third time in a row, the Philippines automated their elections

using electronic vote counting machines. The deployment of 92,500 of these

machines was the largest in the world. Brazil and India, countries which also use

technology to process their votes, employ e-voting instead of an automated

count.

For the 2019 elections, the COMELEC presented its source code for review by

accredited U.S. software testing company Pro V&V in an effort to make the

automated elections transparent.[1]

The Philippines stands today with Brazil, Estonia, Belgium and Venezuela at the

forefront of election technology adoption.

9
According to Smartmatic(2010), in May 2010, the Republic of the

Philippines carried out the first automated elections in Southeast Asia, the largest

election a private company has ever undertaken. 50.7 million voters spread over

7,107 islands used 82,200 optical scanner voting machines to cast over 800

million votes to whittle 85,000 candidates down to 17,000 posts. For the first

time, Filipinos got to learn results on Election Day. In just one and a half hours

after the polls closed, 40% of results had been transmitted and tallied. Not only

did we deliver results quickly. We also delivered results that were accepted by all

participating political parties, thanks to the transparency of the system. And in

doing so we made a significant contribution to this nation’s democratic process.

According to National Democratic Institute(2013), The transition to

electronic technologies in the Philippines’ elections was the product of a long and

arduous process that started in 1992, but was not fully implemented until 2010. It

began when the Commission on Elections (COMELEC) 60 adopted its strategic

plan, which called for the modernization of the electoral process. Subsequent

studies conducted by two international consultants gave further impetus to

automate elections . The primary reason cited for moving to electronic

technologies was to reduce the time for counting and tabulation. In previous

elections, counting lasted as long as 18 hours in each polling station, and

tabulation could take up to 40 days. This caused anxiety among the public and

political contestants, increasing the risk of election-related violence and reducing

10
confidence in the electoral process. Other reasons for the change were an

intention to reduce fraud and errors in counting and canvassing results.

Within one year from the adoption of its strategic plan, the commission

constituted a team to study available technologies, which at that time included

optical mark recognition (OMR), punch card and direct recording electronic

(DRE) systems. In 1995, the first election automation law was passed,

authorizing the COMELEC to conduct a nationwide demonstration of an

electronic election system and to pilot-test it in the March 1996 regional elections

in the Autonomous Region in Muslim Mindanao (ARMM). Following its perceived

success, in 1977 Congress enacted the Election Modernization Act that

mandated the COMELEC to use an automated election system (AES) for the

process of voting, counting votes and canvassing/consolidating the results of the

national and local elections.61

For various reasons ranging from late allotment of funds and time constraints, to

the invalidation of contracts to supply the machines, the 1998, 2001, 2004 and

2007 national elections remained manual. The COMELEC, however, was able to

automate the 2008 regional polls in the ARMM using DRE machines in some

locations and OMR technology in others, for the purpose of determining the most

suitable system for nationwide use in 2010.

Foreign Literature

According to Herrnson(2008), voting systems were developed, in part, to

make voting easier and to boost voters’ confidence in the election process. Using

11
three new approaches to studying electronic voting systems—focusing on a

large-scale field study of the usability of a representative set of systems—we

demonstrate that voters view these systems favorably but that design differences

have a substantial impact on voters’ satisfaction with the voting process and on

the need to request help. Factors associated with the digital divide played only a

small role with respect to overall satisfaction but they were strongly associated

with feeling the need for help. Results suggest numerous possible improvements

in electronic voting systems as well as the need for continued analysis that

assesses specific characteristics of both optical scan and direct recording

electronic systems.

According to Jordanian National Constitution(2023), the Independent

Election Commission (IEC) is responsible, as an institutional mission, to organize

and carry out elections. The IEC was established in 2012 as an unbiased

organization involved in overseeing and directing the electoral process without

interference or pressure from any party, with the aim of ensuring the holding of

parliamentary elections in accordance with international standards. However, the

main objective for the 21st century is a need felt by the IEC to prepare to reach

the levels of technological development required to face the new century full of

challenges and expectations. This means that the IEC should act promptly,

keeping up with the progress and demands of this modern world that requires

higher rates of efficiency, economy, speed, and responsibility in the fulfillment of

its public functions.

12
According to Boldin(2005), the present invention is a computerized

electronic voting system that employs an easy-to-use, paperless, voting station to

collect and tally votes. In one embodiment, the voting system includes a voting

server (12, 52, 62) coupled to a voter security card station (24, 56, 66) and a

plurality of voting stations (28, 70). Alternatively, the voting system may include a

voting server that is connected to an existing computer network (50) and coupled

to a voter security card station. In another embodiment of the invention, the

voting system comprises a voting server connected to a plurality of work stations

or voting stations and a voter security card station, forming a computer network.

The system software installed on the voting server preferably includes a voting

application and an administrative application for controlling operation of the

voting process. Important aspects of the invention include the ability to print a

voter security card for each registered voter at the polling places, the functionality

of multiple voting stations running on a single computer or server, and the

auditability of voting results.

Local Studies

According to Miranda, et al.(2012) Prior to 2010 Elections, the Philippine

elections have been manual, making the process very slow and tiresome.

Advantages and flaws were outlined through review of several approaches to

manual and automated elections. Database management and user interface

development standards were focused to develop a vote integral solution

embodied in a Direct Recording Electronic (DRE) Automated Election System

13
(AES). Based on this pool of database management algorithms, programming

tools, and user friendliness methods and metrics, the researchers developed a

DRE voting ballot that aims to keep the DLSU vote count integral during student

electronics. The system implemented contains three (3) modules, the login,

Ballot and Summary modules, to facilitate the vote gathering portion of the DLSU

student elections. This DRE voting ballot was put through a summative usability

test consisting of 100 DLSU student respondents and found to meet the

minimum satisfactory requirements of the researchers. After research and

software development, the DRE voting ballot now embodies the system goals set

at the start of this thesis.

Foreign Studies

According to Ansolabehere & Stewart(2005), Recent research related to

voting systems has consisted mainly of aggregate studies of residual votes

(which combine overvotes, undervotes, and spoiled ballots into a single

measure). Initial studies have provided important foundational work by showing

that voter errors vary by location according to whether traditional paper ballot

optical scan voting systems, mechanical lever systems, or DREs were used (e.g.,

Caltech/MIT, 2001; Ansolabehere & Stewart, 2005). More recent studies relying

on the residual vote have explored the effects of precinct-based versus central

optical scan systems and various aspects of ballot formats (Bullock & Hood,

2002; Kimball & Kropf, 2005, 2006). Another focus has been on the effects of

education, race, and other demographic factors on voter errors. Most of the

14
research 582 American Politics Research Downloaded from apr.sagepub.com by

guest on December 9, 2015 reports that precincts comprising members of

traditionally underrepresented groups tend to produce more residual votes than

do others (Ansolabehere & Stewart, 2005; Brady, Buchler, Jarvis, & McNulty,

2001; Kimball & Kropf, 2005; Tomz & Van Houweling, 2003), although Herron

and Sekhon (2005) find that some undervoting on the part of Blacks may be

strategic and related to the absence of an African American candidate on the

ballot.

According to see Traugott et al.(2008), These studies have made

significant contributions to the understanding of election technology, but they are

limited by their reliance on a common methodology: They are all based on the

residual vote (or some portion of that measure), which captures only a portion of

the kinds of problems voters can have. Most gloss over significant differences

among voting interfaces that affect how citizens actually cast their ballots, and

because most rely on aggregate data, they cannot measure some aspects of

individual behavior that could be the source of the voting errors they report.

Moreover, studies using aggregate residual vote data must take special care to

separate polling place votes from absentee votes as the voting systems used for

these two methods of voting might differ.

According to Mapping(2023), an electoral system or voting system is a

set of rules that determine how elections and referendums are conducted and

15
how their results are determined. Electoral systems are used in politics to elect

governments, while non-political elections may take place in business, non-profit

organizations and informal organizations. These rules govern all aspects of the

voting process: when elections occur, who is allowed to vote, who can stand as a

candidate, how ballots are marked and cast, how the ballots are counted, how

votes translate into the election outcome, limits on campaign spending, and other

factors that can affect the result. Political electoral systems are defined by

constitutions and electoral laws, are typically conducted by election commissions,

and can use multiple types of elections for different offices.

16
CHAPTER 3

Research Methodology and Technical Background

Research Design

The researchers used the Quantitative Descriptive-Developmental

Method. A quantitative research design means the research uses numerical data

and statistical treatment. A descriptive research design is a kind of non-

experimental research design that aims to describe or evaluate the

characteristics of the research subject. Developmental research is a kind of

research design that records change throughout time. In the case of this

research study, the researchers developed and evaluated a voting system.

Project Design

The Voting System focuses on being used to facilitate elections for the

Supreme Student Government. The system can be used by the voters to cast

their votes, which will be securely stored inside a database.The voting system

can also tabulate and present the votes gathered from the election. The design of

the voting system was also simplified to be minimalistic to appear cleaner and

promote ease-of-use. The primary color used is similar to the Lyceum of Alabang

palette, and the Lyceum of Alabang logo is shown to the right, while the login

system is located on the left. The background also indicates the color of the

school. In the Home, Election, Information, and Admin pages, contains text etc.

17
Software Development Methodology

The researchers used the Prototyping Model as their software

development methodology. A prototype will be designed, programmed, and

tested continuously until it showcases satisfactory performance before it can be

considered a final product.

Figure 2: The Prototyping Model

Planning and Analysis

During this phase will the researchers determine the objective of the

study, and the requirements of the system and the user, as well as everything

else that is needed for the product

Designing

During this phase the researchers will begin to develop key ideas on how

their system will operate, as well as creating the graphical interfaces to be coded

later.

Programming

During this phase is where programming begins. After identifying the

objectives and creating the designs, the programmers are tasked to add

functionality to the system.

18
Testing

During this phase, the system is tested by the researchers whether it

shows satisfactory results to move to the next phase or return to the Designing

phase for further development.

Implementation

During this phase, the researchers prepare the research output to support

its intended functions. It includes user notification, user training, installation of

hardware, installation of software onto production computers, and integration of the

system into daily work processes.

Maintenance

Even after the system is deployed, errors can come up anytime. This

phase focuses on fixing errors and improving the system to adapt to its new

environment.

19
Unified Modelling Language Program User Interface

Figure 3: User Modeling Language

20
Figure 4: Use-Case Diagram

User Interface

21
Figure 5: Login Page

The login page is where the user inputs his or her username and

password to authenticate his or her own identity. It is also a layer of security

against people with malicious intent to the system.

Figure 6: Main Page

The main page shows where you can vote which candidate you want.

22
Figure 7: Account Settings

The account settings where you can change username and password.

Figure 8: Admin page

The admin page shows where you can create a new election or end election, edit

candidates, view the current vote, add user account and view archived users.

23
This is where you can name the election you will start.

Figure 10: Add candidate page

Add a candidate where you can add all the candidates and if it is president, vice

president etc.

24
Figure 11: Graph Result page

Graph result shows all the current vote results of the election.

Figure 12: add account page

Voters can input their information and create a user account to access the

system and its features.

25
Hardware Interface

Figure 13: Laptop Hardware Interface

Communication interface

Figure 14: Communication interface

Evaluation Procedure

In This phase, we will start giving the Google form and in the google form you will

see the links that show how our system works so they can have an idea on what

will answer in google form.

26
Respondents of the Study

There were two sets of the study: End user and Professional evaluation.

The end users were students who will participate as voters using the system,

while the Professionals are IT Experts. There were 11 end user respondents and

5 professional respondents.

Sampling Technique

The researchers used the Convenience sampling method. According to

McCombes (2023), convenience sampling is primarily determined by

convenience to the researcher, and includes factors such as ease-of-access,

geographical proximity, and existing contact with persons of interest. Often called

“accidental sampling” because the respondents of the study happen to be the

ones nearby the researchers.

Data Gathering Procedure

The researchers used the survey questionnaire method for gathering data

for both the end user and professionals evaluation.

Research Instrument

For the end user evaluation, the researchers used Google Forms as a

questionnaire for their survey medium to collect the data. For the professional

evaluation, the researchers used printed survey questionnaire forms. The

27
researchers used Google Sheets to store their collected data and perform

statistical treatment on it. For the End-Users, the questionnaire contains

Functionality, Usability, and Reliability. For Professionals, the questionnaire

contains Functionality, Usability, Reliability, Efficiency, Compatibility, Security,

Maintainability, and Portability.

Statistical Treatment

The researchers used the following statistical treatments:

1. Frequency. The researchers tally the amount of times a gender, section,

or company/institution was picked.

2. Percentage. The researchers will calculate how much of the entire

population picked a given demographic. The following is the percentage

f
for formula: %= ∗100 where f is the frequency and n is the sample
n

population.

3. Weighted Mean. Weighted mean find the average of numbers where

some numbers hold more weight than others. For the research, this is the

formula used: W =
∑ wX , where W is the weighted mean, w is the weight
∑w
of the X value, and X is the data values to be averaged.

4. Verbal Interpretation. Based on the weighted mean, whether it is

Excellent, Good, Fair, or Poor.

28
CHAPTER 4

Results and Discussion

This chapter represents the results of the study that was statistically

treated and tabulated.

Demographics

End User Gender Frequency Percentage

Male 5 45.5%

Female 6 54.5%

Other 0 0%

Total 11 100%

Table 1 : End User Gender

The table above shows that there are 11 respondents for the end user

evaluation. Most of the respondents are female, with six (6) covering 54.5% total

respondents while male have five (5) respondents covering 45.5% of the overall

respondents.

Professional Gender Frequency Percentage

Male 4 80%

Female 1 20%

29
Other 0 0%

Total 5 100%

Table 2 : Professional Gender

The table above shows that there are 5 respondents. Most of the

respondents are male, with six (6) covering 80% total respondents while there

was (1) female respondent covering 45.5% of the overall respondents.

End User Strand Frequency Percentage

STEM 2 18%

HUMSS 0 0%

ABM 0 80%

ICT 6 54%

HE 3 27%

GAS 0 0%

AI 0 0%

Total 11 100%

Table 3 : End User Strand

The table above shows the total number of respondents of the end user

evaluation and the percentage for the strand. Most of the respondents are ICT,

with six (6) respondents covering 54% of overall total. The number of

30
respondents For HE has three (3) covering 27% of the overall total and STEM

with two (2) covering 18% of overall total. Meanwhile the other strand are zero

(0) respondents.

Professional Frequency Percentage

Company/Institution

Lyceum of Alabang 5 100%

Total 5 100%

Table 4 : Professionals Company/Institution

The table above shows the company/institution that the professional

respondents were affiliated with. All of them are under Lyceum of Alabang.

Software Evaluation Characteristics for End-User

Functionality Weighted Mean Verbal Interpretation

Sustainability. Degree to 3.36 Excellent

which the set of functions

covers all the specified

tasks and user objectives

Accurateness. Degree to 3.27 Excellent

which the system provides

the correct results with the

needed degree of

31
precision.

Compliance. Degree to 3.64 Excellent

which the system complies

with laws and rules.

Total Average 3.42 Excellent

Table 5 : End-User Functionality

The table above displays the weighted mean for Sustainability with 3.36,

Accurateness with 3.27 and Compliance with 3.63, with the total mean for

Functionality is 3.42 with the verbal interpretation of “Excellent”.

Usability Weighted Mean Verbal Interpretation

Recognizability. Degree 3.36 Excellent

to which the system

features can be recognized

by the user.

Learnability. Degree to 3.18 Good

which the system can be

intuited or learned by the

user.

Operability. Degree to 3.18 Good

which the system can be

32
operated by the user, and

has attributes that make it

easy to operate and

control.

User-error protection. 3.27 Excellent

Degree to which the

system can handle errors

made by the user, system

error etc.

User-Interface aesthetics. 3.18 Good

Degree to which the

system user interface

appears as aesthetic or

eye-pleasing.

Accessibility. Degree to 3.18 Good

which the system can be

accessed by the user and

addresses the

discriminatory aspects

related to equivalent user

experience for people with

disabilities.

Total Average 3.22 Good

33
Table 6 : End-User Usability

The table above shows how weighted mean for Recognizability with 3.36,

learnability with 3.18, Operability with 3.18, User-error protection with 3.27, User-

interface aesthetics with 3.18, and accessibility with 3.18 and the total avg in

Usability is 3.22 with “Excellent” verbal interpretation.

Reliability Weighted Mean Verbal Interpretation

Availability. Degree to 3.45 Excellent

which the system

measurement of

Availability is driven by

time loss whereas the

measurement of Reliability

is driven by the frequency

and impact of failures.

Fault Tolerance. Degree 3.09 Good

to which the system’s

likelihood that a system will

remain operational

Potentially despite failures

for the duration of a

mission

Recoverability. Degree to 3.18 Good

which, in the event of an

34
interruption or a failure, a

product or system can

recover the data directly

affected and re-establish

the desired state of the

system.

Total Average 3.24 Good

Table 7 : End-User Reliability

The table above displays that the weighted mean for Availability is 3.27

and the weighted mean for Fault Tolerance is 3.18 and Recoverability with 3.27

weighted mean, this means that the total weighted mean for Reliability is 3.24

with the Verbal Interpretation of “Excellent”.

Overall Evaluation Weighted Mean Verbal Interpretation

Functionality 3.42 Excellent

Usability 3.22 Good

Reliability 3.24 Good

Total 3.29 Excellent

Table 8: Overall Evaluation for Software Evaluation for End-Users

35
The table above displays all total average weighted mean for Functionality

with 3.42, Usability with 3.22, Reliability with 3.24 and the Total weighted mean is

3,29 with “ Excellent “ verbal interpretation.

Overall Software Evaluation Characteristics for Professionals

Functionality Weighted Mean Verbal Interpretation

Sustainability. Degree to 3.8 Excellent

which the set of functions

covers all the specified

tasks and user objectives

Accurateness. Degree to 3.4 Excellent

which the system provides

the correct results with the

needed degree of

precision.

Compliance. Degree to 3.4 Excellent

which the system complies

with laws and rules.

Total Average 3.5 Excellent

Table 9 : Professional Functionality

The table above displays all total average weighted mean for Functionality

for the professional interview. Sustainability with 3.8, Accurateness with 3.4,

36
Compliance with 3.4 and the Total weighted mean for Functionality is 3.5 with “

Excellent “ verbal interpretation.

Usability Weighted Mean Verbal Interpretation

Recognizability. Degree 3.8 Excellent

to which the system

features can be recognized

by the user.

Learnability. Degree to 3.4 Good

which the system can be

intuited or learned by the

user.

Operability. Degree to 3.8 Excellent

which the system can be

operated by the user, and

has attributes that make it

easy to operate and

control.

User-error protection. 2.8 Good

Degree to which the

system can handle errors

made by the user, system

error etc.

37
User-Interface aesthetics. 3.8 Good

Degree to which the

system user interface

appears as aesthetic or

eye-pleasing.

Accessibility. Degree to 3.2 Good

which the system can be

accessed by the user and

addresses the

discriminatory aspects

related to equivalent user

experience for people with

disabilities.

Total Average 3..47 Excellent

Table 10 : Professional Usability

The table above displays all total average weighted mean for Usability for

the professional interview. Recognizability, Operability and User-Interface

aesthetics with the same Weighted mean 3.8, Learnability with 3.4, User-error

protection with 2.8 and Accessibility with 3.2 and the Total weighted mean for

Usability is 3.47 with “ Excellent “ verbal interpretation.

Reliability Weighted Mean Verbal Interpretation

Availability. Degree to 3.4 Excellent

38
which the system

measurement of

Availability is driven by

time loss whereas the

measurement of Reliability

is driven by the frequency

and impact of failures.

Fault Tolerance. Degree 2.8 Good

to which the system’s

likelihood that a system will

remain operational

Potentially despite failures

for the duration of a

mission

Recoverability. Degree to 2.6 Good

which, in the event of an

interruption or a failure, a

product or system can

recover the data directly

affected and re-establish

the desired state of the

system.

Total Average 2.93 Good

Table 11 : Professional Reliability

39
The table above displays all total average weighted mean for Reliability for

the professional interview. Availability with 3.4, Fault Tolerance with 2.8,

Recoverability with 2.6 and the Total weighted mean for Reliability is 2.93 with

“ Good “ verbal interpretation.

Efficiency Weighted Mean Verbal Interpretation

Time behavior. Degree 4 Excellent

to which the system

Refers to the response

and processing times,

and throughput rates of

a product or system

while it's performing its

functions.

Resource Utilization. 3.8 Excellent

Degree to which the

system is the measure of

how effectively team

members work.

Specifically, it measures

what percentage of a

person's working time

40
they spend on tasks that

create billable value.

Capacity. Degree to 3.6 Excellent

which the system

Capacity is a

measurement of the

amount of performance

that has occurred.

Total Average 3.8 Excellent

Table 12: Professional Efficiency

The table above displays all total average weighted mean for Efficiency for

the professional interview. Time behavior with 4, Resource Utilization with 3.8,

Capacity with 3.6 and the Total weighted mean for Efficiency is 3.8 with

“ Excellent “ verbal interpretation.

Compatibility Weighted Mean Verbal Interpretation

Co-existence. Degree 3.2 Good

to which the application

can co-exist with other

systems without causing

problems.

41
Interoperability. Degree 3 Good

to which the product or

system interacts and

functions with other

systems.

Total Average 2.06 Fair

Table 13: Professional Compatibility

The table above displays all total average weighted mean for Compatibility

for the professional interview. Co-existence with 3.2, Interoperability with 3, and

the Total weighted mean for Compatibility is 2.06 with

“ Fair “ verbal interpretation.

Security Weighted Mean Verbal Interpretation

Confidentiality. Degree to 2.6 Good

which the system keeps user

data confidential from other

users.

Integrity. Degree to which 3.4 Excellent

the system has when it

performs its intended function

in an unimpaired manner,

free from unauthorized

42
manipulation of the system,

whether intentional or

accidental.

Accountability. Degree to 3.4 Excellent

which the system accepts

responsibility for honest and

ethical conduct towards

others.

Authenticity. Degree to 3.4 Excellent

which the system can be

property of being genuine

and being able to be verified

and trusted.

Total Average 3.2 Good

Table 14: Professional Security

The table above displays all total average weighted mean for Security for

the professional interview. Confidentiality with 2.6, Integrity with 3.4, and

Accountability and Authenticity are both with 3.4, And the Total weighted mean

for Security is 3.2 with “ Good “ verbal interpretation.

Maintainability Weighted Mean Verbal Interpretation

Reusability. Degree to 3 Good

43
which the system can

ease with which the

product or portions of the

product can be reused in

the development of other

systems.

Analyzability. Degree to 3.4 Excellent

which the system can

analyze, inspect the

capability of the software

product to be diagnosed

for deficiencies or

causes of failures in the

software, or for the parts

to be modified to be

identified.

Modifiability. Degree to 2.4 Fair

which the system can

accept new features and

uses.

Testability. Degree to 2.8 Good

which the system can be

44
tested for maintenance.

Total Average 2.9 Good

Table 15: Professional Maintainability

The table above displays all total average weighted mean for

Maintainability for the professional interview. Reusability with 3, Analyzability with

3.4, and Modifiability with 2.4, and Testability with 2.8, And the Total weighted

mean for Maintainability is 2.9 with “ Good “ verbal interpretation.

Portability Weighted Mean Verbal Interpretation

Adaptability. Degree to 4 Excellent

which the system can

adapt to any situation

presented by the user.

Installability. Degree to 4 Excellent

which the system can be

installed on various

platforms without error.

Replaceability. Degree 3.8 Excellent

to which the system can

be easily replaced by

better innovative

45
systems.

Total Average 3.93 Excellent

Table 16: Professional Portability

The table above displays all total average weighted mean for Portability

for the professional interview. Adaptability with 4, Installability with 4, and

Replaceability with 3.8,, And the Total weighted mean for Portability is 3.93 with

“ Excellent“ verbal interpretation.

Overall Evaluation Weighted Mean Verbal Interpretation

Functionality 3.5 Excellent

Usability 3.47 Excellent

Reliability 2.93 Good

Efficiency 3.8 Excellent

Compatibility 2.06 Fair

Security 3.2 Good

Maintainability 2.9 Good

Portability 3.93 Excellent

Total 3.22 Good

46
Table 17: Overall Software Evaluation Characteristics for Professionals

The table above displays all total average weighted mean for Functionality

with 3.5, Usability with 3.47, Reliability with 2.93, Efficiency with 3.8,

Compatibility with 2.06, Security with 3.2, Maintainability with 2.9, Portability with

3.93, and the Total weighted mean is 3,22 with “ Good “ verbal interpretation.

47
CHAPTER 5

Summary, Conclusions, and Recommendations

This chapter consists of a summary of findings, conclusions and

recommendations from a study that evaluated a network design or infrastructure.

The study evaluated different aspects of the network design, including

functionality, network layout, availability, performance efficiency, efficiency,

security, and scalability. In addition, the study concludes with recommendations

for improving the network design based on the findings.

Summary of Findings

1. There were 11 respondents for the end user evaluation and there were 5

respondents for the professional evaluation. There were a total of 16

respondents for the system evaluation survey.

2. Out of the 11 respondents in the end user evaluation, nobody belonged to

the other gender option. While Six (6) were female, accounting for 54.5%

of the overall respondents. And five (5) were male, accounting for 45.5%

of the overall respondents. For the professional evaluation, (4)

respondents were male which consisted of 80% of the total professional

respondents and only 1 was female which consisted of 20% of the total

professional respondents.

3. Out of 11 respondents in the end user evaluation, only Two (2)

respondents for strand STEM accounting for 18% of the total, three (3)

respondents for strand HE accounting for 27% of the total, Six (6)

48
respondents for strand ICT accounting for 54% of the total, and the other

strand got zero (0) respondent.

4. Out of the 5 respondents in the professional evaluation, (5) of them were

from the institution of Lyceum of Alabang, which consisted of 100% of all

respondents for this evaluation.

5. In terms of Functionality evaluated by end-users, the data reveals that

the weighted mean for Sustainability with 3.36, Accurateness with 3.27

and Compliance with 3.63, with the total mean for Functionality is 3.42

with the verbal interpretation of “Excellent”

6. In terms of Usability by end-users, the data reveals that the weighted

mean for Recognizability with 3.36, learnability with 3.18, Operability with

3.18, User-error protection with 3.27, User-interface aesthetics with 3.18,

and accessibility with 3.18 and the total avg in Usability is 3.22 with

“Excellent” verbal interpretation.

7. In terms of Reliability evaluated by end-users, the data reveals that the

weighted mean for Availability is 3.27 and the weighted mean for Fault

Tolerance is 3.18 and Recoverability with 3.27 weighted mean, this means

that the total weighted mean for Reliability is 3.24 with the Verbal

Interpretation of “Excellent”.

8. In terms of Overall Evaluation for Software Evaluation for End-Users,

the data reveals that the total average weighted mean for Functionality

with 3.42, Usability with 3.22, Reliability with 3.24 and the Total weighted

mean is 3,29 with “ Excellent “ verbal interpretation.

49
9. In terms of Functionality evaluated by Professionals , the data reveals

that all total average weighted mean for Functionality for the professional

interview. Sustainability with 3.8, Accurateness with 3.4, Compliance with

3.4 and the Total weighted mean for Functionality is 3.5 with “ Excellent “

verbal interpretation.

10. In terms of Usability evaluated by Professionals, the data reveals that all

total average weighted mean for Usability for the professional interview.

Recognizability, Operability and User-Interface aesthetics with the same

Weighted mean 3.8, Learnability with 3.4, User-error protection with 2.8

and Accessibility with 3.2 and the Total weighted mean for Usability is

3.47 with “ Excellent “ verbal interpretation.

11. In terms of Reliability evaluated by Professionals , the data reveals that

all total average weighted mean for Reliability for the professional

interview. Availability with 3.4, Fault Tolerance with 2.8, Recoverability

with 2.6 and the Total weighted mean for Reliability is 2.93 with

“ Good “ verbal interpretation.

12. For the Efficiency evaluated by Professionals, the data reveals that the

total average weighted mean for Efficiency for the professional interview.

Time behavior with 4, Resource Utilization with 3.8, Capacity with 3.6 and

the Total weighted mean for Efficiency is 3.8 with

“ Excellent “ verbal interpretation.

13. For the Compatibility evaluated by Professionals, the data reveals that

the average weighted mean for Compatibility for the professional

50
interview. Co-existence with 3.2, Interoperability with 3, and the Total

weighted mean for Compatibility is 2.06 with

“ Fair “ verbal interpretation.

14. For the Security evaluated by Professionals, the data reveals that the

total average weighted mean for Security for the professional interview.

Confidentiality with 2.6, Integrity with 3.4, and Accountability and

Authenticity are both with 3.4, And the Total weighted mean for Security

is 3.2 with “ Good “ verbal interpretation.

15. For the Portability evaluated by Professionals, the data reveals that the

total average weighted mean for Portability for the professional interview.

Adaptability with 4, Installability with 4, and Replaceability with 3.8,, And

the Total weighted mean for Portability is 3.93 with “ Excellent“ verbal

interpretation.

16. For the Overall Software Evaluation Characteristics for Professionals,

the data reveals that the total average weighted mean for Functionality

with 3.5, Usability with 3.47, Reliability with 2.93, Efficiency with 3.8,

Compatibility with 2.06, Security with 3.2, Maintainability with 2.9,

Portability with 3.93, and the Total weighted mean is 3,22 with “ Good “

verbal interpretation.

Conclusion

1. The software evaluation included feedback from both end users and

professionals. In terms of end user evaluation, the majority of respondents

51
were female, accounting for 54.5% of the total, while male respondents

accounted for 45.5%. The strand ICT received the highest number of

respondents, the strands STEM and HE had few respondents, and the

rest of the strands had no respondents at all. In terms of professional

evaluation, the majority of the respondents were male making up for 80%

of the total professional respondents, while there were only 20% female

respondents. All of the respondents in the professional evaluation were

from Lyceum of Alabang.

2. The Functionality of the software was rated as excellent by end users, with

Sustainability, Accurateness, and Compliance receiving high evaluation

scores. Usability was also rated as excellent, with Recognizability,

Learnability, Operability, User-error protection, User-interface aesthetics,

and Accessibility receiving positive ratings. The end user evaluation found

the Reliability of the software to be excellent, with Availability, Fault

tolerance, and Recoverability scoring well. The overall evaluation of the

software by end users was excellent in terms of Functionality, Usability,

and Reliability.

3. The professional evaluation of the software showcased similar results.

The Functionality was rated excellent, with sustainability, accurateness,

and compliance receiving high scores. Usability was also rated excellent,

with recognizability, operability, learnability, user-error protection, and

accessibility performing well. Reliability received a good rating, with

availability, fault tolerance, and recoverability scoring decently. Efficiency

52
and security were rated excellent, while Compatibility received a fair

rating. Portability was also rated excellent by professionals. The overall

software evaluation by professionals was good, with Functionality,

Usability, Efficiency, Security, Maintainability, and Portability being

positively assessed.

4. According to the software evaluation by end user and professional, the

system demonstrated strong performance in terms of Functionality,

Usability, Reliability, Efficiency, Security, and Portability. The positive

feedback from both end users and professionals indicates that the system

is highly regarded and meets the required standards. However, some

areas, such as compatibility and maintainability, may require further

improvement.

Recommendations

Based on the findings and conclusions the following are recommended:

1. For the Students especially in the field of Programming to find useful

information from this study as it can expand to locate helpful information

as it can deepen their understanding with developing a system and also to

program.

2. For the Teachers to provide guidance and knowledge to future students

and researchers to create a more constructed research paper regarding

the field of Programming.

53
3. For the Business Owners to choose the Right Technology: Select a

programming language, framework, and infrastructure that aligns with your

business requirements, scalability needs, and the expertise of your development

team. Consider factors like performance, security, and compatibility with existing

systems.

4. For the Future Researchers to clearly define the research goals and

objectives of your study. Understand the problem you're trying to solve or

the research questions you're aiming to answer. This clarity will guide your

programming efforts and help you focus on relevant functionalities.

5. For the IT Professionals the researchers recommend that Stay up-to-

date with the latest advancements and best practices in software

development. Continuously improve your programming skills by learning

new languages, frameworks, and technologies. Participate in developer

communities, attend conferences, and engage in knowledge-sharing

activities.

54
References

Herrnson, P., et al. (2008). Voters’ Evaluations of Electronic Voting

Systems. American Politics Research, 36(4),

10.1177/1532673X08316667.

https://doi.org/10.1177/1532673X08316667

Al-Ashoush, A., et al. (2023). The Feasibility of Adopting a Secure E-

voting Based Biometrics Authenticity: The Jordanian Parliamentary

Elections. TEM Journal, 59–65. https://doi.org/10.18421/tem121-08

Electoral system. (2023). In Wikipedia. Retrieved June 16, 2023, from

https://en.wikipedia.org/w/index.php?

title=Electoral_system&oldid=1152798146

Boldin, A. J. (2005, October). Computerized electronic voting system

United States 20050218224

https://www.freepatentsonline.com/y2005/0218224.html

The Philippines: The first-ever automated elections in Southeast Asia.

(n.d.). Smartmatic. Retrieved June 16, 2023, from

https://www.smartmatic.com/case-studies/article/the-philippines-

the-first-ever-automated-elections-in-southeast-asia/

Vote counting in the Philippines. (2022). In Wikipedia. Retrieved June 16,

2023, from https://en.wikipedia.org/w/index.php?

title=Vote_counting_in_the_Philippines&oldid=1123356136

55
Miranda, M., Sy, E., & Verceles, C. (2012). A direct recording electronic

voting system. Retrieved from

https://animorepository.dlsu.edu.ph/etd_bachelors/11289

NDI. (2013). Philippines: Choosing to Adopt Electronic Technologies. In

NDI. Retrieved June 16, 2023, from https://www.ndi.org/e-voting-

guide/philippines-CS/choosing-to-adopt-electronic-technologies

McCombes, Shona. “Sampling Methods | Types, Techniques &

Examples.” Scribbr, Mar. 2023,

www.scribbr.com/methodology/sampling-methods.

56
Appendices

A.Permission to conduct a survey

57
B. Evaluation Instrument for end-users

58
C. Evaluation Instrument for professionals

59
60
D. Tally of Responses

4 3 2 1 Total

Sustainabili 9 6 1 0 16

ty

Accuratene 7 7 2 0 16

ss

Complianc 10 5 1 0 16

Recognizab 9 6 1 0 16

ility

Learnability 6 8 2 0 16

User-error 6 6 4 0 16

protection.

User- 7 8 1 0 16

Interface

aesthetics

Accessibilit 5 9 2 0 16

Availability 8 7 1 0 16

61
Fault 4 8 4 0 16

Tolerance

Recoverabi 6 6 2 2 16

lity

Time 5 0 0 0 5

behavior

Resource 4 1 0 0 5

Utilization

Capacity 3 2 0 0 5

Co- 1 4 0 0 5

existence

Interopera 0 5 0 0 5

bility

Confidenti 0 3 2 0 5

ality

Integrity 2 3 0 0 5

Accounta 2 3 0 0 5

bility

62
Authentici 2 3 0 0 5

ty

Reusabilit 0 5 0 0 5

Analyzabil 2 3 0 0 5

ity

Modifiabili 0 2 3 0 5

ty

Testability 1 2 2 0 5

Adaptabili 5 0 0 0 5

ty

Installabili 5 0 0 0 5

ty

Replaceab 4 1 0 0 5

ility

63
E. Gantt Chart

64
F. Documentation of Evaluation Procedure

G. Researcher’s Profile

65
H. Codes

Login_Page.vb Private Sub


MistakeTimer_Tick(sender As
Imports System.IO Object, e As EventArgs) Handles
Imports System.Text MistakeTimer.Tick
If timerTick = 30 Then
Public Class Login_Page MistakeTimer.Enabled =
False
Private UserLogin As User MistakeTicker.Visible = False
Private rand As New Random MistakeTimer.Enabled =
False
Private Sub Submit_Click() Submit.Enabled = True
Handles Submit.Click Return
LogIn(Username.Text, End If
Password.Text) timerTick = timerTick + 1
Clear_Click() MistakeTicker.Text = timerTick
End Sub
If MistakeCounter = 3 Then End Class

MistakeCounter = 0
MistakeTicker.Visible = True
MistakeTimer.Enabled = True Admin_Page.vb
timerTick = 0
MistakeTicker.Text = Imports System.Data.OleDb
timerTick Imports
Submit.Enabled = False System.Windows.Forms.VisualStyle
MessageBox.Show("You s.VisualStyleElement.StartPanel
have failed 3 attempts! Please wait
for 30 seconds before you try Public Class Admin_Page
again.", "Failed 3 attempts")
End If Private CurrentUser As User
End Sub Public Sub setUser(newuser As
User)
Private Sub Clear_Click() Handles CurrentUser = newuser
Clear.Click End Sub
Username.Clear()
Password.Clear() Dim rs As New Resizer
End Sub Public Sub Admin_Page_Load()
Handles MyBase.Load
Public MistakeCounter As Integer
=0 StatsUpdate.Start()
Private timerTick As Integer = 0
rs.FindAllControls(BodyPanel)

66
da.Fill(dt)
Dim userData = Dim totalVotersVoted As
CurrentUser.AccessUserInformation( Integer = dt.Rows.Count
) dt.Clear()

NameLabel.Text = sql = String.Format("SELECT *


userData("Firstname") & " " & FROM [Users] WHERE [Admin] =
userData("Lastname") False AND [Voted] = False")
da = New
refreshControl() OleDbDataAdapter(sql, cn)
da.Fill(dt)
sql = String.Format("SELECT * Dim totalVotersNotVoted As
FROM [Election] WHERE Integer = dt.Rows.Count
Ongoing=True") dt.Clear()
cmd = New
OleDbCommand(sql, cn) TotalVoter.Text = totalVoters
dr = cmd.ExecuteReader
If dr.Read Then VoterChart.Series(0).Points.Clear()
ElectionName.Text =
dr("ElectionName") VoterChart.Series(0).Points.AddXY("
End If Had Submittied Ballot",
totalVotersVoted)
UpdateStatsOfChart()
VoterChart.Series(0).Points.AddXY("
End Sub Not Yet Submitted Ballot",
totalVotersNotVoted)
Private Sub UpdateStatsOfChart() End Sub
Private Sub
Dim dt As New DataTable StatsUpdate_Tick(sender As Object,
Dim da As OleDbDataAdapter e As EventArgs) Handles
StatsUpdate.Tick
sql = String.Format("SELECT * UpdateStatsOfChart()
FROM [Users] WHERE [Admin] = End Sub
False")
da = New Private Sub refreshControl()
OleDbDataAdapter(sql, cn) sql = String.Format("SELECT *
da.Fill(dt) FROM [Election] WHERE
Dim totalVoters As Integer = Ongoing=True")
dt.Rows.Count cmd = New
dt.Clear() OleDbCommand(sql, cn)
dr = cmd.ExecuteReader
sql = String.Format("SELECT *
FROM [Users] WHERE [Admin] = If dr.Read Then
False AND [Voted] = True") NewElectionButton.Enabled
da = New = False
OleDbDataAdapter(sql, cn) EditCandidateButton.Enabled
= False

67
EndElectionButton.Enabled = [C_POSITION] = 'President' ORDER
True BY VOTE DESC")
Else cmd = New
NewElectionButton.Enabled OleDbCommand(sql, cn)
= True dr = cmd.ExecuteReader()
EditCandidateButton.Enabled If dr.Read Then
= True Dim Winner As String =
EndElectionButton.Enabled = dr("C_Firstname") + " " +
False dr("C_Lastname")
End If sql =
End Sub String.Format("UPDATE [Election]
SET [PresidentWinner] = '{0}'
Private Sub Resize() Handles WHERE Ongoing=True", Winner)
BodyPanel.Resize cmd = New
OleDbCommand(sql, cn)
rs.ResizeAllControls(BodyPanel)
End Sub cmd.ExecuteNonQuery()
End If
Public Sub ExitForm() Handles
Me.Closed 'Vice President
Login_Page.Show() sql =
End Sub String.Format("SELECT TOP 1 *
FROM CANDIDATES WHERE
Private Sub [C_POSITION] = 'Vice President'
NewElectionButton_Click(sender As ORDER BY VOTE DESC")
Object, e As EventArgs) Handles cmd = New
NewElectionButton.Click OleDbCommand(sql, cn)
NewElection.ShowDialog() dr = cmd.ExecuteReader()
refreshControl() If dr.Read Then
End Sub Dim Winner As String =
Private Sub dr("C_Firstname") + " " +
EndElectionButton_Click(sender As dr("C_Lastname")
Object, e As EventArgs) Handles sql =
EndElectionButton.Click String.Format("UPDATE [Election]
Dim result As DialogResult = SET [VPresidentWinner] = '{0}'
MessageBox.Show("Are you sure WHERE Ongoing=True", Winner)
you want to end the election?", "End cmd = New
Election?", OleDbCommand(sql, cn)
MessageBoxButtons.YesNo)
Select Case result cmd.ExecuteNonQuery()
Case DialogResult.Yes End If

'President 'Secretary
sql = sql =
String.Format("SELECT TOP 1 * String.Format("SELECT TOP 1 *
FROM CANDIDATES WHERE FROM CANDIDATES WHERE

68
[C_POSITION] = 'Secretary' ORDER [C_POSITION] = 'Auditor' ORDER
BY VOTE DESC") BY VOTE DESC")
cmd = New cmd = New
OleDbCommand(sql, cn) OleDbCommand(sql, cn)
dr = cmd.ExecuteReader() dr = cmd.ExecuteReader()
If dr.Read Then If dr.Read Then
Dim Winner As String = Dim Winner As String =
dr("C_Firstname") + " " + dr("C_Firstname") + " " +
dr("C_Lastname") dr("C_Lastname")
sql = sql =
String.Format("UPDATE [Election] String.Format("UPDATE [Election]
SET [SecretaryWinner] = '{0}' SET [AuditorWinner] = '{0}' WHERE
WHERE Ongoing=True", Winner) Ongoing=True", Winner)
cmd = New cmd = New
OleDbCommand(sql, cn) OleDbCommand(sql, cn)

cmd.ExecuteNonQuery() cmd.ExecuteNonQuery()
End If End If

'Treasurer 'Public Information Officer


sql = sql =
String.Format("SELECT TOP 1 * String.Format("SELECT TOP 1 *
FROM CANDIDATES WHERE FROM CANDIDATES WHERE
[C_POSITION] = 'Treasurer' ORDER [C_POSITION] = 'Public Information
BY VOTE DESC") Officer' ORDER BY VOTE DESC")
cmd = New cmd = New
OleDbCommand(sql, cn) OleDbCommand(sql, cn)
dr = cmd.ExecuteReader() dr = cmd.ExecuteReader()
If dr.Read Then If dr.Read Then
Dim Winner As String = Dim Winner As String =
dr("C_Firstname") + " " + dr("C_Firstname") + " " +
dr("C_Lastname") dr("C_Lastname")
sql = sql =
String.Format("UPDATE [Election] String.Format("UPDATE [Election]
SET [TreasurerWinner] = '{0}' SET [PIOWinner] = '{0}' WHERE
WHERE Ongoing=True", Winner) Ongoing=True", Winner)
cmd = New cmd = New
OleDbCommand(sql, cn) OleDbCommand(sql, cn)

cmd.ExecuteNonQuery() cmd.ExecuteNonQuery()
End If End If

'Auditor 'Peace Officer


sql = sql =
String.Format("SELECT TOP 1 * String.Format("SELECT TOP 1 *
FROM CANDIDATES WHERE FROM CANDIDATES WHERE

69
[C_POSITION] = 'Peace Officer' [C_POSITION] = 'Grade 11
ORDER BY VOTE DESC") Representative' ORDER BY VOTE
cmd = New DESC")
OleDbCommand(sql, cn) cmd = New
dr = cmd.ExecuteReader() OleDbCommand(sql, cn)
If dr.Read Then dr = cmd.ExecuteReader()
Dim Winner As String = If dr.Read Then
dr("C_Firstname") + " " + Dim Winner As String =
dr("C_Lastname") dr("C_Firstname") + " " +
sql = dr("C_Lastname")
String.Format("UPDATE [Election] sql =
SET [POWinner] = '{0}' WHERE String.Format("UPDATE [Election]
Ongoing=True", Winner) SET [G11RepWinner] = '{0}' WHERE
cmd = New Ongoing=True", Winner)
OleDbCommand(sql, cn) cmd = New
OleDbCommand(sql, cn)
cmd.ExecuteNonQuery()
End If cmd.ExecuteNonQuery()
End If
'Grade 12 Representative
sql = sql =
String.Format("SELECT TOP 1 * String.Format("UPDATE
FROM CANDIDATES WHERE [ELECTION] SET [ElectionEnd]='{0}'
[C_POSITION] = 'Grade 12 WHERE Ongoing=True", Date.Now)
Representative' ORDER BY VOTE cmd = New
DESC") OleDbCommand(sql, cn)
cmd = New cmd.ExecuteNonQuery()
OleDbCommand(sql, cn)
dr = cmd.ExecuteReader() sql =
If dr.Read Then String.Format("UPDATE [Election]
Dim Winner As String = SET Ongoing=False")
dr("C_Firstname") + " " + cmd = New
dr("C_Lastname") OleDbCommand(sql, cn)
sql = cmd.ExecuteNonQuery()
String.Format("UPDATE [Election]
SET [G12RepWinner] = '{0}' WHERE sql =
Ongoing=True", Winner) String.Format("DELETE FROM
cmd = New [CandidateResults]")
OleDbCommand(sql, cn) cmd = New
OleDbCommand(sql, cn)
cmd.ExecuteNonQuery() cmd.ExecuteNonQuery()
End If
sql =
'Grade 11 Representative String.Format("INSERT INTO
sql = [CandidateResults] SELECT *
String.Format("SELECT TOP 1 * FROM [Candidates]")
FROM CANDIDATES WHERE

70
cmd = New ManageUsers.ShowDialog()
OleDbCommand(sql, cn) End Sub
cmd.ExecuteNonQuery() End Class

Case DialogResult.No

Case Else EditCandidate.vb


MsgBox("Error")
End Select Imports System.Data.OleDb
refreshControl() Imports
End Sub System.Windows.Forms.VisualStyle
s.VisualStyleElement.StartPanel
Private Sub
EditCandidateButton_Click(sender Public Class EditCandidate
As Object, e As EventArgs) Handles Private Sub
EditCandidateButton.Click Strand_SelectedIndexChanged(send
er As Object, e As EventArgs)
EditCandidate.ShowDialog() Handles
Strand.SelectedIndexChanged
End Sub Section.SelectedIndex = -1
Private Sub Section.Items.Clear()
ViewVoteCount_Click(sender As If Strand.Text = "STEM" Then
Object, e As EventArgs) Handles
ViewVoteCountButton.Click Section.Items.AddRange({"Salcah",
ElectionResults.ShowDialog() "Salem",
End Sub "Samaria",
"Samos",
Private Sub "Sheba",
LogOutLabel_Click(sender As "Shechem",
Object, e As EventArgs) Handles "Shiloh",
LogOutLabel.Click "Shinar",
Me.Close() "Shunem",
End Sub "Shur",
"Sidon",
Private Sub "Sinai",
ViewArchivedUserButton_Click(send "Smyrna",
er As Object, e As EventArgs)
Handles "Corinthians",
ViewArchivedUserButton.Click "Haggai",
ArchivedUsers.ShowDialog() "John",
End Sub "Jude",
"Malachi",
Private Sub "Micah",
ManageUsersButton_Click(sender "Nahum",
As Object, e As EventArgs) Handles
ManageUsersButton.Click "Thessalonians",
"Timothy",

71
"Zacchaeus",
"Zacharias", Section.Items.AddRange({"Igdaliah",
"Zechariah", "Illyricum",
"Iphediah",
"Zephaniah"}) "Irijiah",
ElseIf Strand.Text = "HUMSS" "Israel",
Then "Ithiel",
"Zaanan",
Section.Items.AddRange({"Babylon", "Chronicles",
"Beersheba",
"Beirut", "Ecclesiastes",
"Berea", "Ezra",
"Bethany", "Luke",
"Bethel", "Nehemiah",
"Bethlehem", "Proverbs",
"Bethsaida", "Titus"})
"Ephesians", ElseIf Strand.Text = "HE" Then
"Ezekiel",
"Jeremiah", Section.Items.AddRange({"Jayser",
"Job", "Jerahmeel",
"Jericho",
"Lamentation", "Jerusalem",
"Letters", "Jordan",
"Obadiah", "Jubilee",
"Samuel"}) "Zanoah",
ElseIf Strand.Text = "ABM" "Acts",
Then "Exodus",
"Genesis",
Section.Items.AddRange({"Adoram", "Jonah",
"Akkad", "Judges",
"Antioch", "Numbers",
"Aphek",
"Attalia", "Revelations",
"Amana", "Ruth"})
"Ashur", ElseIf Strand.Text = "GAS"
"Assyria", Then
"Amaziah",
"Adonai", Section.Items.AddRange({"Cana",
"Amos", "Canaan",
"Colossians",
"Daniel", "Capernaum",
"Hosea", "Chenania",
"James", "Esther",
"James", "Peter",
"Leviticus", "Romans"})
"Matthew"}) ElseIf Strand.Text = "IA" Then
ElseIf Strand.Text = "ICT" Then

72
Section.Items.AddRange({"Magdalas Private Sub EditCandidate_Load()
", Handles MyBase.Load
"Kings"})
End If Dim dt As DataTable
End Sub Dim da As OleDbDataAdapter

Private Sub Cancel_Click(sender sql = String.Format(


As Object, e As EventArgs) "
Me.Close() SELECT
End Sub [ID],
[C_Position] AS [Position],
Private Sub UCASE([C_Lastname]) + ', '
AddCandidateButton_Click(sender + [C_Firstname] AS [Candidate
As Object, e As EventArgs) Handles Name],
AddCandidateButton.Click [C_Strand] + ' ' +
Try STR([C_Grade]) + ' - ' + [C_Section]
Dim test As Double = AS [Grade and Section]
CDbl(Grade.Text) FROM [Candidates]
Catch ex As Exception WHERE
MessageBox.Show("Please NOT [C_Lastname] = 'novote'
only include numbers for the Grade OR NOT [C_Firstname] = 'novote'
level.", "Error: Data Type Mismatch", ")
MessageBoxButtons.OK, da = New
MessageBoxIcon.Error) OleDbDataAdapter(sql, cn)
Return dt = New DataTable
End Try
sql = String.Format("INSERT da.Fill(dt)
INTO Candidates([C_Firstname],
[C_Lastname],[C_Position], EditCandidateView.DataSource
[C_Grade],[C_Section],[C_Strand]) = dt
VALUES('{0}','{1}','{2}','{3}','{4}','{5}')",
Firstname.Text, EnterButtonChecker()
Lastname.Text, Position.Text, End Sub
Grade.Text, Section.Text,
Strand.Text) Private Sub EnterButtonChecker()
cmd = New Handles Firstname.TextChanged,
OleDbCommand(sql, cn) Lastname.TextChanged,
cmd.ExecuteReader() Grade.TextChanged,
Position.SelectedIndexChanged,
MessageBox.Show("Successfully Section.SelectedIndexChanged,
added candidate.", "Candidate Add", Strand.SelectedIndexChanged
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk) If Firstname.Text = "" Or
Lastname.Text = "" Or Grade.Text =
EditCandidate_Load() "" Or Position.SelectedIndex < 0 Or
End Sub

73
Strand.SelectedIndex < 0 Or Private Sub
Section.SelectedIndex < 0 Then RemoveAllButton_Click(sender As
Object, e As EventArgs) Handles
AddCandidateButton.Enabled = RemoveAllButton.Click
False Dim result As DialogResult =
Else MessageBox.Show("Are you sure
you want to remove all the
AddCandidateButton.Enabled = True Candidate?", "Removal
End If Confirmation",
End Sub MessageBoxButtons.YesNo,
MessageBoxIcon.Error)
Private Sub
RemoveCandidateButton_Click(send If result = DialogResult.Yes
er As Object, e As EventArgs) Then
Handles
RemoveCandidateButton.Click sql = String.Format("DELETE
Try FROM [Candidates] WHERE NOT
Dim test As Double = [C_Firstname] = 'novote' AND NOT
CDbl(RemoveCandidateByIDButton. [C_Lastname] = 'novote'")
Text) cmd = New
Catch ex As Exception OleDbCommand(sql, cn)
MessageBox.Show("Please cmd.ExecuteNonQuery()
only include numbers inside the ID
input.", "Error: Data Type Mismatch", MessageBox.Show("Successfully
MessageBoxButtons.OK, deleted all Candidate.", "Candidate
MessageBoxIcon.Error) Remove.", MessageBoxButtons.OK,
Return MessageBoxIcon.Asterisk)
End Try EditCandidate_Load()
End If
sql = String.Format("DELETE
FROM [Candidates] WHERE ID = {0} End Sub
AND NOT [C_Firstname] = 'novote' End Class
AND NOT [C_Lastname] = 'novote'",
RemoveCandidateByIDButton.Text)
cmd = New
OleDbCommand(sql, cn) ManageUser.vb
cmd.ExecuteNonQuery()
Imports System.Data.OleDb
MessageBox.Show("Successfully Imports
deleted candidate.", "Candidate System.Security.Cryptography
Remove.", MessageBoxButtons.OK, Imports System.Text
MessageBoxIcon.Asterisk)
Public Class ManageUsers
EditCandidate_Load()
End Sub Private Sub EnterButtonChecker()
Handles Firstname.TextChanged,
Lastname.TextChanged,

74
LRN.TextChanged,
Grade.TextChanged, Private Sub ManageUsers_Load()
Section.SelectedIndexChanged, Handles MyBase.Load
Strand.SelectedIndexChanged
LoadUsers()
If Firstname.Text = "" Or
Lastname.Text = "" Or LRN.Text = "" End Sub
Or Grade.Text = "" Or
Strand.SelectedIndex < 0 Or Private Sub
Section.SelectedIndex < 0 Then Strand_SelectedIndexChanged(send
AddUserButton.Enabled = er As Object, e As EventArgs)
False Handles
Else Strand.SelectedIndexChanged
AddUserButton.Enabled = Dim obj = Section
True obj.Items.Clear()
End If obj.SelectedIndex = -1
End Sub If sender.Text = "STEM" Then

Private Sub LoadUsers() obj.Items.AddRange({"Salcah",


Dim dt As DataTable "Salem",
Dim da As OleDbDataAdapter "Samaria",
"Samos",
sql = String.Format( "Sheba",
" "Shechem",
SELECT "Shiloh",
[ID], "Shinar",
[Username], "Shunem",
[GeneratedPassword], "Shur",
UCASE([Lastname]) + ', ' + "Sidon",
[Firstname] AS [Name], "Sinai",
[LRN], "Smyrna",
[Strand] + ' ' + STR([Grade])
+ ' - ' + [Section] AS [Grade and "Corinthians",
Section] "Haggai",
FROM [Users] "John",
WHERE [Admin] = False "Jude",
") "Malachi",
da = New "Micah",
OleDbDataAdapter(sql, cn) "Nahum",
dt = New DataTable
da.Fill(dt) "Thessalonians",
UserView.DataSource = "Timothy",
dt.Copy "Zacchaeus",
dt.Clear() "Zacharias",
"Zechariah",
End Sub
"Zephaniah"})

75
ElseIf sender.Text = "HUMSS" "Israel",
Then "Ithiel",
"Zaanan",
obj.Items.AddRange({"Babylon", "Chronicles",
"Beersheba",
"Beirut", "Ecclesiastes",
"Berea", "Ezra",
"Bethany", "Luke",
"Bethel", "Nehemiah",
"Bethlehem", "Proverbs",
"Bethsaida", "Titus"})
"Ephesians", ElseIf sender.Text = "HE" Then
"Ezekiel",
"Jeremiah", obj.Items.AddRange({"Jayser",
"Job", "Jerahmeel",
"Jericho",
"Lamentation", "Jerusalem",
"Letters", "Jordan",
"Obadiah", "Jubilee",
"Samuel"}) "Zanoah",
ElseIf sender.Text = "ABM" "Acts",
Then "Exodus",
"Genesis",
obj.Items.AddRange({"Adoram", "Jonah",
"Akkad", "Judges",
"Antioch", "Numbers",
"Aphek",
"Attalia", "Revelations",
"Amana", "Ruth"})
"Ashur", ElseIf sender.Text = "GAS"
"Assyria", Then
"Amaziah", obj.Items.AddRange({"Cana",
"Adonai", "Canaan",
"Amos",
"Colossians", "Capernaum",
"Daniel", "Chenania",
"Hosea", "Esther",
"James", "Peter",
"James", "Romans"})
"Leviticus", ElseIf sender.Text = "IA" Then
"Matthew"})
ElseIf sender.Text = "ICT" Then obj.Items.AddRange({"Magdalas",
"Kings"})
obj.Items.AddRange({"Igdaliah", End If
"Illyricum", End Sub
"Iphediah",
"Irijiah", Private rand As New Random

76
Private Sub generatedUsername,
AddUserButton_Click(sender As generatedPassword,
Object, e As EventArgs) Handles generatedPassword, Firstname.Text,
AddUserButton.Click Lastname.Text, Grade.Text,
Try Section.Text, Strand.Text, LRN.Text)
Dim test As Double = cmd = New
CDbl(Grade.Text) OleDbCommand(sql, cn)
Dim test2 As Double = cmd.ExecuteReader()
CDbl(LRN.Text)
Catch ex As Exception MessageBox.Show("Successfully
MessageBox.Show("Please created user.", "Create user",
only include numbers for the Grade MessageBoxButtons.OK,
or LRN.", "Error: Data Type MessageBoxIcon.Information)
Mismatch", MessageBoxButtons.OK, ManageUsers_Load()
MessageBoxIcon.Error) End Sub
Return
End Try Private Function
generateRandomString(r As
If Not LRN.Text.Length = 12 Random, len As Integer)
Then Dim s As String =
MessageBox.Show("LRN "ABCDEFGHIJKLMNOPQRSTUVW
only can have 12 digits.", "Error: XYZabcdefghijklmnopqrstuvwxyz012
Invalid LRN", 3456789"
MessageBoxButtons.OK, Dim sb As New StringBuilder
MessageBoxIcon.Error)
Return For i As Integer = 1 To len
End If
Dim generatedUsername As sb.Append(s.Substring(r.Next(0,
String s.Length), 1))
Dim generatedPassword As Next
String
Return sb.ToString
generatedUsername = End Function
LRN.Text & "-" &
generateRandomString(rand, 5) Private Sub
generatedPassword = RemoveUserButton_Click(sender As
generateRandomString(rand, 15) Object, e As EventArgs) Handles
RemoveUserButton.Click
sql = String.Format( Try
"INSERT INTO Dim test As Double =
users([Username],[Password], CDbl(RemoveUserByIDButton.Text)
[GeneratedPassword],[Firstname], Catch ex As Exception
[Lastname],[Grade],[Section], MessageBox.Show("Please
[Strand],[LRN],[PickedCandidates]) only include numbers inside the ID
input.", "Error: Data Type Mismatch",
VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{ MessageBoxButtons.OK,
6}','{7}',{8},'-')", MessageBoxIcon.Error)

77
Return
End Try MessageBox.Show("Successfully
deleted user.", "User Remove.",
Dim result As DialogResult = MessageBoxButtons.OK,
MessageBox.Show( MessageBoxIcon.Asterisk)
"Are you sure you want to
remove this user? This account will ManageUsers_Load()
be permanently archived.", End Sub
"Remove User?", End Class
MessageBoxButtons.YesNo,
MessageBoxIcon.Error)
If result = DialogResult.No Then
Return NewElection.vb
End If
Imports
sql = String.Format("SELECT * System.Collections.Specialized.BitV
FROM [Users] WHERE [ID] = {0} ector32
AND [Admin] = False", Imports System.Data.OleDb
RemoveUserByIDButton.Text) Imports
cmd = New System.Security.Cryptography.X509
OleDbCommand(sql, cn) Certificates
dr = cmd.ExecuteReader Imports
If Not dr.Read Then System.Windows.Forms.DataVisuali
MessageBox.Show("User zation.Charting
does not exist.", "User Remove.",
MessageBoxButtons.OK, Public Class NewElection
MessageBoxIcon.Error)
Return Private Sub
End If CreateButton_Click(sender As
Object, e As EventArgs) Handles
sql = String.Format("INSERT CreateButton.Click
INTO [ArchivedUsers] SELECT * con()
FROM [Users] WHERE [ID] = {0}",
RemoveUserByIDButton.Text) sql = String.Format("INSERT
cmd = New INTO Election([ElectionName],
OleDbCommand(sql, cn) [Ongoing],[ElectionStart])
cmd.ExecuteNonQuery() VALUES('{0}',{1},'{2}')",
ElectionName.Text, True, Date.Now)
sql = String.Format("DELETE cmd = New
FROM [Users] WHERE [ID] = {0} OleDbCommand(sql, cn)
AND [Admin] = False", cmd.ExecuteNonQuery()
RemoveUserByIDButton.Text)
cmd = New sql = String.Format("UPDATE
OleDbCommand(sql, cn) [Users] SET [Voted] = False")
cmd.ExecuteNonQuery() cmd = New
OleDbCommand(sql, cn)
cmd.ExecuteNonQuery()

78
Object, e As EventArgs) Handles
sql = String.Format("UPDATE MyBase.Load
[Users] SET [PickedCandidates] = ''") Dim dt As New DataTable
cmd = New
Dim da As OleDbDataAdapter
OleDbCommand(sql, cn)
cmd.ExecuteNonQuery()
sql = String.Format("SELECT *
sql = String.Format("UPDATE FROM [ArchivedUsers]")
[Candidates] SET [Vote] = 0") da = New
cmd = New OleDbDataAdapter(sql, cn)
OleDbCommand(sql, cn) da.Fill(dt)
cmd.ExecuteNonQuery()

Dim txt As String = "Election DataGridView1.DataSource =


has been successfully created" dt.Copy
Dim tit As String = "Create End Sub
Election" End Class
MessageBox.Show(txt, tit,
MessageBoxButtons.OK, Main_Page.vb
MessageBoxIcon.Asterisk)
Imports System.Data.OleDb
Admin_Page.Admin_Page_Load() Imports System.Net
Me.Close() Imports
System.Net.WebRequestMethods
End Sub Imports
System.Security.Authentication.Exte
Private Sub
CancelButton_Click(sender As ndedProtection
Object, e As EventArgs) Handles Imports System.Text
CancelButton.Click Imports
Me.Close() System.Windows.Forms.VisualStyle
End Sub s.VisualStyleElement.StartPanel
End Class Imports
Microsoft.VisualBasic.Devices

Public Class Main_Page


ArchivedUsers.vb
Public CurrentUser As User
Imports System.Data.OleDb
Public Sub setUser(newuser As
User)
Public Class ArchivedUsers
CurrentUser = newuser
Private Sub
End Sub
ArchivedUsers_Load(sender As
Public Sub ExitForm() Handles
Me.Closed

79
Login_Page.Show() AND NOT [C_Firstname] = 'novote'
End Sub AND NOT [C_Lastname] = 'novote'"
Private Sub da = New
LogOutLabel_Click(sender As OleDbDataAdapter(sql, cn)
Object, e As EventArgs) Handles da.Fill(dt)
LogOutLabel.Click PList.DataSource = dt.Copy
Me.Close() PList.DisplayMember =
End Sub "Fullname"
dt.Clear()
Dim PageLoading As Boolean
'Vice President
Private Sub Main_Page_Load() sql = "SELECT
Handles MyBase.Load [C_Firstname] + ' ' + [C_Lastname]
AS [Fullname] FROM [Candidates]
PageLoading = True WHERE [C_Position] = 'Vice
President' AND NOT [C_Firstname]
NameLabel.Text = = 'novote' AND NOT [C_Lastname] =
CurrentUser.AccessUserInformation( 'novote'"
"Firstname") + " " + da = New
CurrentUser.AccessUserInformation( OleDbDataAdapter(sql, cn)
"Lastname") da.Fill(dt)
VPList.DataSource = dt.Copy
sql = String.Format("SELECT * VPList.DisplayMember =
FROM [Election] WHERE "Fullname"
Ongoing=True") dt.Clear()
cmd = New
OleDbCommand(sql, cn) 'Secretary
dr = cmd.ExecuteReader sql = "SELECT
If dr.Read Then [C_Firstname] + ' ' + [C_Lastname]
ElectionName.Text = AS [Fullname] FROM [Candidates]
dr("ElectionName") WHERE [C_Position] = 'Secretary'
AND NOT [C_Firstname] = 'novote'
Dim dt As New DataTable AND NOT [C_Lastname] = 'novote'"
Dim da As New da = New
OleDbDataAdapter OleDbDataAdapter(sql, cn)
da.Fill(dt)
'President SList.DataSource = dt.Copy
sql = "SELECT SList.DisplayMember =
[C_Firstname] + ' ' + [C_Lastname] "Fullname"
AS [Fullname] FROM [Candidates] dt.Clear()
WHERE [C_Position] = 'President'

80
'Treasurer PIOList.DataSource =
sql = "SELECT dt.Copy
[C_Firstname] + ' ' + [C_Lastname] PIOList.DisplayMember =
AS [Fullname] FROM [Candidates] "Fullname"
WHERE [C_Position] = 'Treasurer' dt.Clear()
AND NOT [C_Firstname] = 'novote'
AND NOT [C_Lastname] = 'novote'" 'Peace Officer
da = New sql = "SELECT
OleDbDataAdapter(sql, cn) [C_Firstname] + ' ' + [C_Lastname]
da.Fill(dt) AS [Fullname] FROM [Candidates]
TList.DataSource = dt.Copy WHERE [C_Position] = 'Peace
TList.DisplayMember = Officer' AND NOT [C_Firstname] =
"Fullname" 'novote' AND NOT [C_Lastname] =
dt.Clear() 'novote'"
da = New
'Auditor OleDbDataAdapter(sql, cn)
sql = "SELECT da.Fill(dt)
[C_Firstname] + ' ' + [C_Lastname] POList.DataSource = dt.Copy
AS [Fullname] FROM [Candidates] POList.DisplayMember =
WHERE [C_Position] = 'Auditor' AND "Fullname"
NOT [C_Firstname] = 'novote' AND dt.Clear()
NOT [C_Lastname] = 'novote'"
da = New 'Grade 12 Representative
OleDbDataAdapter(sql, cn) sql = "SELECT
da.Fill(dt) [C_Firstname] + ' ' + [C_Lastname]
AList.DataSource = dt.Copy AS [Fullname] FROM [Candidates]
AList.DisplayMember = WHERE [C_Position] = 'Grade 12
"Fullname" Representative' AND NOT
dt.Clear() [C_Firstname] = 'novote' AND NOT
[C_Lastname] = 'novote'"
'Public Information Officer da = New
sql = "SELECT OleDbDataAdapter(sql, cn)
[C_Firstname] + ' ' + [C_Lastname] da.Fill(dt)
AS [Fullname] FROM [Candidates] G12RList.DataSource =
WHERE [C_Position] = 'Public dt.Copy
Information Officer' AND NOT G12RList.DisplayMember =
[C_Firstname] = 'novote' AND NOT "Fullname"
[C_Lastname] = 'novote'" dt.Clear()
da = New
OleDbDataAdapter(sql, cn) 'Grade 11 Representative
da.Fill(dt)

81
sql = "SELECT
[C_Firstname] + ' ' + [C_Lastname] If
AS [Fullname] FROM [Candidates] CurrentUser.AccessUserInformation(
WHERE [C_Position] = 'Grade 11 "Grade") = 11 Then
Representative' AND NOT G12RTab.Enabled = False
[C_Firstname] = 'novote' AND NOT End If
[C_Lastname] = 'novote'" End Sub
da = New
OleDbDataAdapter(sql, cn) Public Sub CheckIfUserVoted()
da.Fill(dt) sql = String.Format("SELECT *
G11RList.DataSource = FROM [Users] WHERE [ID] = {0}",
dt.Copy CurrentUser.AccessUserInformation(
G11RList.DisplayMember = "ID"))
"Fullname" cmd = New
dt.Clear() OleDbCommand(sql, cn)
dr = cmd.ExecuteReader
VotePicker.Enabled = True Dim userVoted As Boolean
Dim pickedCandidates As
ClearVoteButton_Click() String
If dr.Read Then
CheckIfUserVoted() Try
Else userVoted = dr("Voted")
ElectionName.Text = "No Catch ex As Exception
ongoing elections."
SubmitVoteButton.Enabled = End Try
False
SubmitVoteButton.Text = "No Try
Election" pickedCandidates =
VotePicker.Enabled = False dr("PickedCandidates")
End If Catch ex As Exception

PageLoading = False End Try

GRBHeight = End If
GroupBox1.Height
If userVoted Then
If SubmitVoteButton.Text =
CurrentUser.AccessUserInformation( "See Ballot Receipt"
"Grade") = 12 Then VotePicker.Enabled = False
G11RTab.Enabled = False ClearVoteButton.Enabled =
End If False

82
PIOList.SelectedIndexChanged,
POList.SelectedIndexChanged,
G12RList.SelectedIndexChanged,
Dim extractNames As G11RList.SelectedIndexChanged
String() =
pickedCandidates.Split("#") If PageLoading Then
PDisplay.Text = Return
extractNames(0) End If
VPDisplay.Text =
extractNames(1) PDisplay.Text = PList.Text
SDisplay.Text = VPDisplay.Text = VPList.Text
extractNames(2) SDisplay.Text = SList.Text
TDisplay.Text = TDisplay.Text = TList.Text
extractNames(3) ADisplay.Text = AList.Text
ADisplay.Text = PIODisplay.Text = PIOList.Text
extractNames(4) PODisplay.Text = POList.Text
PIODisplay.Text = G12RDisplay.Text =
extractNames(5) G12RList.Text
PODisplay.Text = G11RDisplay.Text =
extractNames(6) G11RList.Text
G12RDisplay.Text =
extractNames(7) End Sub
G11RDisplay.Text =
extractNames(8) Public conf As Boolean = False
Private Sub
Else SubmitVoteButton_Click(sender As
SubmitVoteButton.Text = Object, e As EventArgs) Handles
"Submit Ballot" SubmitVoteButton.Click
VotePicker.Enabled = True
ClearVoteButton.Enabled =
True If SubmitVoteButton.Text =
End If "Submit Ballot" Then
End Sub

Private Sub UpdateBallotDisplay() ConfirmationBox.ShowDialog()


Handles
PList.SelectedIndexChanged, If Not conf Then
VPList.SelectedIndexChanged, Return
SList.SelectedIndexChanged, End If
TList.SelectedIndexChanged,
AList.SelectedIndexChanged, Dim sb As New StringBuilder

83
sb.Append(PDisplay.Text & Dim tb As TextBox() =
"#") {PDisplay, VPDisplay, SDisplay,
sb.Append(VPDisplay.Text & TDisplay, ADisplay, PIODisplay,
"#") PODisplay, G12RDisplay,
sb.Append(SDisplay.Text & G11RDisplay}
"#") Dim pos As String() =
sb.Append(TDisplay.Text & {"President", "Vice President",
"#") "Secretary", "Treasurer", "Auditor",
sb.Append(ADisplay.Text & "Public Information Officer", "Peace
"#") Officer", "Grade 12 Representative",
sb.Append(PIODisplay.Text "Grade 11 Representative"}
& "#") For i As Integer = 0 To 8
sb.Append(PODisplay.Text & Dim CandidateName As
"#") String
If tb(i).Text = "" Then
sb.Append(G12RDisplay.Text & "#") CandidateName =
"novote novote"
sb.Append(G11RDisplay.Text) Else
Dim namesVoted As String = CandidateName =
sb.ToString tb(i).Text
End If

sql =
String.Format("UPDATE [Users] SET sql =
[PickedCandidates] = '{0}' WHERE String.Format("UPDATE
[ID] = {1}", namesVoted, [Candidates] SET [Vote] = [Vote] + 1
CurrentUser.AccessUserInformation( WHERE [C_Firstname] + ' ' +
"ID")) [C_Lastname] = '{0}' AND
cmd = New [C_Position] = '{1}'",
OleDbCommand(sql, cn) CandidateName, pos(i))
cmd.ExecuteNonQuery() cmd = New
OleDbCommand(sql, cn)
sql = "UPDATE [Users] SET cmd.ExecuteNonQuery()
[Voted] = True WHERE [ID] = " & Next
CurrentUser.AccessUserInformation(
"ID") CheckIfUserVoted()
cmd = New
OleDbCommand(sql, cn) Else
cmd.ExecuteNonQuery()
sql = "SELECT * FROM
[Users] WHERE [ID] = " &

84
CurrentUser.AccessUserInformation(
"ID") Private Sub
cmd = New ViewElectionResultButton_Click(sen
OleDbCommand(sql, cn) der As Object, e As EventArgs)
dr = cmd.ExecuteReader() ElectionResults.ShowDialog()
dr.Read() End Sub
Dim Ballot As New
BallotMaker(dr("PickedCandidates")) Private Sub
Ballot.CreateBallot() ClearVoteButton_Click() Handles
ClearVoteButton.Click
End If PList.SelectedIndex = -1
VPList.SelectedIndex = -1
End Sub SList.SelectedIndex = -1
TList.SelectedIndex = -1
Private Sub AList.SelectedIndex = -1
AccountSettingsButtons_Click(sende PIOList.SelectedIndex = -1
r As Object, e As EventArgs) POList.SelectedIndex = -1
Handles G12RList.SelectedIndex = -1
AccountSettingsButtons.Click G11RList.SelectedIndex = -1
AccountSettings.Fullname.Text End Sub
=
CurrentUser.AccessUserInformation( Dim GRBHeight As Integer
"Firstname") & " " & Private Sub
CurrentUser.AccessUserInformation( GroupBox1_Resize(sender As
"Lastname") Object, e As EventArgs) Handles
GroupBox1.Resize
AccountSettings.GradeAndSection.T If Not GroupBox1.Height =
ext = GRBHeight Then
CurrentUser.AccessUserInformation( GRBHeight =
"Strand") & " " & GroupBox1.Height
CurrentUser.AccessUserInformation( Dim controlArr As TextBox()
"Grade") & " - " & = {PDisplay, VPDisplay, SDisplay,
CurrentUser.AccessUserInformation( TDisplay, ADisplay, PIODisplay,
"Section") PODisplay, G12RDisplay,
G11RDisplay}
AccountSettings.UsernameBox.Text For Each tb As TextBox In
= controlArr
CurrentUser.AccessUserInformation( tb.Height =
"Username") CDbl(GroupBox1.Height) * 0.0631
AccountSettings.ShowDialog() 'tb.Text =
End Sub GroupBox1.Height

85
Dim tbAbove As New tb.Font = New
TextBox Font("Candara", CSng(tb.Height *
Dim labBeside As New 0.51), FontStyle.Bold)
Label labBeside.Location = New
Select Case tb.Name Point(labBeside.Location.X,
Case "PDisplay" (tb.Location.Y + tb.Height / 2) -
labBeside = PLabel labBeside.Height / 2)
Case "VPDisplay"
tbAbove = PDisplay Next
labBeside = VPLabel End If
Case "SDisplay" End Sub
tbAbove = VPDisplay
labBeside = SLabel End Class
Case "TDisplay"
tbAbove = SDisplay
labBeside = TLabel
Case "ADisplay" AccountSettings.vb
tbAbove = TDisplay
labBeside = ALabel Public Class AccountSettings
Case "PIODisplay"
tbAbove = ADisplay Private Sub
labBeside = PIOLabel ChangeUsernameButton_Click(send
Case "PODisplay" er As Object, e As EventArgs)
tbAbove = PIODisplay Handles
labBeside = POLabel ChangeUsernameButton.Click
Case "G12RDisplay"
tbAbove = PODisplay ChangeUsername.ShowDialog()
labBeside = End Sub
G12RLabel
Case "G11RDisplay" Private Sub
tbAbove = ChangePasswordButton_Click(send
G12RDisplay er As Object, e As EventArgs)
labBeside = Handles
G11RLabel ChangePasswordButton.Click
End Select ChangePassword.ShowDialog()
If Not tb Is PDisplay Then End Sub
tb.Location = New End Class
Point(tb.Location.X,
tbAbove.Location.Y + ChangeUsername.vb
tbAbove.Height + 6)
End If Imports System.Data.OleDb

86
Imports Private Sub Enter_Click(sender
System.Windows.Forms.VisualStyle As Object, e As EventArgs) Handles
s.VisualStyleElement.StartPanel Enter.Click
If NewPasswordBox.Text =
Public Class ChangeUsername ConfirmPasswordBox.Text Then
Private Sub Enter_Click(sender Else
As Object, e As EventArgs) Handles
Enter.Click MessageBox.Show("Passwords do
not match", "Password match")
sql = String.Format("SELECT * Return
FROM [Users] WHERE ID = {0}", End If
Main_Page.CurrentUser.AccessUser
Information("ID")) sql = String.Format("SELECT *
cmd = New FROM [Users] WHERE ID = {0}",
OleDbCommand(sql, cn) Main_Page.CurrentUser.AccessUser
dr = cmd.ExecuteReader Information("ID"))
If dr.Read Then cmd = New
sql = OleDbCommand(sql, cn)
String.Format("UPDATE [Users] SET dr = cmd.ExecuteReader
[Username] = '{0}' WHERE [ID] = If dr.Read Then
{1}", NewUsernameBox.Text, sql =
Main_Page.CurrentUser.AccessUser String.Format("UPDATE [Users] SET
Information("ID")) [Password] = '{0}' WHERE [ID] =
cmd = New {1}", NewPasswordBox.Text,
OleDbCommand(sql, cn) Main_Page.CurrentUser.AccessUser
cmd.ExecuteNonQuery() Information("ID"))
cmd = New
MessageBox.Show("Successfully OleDbCommand(sql, cn)
changed username", "Username cmd.ExecuteNonQuery()
Change")
End If MessageBox.Show("Successfully
End Sub changed password", "Password
End Class Change")
End If
End Sub
End Class
ChangePassword.vb

Imports System.Data.OleDb
ConfirmationBox.vb
Public Class ChangePassword

87
Imports System.Data.OleDb VPDisplay.Text =
Imports System.Text Main_Page.VPDisplay.Text
SDisplay.Text =
Public Class ConfirmationBox Main_Page.SDisplay.Text
Private Sub TDisplay.Text =
ConfirmButton_Click(sender As Main_Page.TDisplay.Text
Object, e As EventArgs) Handles ADisplay.Text =
ConfirmButton.Click Main_Page.ADisplay.Text
PIODisplay.Text =
Dim result As DialogResult = Main_Page.PIODisplay.Text
MessageBox.Show("Are you sure PODisplay.Text =
you want to submit your vote?", Main_Page.PODisplay.Text
"Confirm vote", G12RDisplay.Text =
MessageBoxButtons.YesNo, Main_Page.G12RDisplay.Text
MessageBoxIcon.Asterisk) G11RDisplay.Text =
If result = DialogResult.No Then Main_Page.G11RDisplay.Text
Return End Sub
ElseIf result = DialogResult.Yes End Class
Then
Main_Page.conf = True
End If
ElectionsResult.vb
Me.Close()
End Sub Imports System.Data.OleDb
Imports
Private Sub System.Windows.Forms.DataVisuali
NevermindButton_Click(sender As zation.Charting
Object, e As EventArgs) Handles
NevermindButton.Click Public Class ElectionResults
Me.Close()
End Sub Dim rs As New Resizer
Private Sub
Private Sub ElectionResults_Load(sender As
ConfirmationBox_Load(sender As Object, e As EventArgs) Handles
Object, e As EventArgs) Handles MyBase.Load
MyBase.Load
ElectionName.Text = rs.FindAllControls(BodyPanel)
Main_Page.ElectionName.Text Populator()
PDisplay.Text = Updater.Start()
Main_Page.PDisplay.Text
End Sub

88
Case "PIOChart"
Private Sub Populator() pos = "Public Information
For Each chartControl As Chart Officer"
In Me.BodyPanel.Controls Case "POChart"
pos = "Peace Officer"
chartControl.Series(0).LabelBackCol Case "G12RChart"
or = Color.PowderBlue pos = "Grade 12
Representative"
chartControl.Series(0).LabelBorderC Case "G11RChart"
olor = Color.Black pos = "Grade 11
Representative"
chartControl.Series(0).Points.Clear() Case Else
PopulateChart(chartControl) pos = ""
Next End Select
End Sub
con()

Private Sub resized() Handles Dim dt As New DataTable


BodyPanel.Resize Dim da As OleDbDataAdapter

sql = String.Format("SELECT *
rs.ResizeAllControls(BodyPanel) FROM [Candidates] WHERE
[C_Position] = '{0}'", pos)
End Sub If pos = "Grade 12
Representative" Or pos = "Grade 11
Private Sub PopulateChart(chartIn Representative" Then
As Chart) If pos = "Grade 12
Representative" Then
Dim pos As String pos = "Grade 12 Rep"
Else
Select Case chartIn.Name pos = "Grade 11 Rep"
Case "PChart" End If
pos = "President" End If
Case "VPChart" da = New
pos = "Vice President" OleDbDataAdapter(sql, cn)
Case "SChart" da.Fill(dt)
pos = "Secretary" For Each row As DataRow In
Case "TChart" dt.Rows
pos = "Treasurer" Dim nameOfPerson As String
Case "AChart" = row("C_Firstname") & " " &
pos = "Auditor" row("C_Lastname")

89
If nameOfPerson = "novote
novote" Then Imports System.Data.OleDb
nameOfPerson = "No Module db
Vote"
End If Public cn As New
Dim voteOfPerson As Integer OleDbConnection
= row("Vote") Public cmd As OleDbCommand
Public sql As String
chartIn.Series(String.Format("{0} Public dr As OleDbDataReader
Votes",
pos)).Points.AddXY(nameOfPerson, Public Sub con()
voteOfPerson)
Next Dim providerVersion As String =
dt.Clear() "ACE.OLEDB.12.0" 'jet.OLEDB.4.0

End Sub 'Checks to see if an existing


connection is open
Private Sub Updater_Tick(sender If cn.State =
As Object, e As EventArgs) Handles ConnectionState.Open Then
Updater.Tick cn.Close()
Populator() End If
End Sub cn.ConnectionString =
String.Format("Provider=Microsoft.
Private Sub {0}; Data Source={1}\
PrintElectionResultButton_Click(sen SystemDB.mdb", providerVersion,
der As Object, e As EventArgs) Application.StartupPath.Replace("\
Handles bin\Debug", ""))
PrintElectionResultButton.Click cn.Open()

Dim ElectionResult As New End Sub


ElectionResultMaker
Public Sub LogIn(Username As
ElectionResult.CreateElectionResult( String, Password As String)
)
Dim UserMaker As User
End Sub
End Class con()

sql = String.Format("SELECT *
FROM [Users] WHERE
db.vb Username='{0}'", Username)

90
cmd = New
OleDbCommand(sql, cn) 'UserMaker.AccessUserInformation("
dr = cmd.ExecuteReader Admin")
Dim UsernameExists As If dr("Admin") Then
Boolean = dr.Read
Admin_Page.setUser(UserMaker)
sql = String.Format("SELECT * Admin_Page.Show()
FROM (SELECT * FROM [Users] Else
WHERE Username='{0}') WHERE
Password='{1}'", Username, Main_Page.setUser(UserMaker)
Password) Main_Page.Show()
cmd = New End If
OleDbCommand(sql, cn) Else
dr = cmd.ExecuteReader Dim txt As String = "Sign in
Dim PassowrdExists As not successful."
Boolean = dr.Read Dim tit As String = "User Sign
In"
'sql = String.Format("SELECT * MessageBox.Show(txt, tit,
FROM [Users] WHERE MessageBoxButtons.OK,
Username='{0}' AND MessageBoxIcon.Error)
Password='{1}'", Username, Login_Page.MistakeCounter
Password) = Login_Page.MistakeCounter + 1
'cmd = New End If
OleDbCommand(sql, cn) End Sub
'dr = cmd.ExecuteReader
End Module
If UsernameExists And
PassowrdExists Then
Dim txt As String =
"Successfully signed in." User.vb
Dim tit As String = "User Sign
In" Imports System.Data.OleDb
'MessageBox.Show(txt, tit, Imports
MessageBoxButtons.OK, System.Windows.Forms.VisualStyle
MessageBoxIcon.Asterisk) s.VisualStyleElement.StartPanel

UserMaker = New User(dr) Public Class User


Login_Page.Hide()
Public userID As Integer

91
Public Sub New(drIn As Dim extractNames As String()
OleDbDataReader) Dim StartDate As Date
userID = dr("ID") Dim EndDate As Date
End Sub Dim StartDateDisplay As String
Dim returnDR As Dim EndDateDisplay As String
OleDbDataReader Dim NameOfVoter As String
Public Function Dim Grade As String
AccessUserInformation() As Dim Strand As String
OleDbDataReader Dim Section As String
Dim LRN As String
Dim returnDR As
OleDbDataReader Public Sub New(names As String)

sql = String.Format("SELECT * 'Height and Width of the


FROM [Users] WHERE [ID] = {0}", generated ballot
userID)
cmd = New Ballot.DefaultPageSettings.PaperSiz
OleDbCommand(sql, cn) e = New PaperSize("Ballot", 500,
returnDR = cmd.ExecuteReader 800)
returnDR.Read() BallotPreview.Document =
Ballot
Return returnDR VotedFor = names
End Function
End Sub
End Class
Public Sub CreateBallot()

sql = String.Format("SELECT *
BallotMaker.vb FROM [Election] WHERE
Ongoing=True")
Imports System.Data.OleDb cmd = New
Imports System.Drawing.Printing OleDbCommand(sql, cn)
dr = cmd.ExecuteReader
Public Class BallotMaker If dr.Read Then
ElectionName =
Dim WithEvents Ballot As New dr("ElectionName")
PrintDocument
Dim BallotPreview As New Try
PrintPreviewDialog StartDate =
Dim ElectionName As String dr("ElectionStart")
Dim VotedFor As String

92
StartDateDisplay = Next
StartDate.ToString.Split(" ")(0)
Dim datearray As String() '
= StartDate.ToString.Split(" ") sql = String.Format("SELECT *
(0).Split("/") FROM [Users] WHERE [ID]={0}",
Dim month As String Main_Page.CurrentUser.AccessUser
month = Information("ID"))
DetermineMonth(datearray(1)) cmd = New
StartDateDisplay = month OleDbCommand(sql, cn)
& " " & datearray(1) & ", " & dr = cmd.ExecuteReader
datearray(2) If dr.Read Then
Catch ex As Exception NameOfVoter =
StartDateDisplay = "N/A" dr("Firstname") + dr("Lastname")
End Try Grade = dr("Grade")
Strand = dr("Strand")
Try Section = dr("Section")
EndDate = LRN = dr("LRN")
dr("ElectionEnd") End If
Dim datearray As String()
= EndDate.ToString.Split(" ") BallotPreview.ShowDialog()
(0).Split("/") End Sub
Dim month As String Private Sub
month = Ballot_PrintPage(sender As Object,
DetermineMonth(datearray(1)) e As PrintPageEventArgs) Handles
EndDateDisplay = month & Ballot.PrintPage
" " & datearray(1) & ", " &
datearray(2) 'FONTS
Catch ex As Exception Dim TitleFont As New
EndDateDisplay = "Yet To Font("Candara", 22, FontStyle.Bold)
End" Dim SubtitleFont As New
End Try Font("Candara", 16, FontStyle.Bold)
Dim BodyFont As New
End If Font("Candara", 12, FontStyle.Bold)

extractNames = 'TEXT POSITION


VotedFor.Split("#") Dim LeftPosition As Integer =
For i As Integer = 0 To 10
extractNames.Length - 1 Dim CenterPosition As Integer
If extractNames(i) = "" Then =
extractNames(i) = "N/A" Ballot.DefaultPageSettings.PaperSiz
End If e.Width / 2

93
Dim RightPosition As Integer =
Ballot.DefaultPageSettings.PaperSiz e.Graphics.DrawString(StartDateDis
e.Width - 10 play, BodyFont, Brushes.Black,
RightPosition, 210, RightAlignment)
'TEXT ALIGNMENT
Dim RightAlignment As New e.Graphics.DrawString(EndDateDisp
StringFormat lay, BodyFont, Brushes.Black,
Dim CenterAlignment As New RightPosition, 240, RightAlignment)
StringFormat
RightAlignment.Alignment =
StringAlignment.Far e.Graphics.DrawString("__________
CenterAlignment.Alignment = _____________________________
StringAlignment.Center ________________", BodyFont,
Brushes.Black, CenterPosition, 260,
e.Graphics.DrawString("Official CenterAlignment)
Ballot Receipt of the " & vbCrLf &
"Supreme Student Government" & e.Graphics.DrawString("I
vbCrLf & "Election", TitleFont, VOTED FOR:", SubtitleFont,
Brushes.Black, CenterPosition, 15, Brushes.Black, CenterPosition, 290,
CenterAlignment) CenterAlignment)

e.Graphics.DrawString(ElectionNam
e, SubtitleFont, Brushes.Black, e.Graphics.DrawString("President:",
CenterPosition, 140, BodyFont, Brushes.Black,
CenterAlignment) LeftPosition, 330)
e.Graphics.DrawString("Vice
President:", BodyFont,
e.Graphics.DrawString("__________ Brushes.Black, LeftPosition, 360)
_____________________________
________________", BodyFont, e.Graphics.DrawString("Secretary:",
Brushes.Black, CenterPosition, 170, BodyFont, Brushes.Black,
CenterAlignment) LeftPosition, 390)

e.Graphics.DrawString("Date e.Graphics.DrawString("Treasurer:",
Started:", BodyFont, Brushes.Black, BodyFont, Brushes.Black,
LeftPosition, 210) LeftPosition, 420)
e.Graphics.DrawString("Date
Ended:", BodyFont, Brushes.Black, e.Graphics.DrawString("Auditor:",
LeftPosition, 240) BodyFont, Brushes.Black,
LeftPosition, 450)

94
e.Graphics.DrawString("Public
Information Officer:", BodyFont, e.Graphics.DrawString(extractName
Brushes.Black, LeftPosition, 480) s(7), BodyFont, Brushes.Black,
e.Graphics.DrawString("Peace RightPosition, 540, RightAlignment)
Officer:", BodyFont, Brushes.Black,
LeftPosition, 510) e.Graphics.DrawString(extractName
e.Graphics.DrawString("Grade s(8), BodyFont, Brushes.Black,
12 Representative:", BodyFont, RightPosition, 570, RightAlignment)
Brushes.Black, LeftPosition, 540)
e.Graphics.DrawString("Grade
11 Representative:", BodyFont, e.Graphics.DrawString("__________
Brushes.Black, LeftPosition, 570) _____________________________
________________", BodyFont,
Brushes.Black, CenterPosition, 600,
e.Graphics.DrawString(extractName CenterAlignment)
s(0), BodyFont, Brushes.Black,
RightPosition, 330, RightAlignment) e.Graphics.DrawString("Name
of voter:", BodyFont, Brushes.Black,
e.Graphics.DrawString(extractName LeftPosition, 630)
s(1), BodyFont, Brushes.Black, e.Graphics.DrawString("LRN:",
RightPosition, 360, RightAlignment) BodyFont, Brushes.Black,
LeftPosition, 660)
e.Graphics.DrawString(extractName
s(2), BodyFont, Brushes.Black, e.Graphics.DrawString("Strand:",
RightPosition, 390, RightAlignment) BodyFont, Brushes.Black,
LeftPosition, 690)
e.Graphics.DrawString(extractName e.Graphics.DrawString("Grade
s(3), BodyFont, Brushes.Black, and Section:", BodyFont,
RightPosition, 420, RightAlignment) Brushes.Black, LeftPosition, 720)

e.Graphics.DrawString(extractName
s(4), BodyFont, Brushes.Black, e.Graphics.DrawString(NameOfVote
RightPosition, 450, RightAlignment) r, BodyFont, Brushes.Black,
RightPosition, 630, RightAlignment)
e.Graphics.DrawString(extractName e.Graphics.DrawString(LRN,
s(5), BodyFont, Brushes.Black, BodyFont, Brushes.Black,
RightPosition, 480, RightAlignment) RightPosition, 660, RightAlignment)
e.Graphics.DrawString(Strand,
e.Graphics.DrawString(extractName BodyFont, Brushes.Black,
s(6), BodyFont, Brushes.Black, RightPosition, 690, RightAlignment)
RightPosition, 510, RightAlignment)

95
e.Graphics.DrawString(Grade &
" + " & Section, BodyFont,
Brushes.Black, RightPosition, 720, ElectionResultMaker.vb
RightAlignment)
Imports System.Data.OleDb
Imports System.Drawing.Printing
End Sub Imports
System.Runtime.InteropServices.Co
Private Function mTypes
DetermineMonth(number As String) Imports System.Text
Select Case number Imports
Case "01" System.Windows.Forms.VisualStyle
Return "January" s.VisualStyleElement.ToolTip
Case "02" Imports
Return "February" Microsoft.VisualBasic.Devices
Case "03"
Return "March" Public Class ElectionResultMaker
Case "04"
Return "April" Dim WithEvents ElectionResult As
Case "05" New PrintDocument
Return "May" Dim ElectionResultPreview As
Case "06" New PrintPreviewDialog
Return "June" Dim ElectionName As String
Case "07" Dim StartDate As String
Return "July" Dim EndDate As String
Case "08" Dim StartDateDisplay As String
Return "August" Dim EndDateDisplay As String
Case "09"
Return "September" Dim Candidate As ArrayList =
Case "10" New ArrayList()
Return "October"
Case "11" 'FONT
Return "November" Dim TitleFont As New Font("Arial",
Case "12" 18, FontStyle.Bold)
Return "December" Dim SubtitleFont As New
Case Else Font("Arial", 13, FontStyle.Underline)
Return "MonthName" Dim BodyFont As New
End Select Font("Arial", 11, FontStyle.Regular)
End Function Dim BodyFontB As New
End Class Font("Arial", 10, FontStyle.Bold)

96
'TEXT POSITION
Dim Width As Integer = Public Sub CreateElectionResult()
(ElectionResult.DefaultPageSettings.
PaperSize.Width) 'GET THE ELECTION DATA
Dim Height As Integer = sql = String.Format("SELECT *
(ElectionResult.DefaultPageSettings. FROM [Election] WHERE
PaperSize.Height) Ongoing=True")
Dim LeftPosition As Integer = 30 cmd = New
Dim CenterPosition As Integer = OleDbCommand(sql, cn)
ElectionResult.DefaultPageSettings. dr = cmd.ExecuteReader
PaperSize.Width / 2 If dr.Read Then
Dim RightPosition As Integer = ElectionName =
ElectionResult.DefaultPageSettings. dr("ElectionName")
PaperSize.Width - 40 Try
Dim LeftColumnPosition As StartDate =
Integer = LeftPosition dr("ElectionStart")
Dim CenterColumnPosition As StartDateDisplay =
Integer = Width / 3 + 25 StartDate.ToString.Split(" ")(0)
Dim RightColumnPosition As Dim datearray As String()
Integer = (Width * 2) / 3 + 10 = StartDate.ToString.Split(" ")
(0).Split("/")
'TEXT ALIGNMENT Dim month As String
Dim LeftAlignment As New month =
StringFormat DetermineMonth(datearray(1))
Dim RightAlignment As New StartDateDisplay = month
StringFormat & " " & datearray(1) & ", " &
Dim CenterAlignment As New datearray(2)
StringFormat Catch ex As Exception
StartDateDisplay = "N/A"
End Try
Public Sub New()
Try
EndDate =
ElectionResult.DefaultPageSettings. dr("ElectionEnd")
PaperSize = New Dim datearray As String()
PaperSize("Letter", 850, 1100) = EndDate.ToString.Split(" ")
(0).Split("/")
ElectionResultPreview.Document = Dim month As String
ElectionResult month =
DetermineMonth(datearray(1))
End Sub

97
EndDateDisplay = month & dr("C_Firstname") & " " &
" " & datearray(1) & ", " & dr("C_Lastname")
datearray(2) If
Catch ex As Exception candidate_fullname.Split("#")(1) =
EndDateDisplay = "Yet To "novote novote" Then
End" names.Add(dr("Vote")
End Try & "#" & "Did Not Vote")
Else
End If
names.Add(candidate_fullname)
'GET THE NAMES OF ALL End If
CANDIDATES
Dim positions As String() = { End While
"President", Candidate.Add(names)
"Vice President", End If
"Secretary",
"Treasurer", i=i+1
"Auditor", Next
"Public Information Officer",
"Peace Officer", For Each SubArrayList As
"Grade 12 Representative", ArrayList In Candidate
"Grade 11 Representative"} SubArrayList.Sort()
SubArrayList.Reverse()
Dim i As Integer = 0 Next
For Each position As String In
positions ' Set the alignment
LeftAlignment.Alignment =
Dim names As New StringAlignment.Near
ArrayList() RightAlignment.Alignment =
StringAlignment.Far
sql = String.Format("SELECT CenterAlignment.Alignment =
* FROM [Candidates] WHERE StringAlignment.Center
[C_Position]='{0}'", position)
cmd = New
OleDbCommand(sql, cn)
dr = cmd.ExecuteReader ElectionResultPreview.ShowDialog()
If dr.HasRows Then
While dr.Read() End Sub
Dim candidate_fullname
As String = dr("Vote") & "#" & Private Sub
ElectionResult_PrintPage(sender As

98
Object, e As PrintPageEventArgs)
Handles ElectionResult.PrintPage e.Graphics.DrawString("President",
BodyFontB, Brushes.Black,
Dim x As Integer = 50 LeftColumnPosition, x,
Dim y = x LeftAlignment)
Dim z = x e.Graphics.DrawString("Vice
Dim inc = 25 'Increment per line President", BodyFontB,
Brushes.Black,
'MsgBox(Width & " " & Height) CenterColumnPosition, x,
LeftAlignment)
e.Graphics.DrawRectangle(Pens.Bla
ck, 10, 10, 790, 1050) e.Graphics.DrawString("Secretary",
BodyFontB, Brushes.Black,
'e.Graphics.DrawRectangle(Pens.Blu RightColumnPosition, x,
e, 2, 2, 800, 1100) LeftAlignment)
e.Graphics.DrawString("Votes",
e.Graphics.DrawString("Official BodyFontB, Brushes.Black,
Election Results of " & vbCrLf & LeftColumnPosition + (Width / 3) -
ElectionName, TitleFont, 25, x, RightAlignment)
Brushes.Black, CenterPosition, x, e.Graphics.DrawString("Votes",
CenterAlignment) BodyFontB, Brushes.Black,
CenterColumnPosition + (Width / 3) -
e.Graphics.DrawString("Election 25, x, RightAlignment)
Start Date: " & vbCrLf & e.Graphics.DrawString("Votes",
StartDateDisplay, SubtitleFont, BodyFontB, Brushes.Black,
Brushes.Black, LeftPosition, x, RightPosition, x, RightAlignment)
LeftAlignment) x = x + inc - 10
DrawHorizontalColumnLine(e,
e.Graphics.DrawString("Election End x, "LCR")
Date: " & vbCrLf & EndDateDisplay, y=x
SubtitleFont, Brushes.Black, z=x
RightPosition, x, RightAlignment)
For Each name As String In
x = x + 75 Candidate(0)

' President, Vice President, e.Graphics.DrawString(name.Split("#


Secretary ")(1), BodyFont, Brushes.Black,
DrawHorizontalColumnLine(e, LeftColumnPosition, x,
x, "LCR") LeftAlignment)
DrawVeritcalColumnLine(e, x,
inc, "LCR") e.Graphics.DrawString(name.Split("#

99
")(0), BodyFont, Brushes.Black, DrawVeritcalColumnLine(e,
LeftColumnPosition + (Width / 3) - x, inc, "LCR")
25, x, RightAlignment) x = x + inc
DrawVeritcalColumnLine(e, Next
x, inc, "LCR") If x > z Then z = x
x = x + inc DrawHorizontalColumnLine(e,
Next z, "LCR")
If x > z Then z = x
x = z + inc
x=y
For Each name As String In ' Treasurer, Auditor, Public
Candidate(1) Information Officer
DrawHorizontalColumnLine(e,
e.Graphics.DrawString(name.Split("# x, "LCR")
")(1), BodyFont, Brushes.Black, DrawVeritcalColumnLine(e, x,
CenterColumnPosition, x, inc, "LCR")
LeftAlignment)
e.Graphics.DrawString("Treasurer",
e.Graphics.DrawString(name.Split("# BodyFontB, Brushes.Black,
")(0), BodyFont, Brushes.Black, LeftColumnPosition, x,
CenterColumnPosition + (Width / 3) - LeftAlignment)
25, x, RightAlignment)
DrawVeritcalColumnLine(e, e.Graphics.DrawString("Auditor",
x, inc, "LCR") BodyFontB, Brushes.Black,
x = x + inc CenterColumnPosition, x,
Next LeftAlignment)
If x > z Then z = x e.Graphics.DrawString("Public
Information Officer", BodyFontB,
x=y Brushes.Black,
For Each name As String In RightColumnPosition, x,
Candidate(2) LeftAlignment)
e.Graphics.DrawString("Votes",
e.Graphics.DrawString(name.Split("# BodyFontB, Brushes.Black,
")(1), BodyFont, Brushes.Black, LeftColumnPosition + (Width / 3) -
RightColumnPosition, x, 25, x, RightAlignment)
LeftAlignment) e.Graphics.DrawString("Votes",
BodyFontB, Brushes.Black,
e.Graphics.DrawString(name.Split("# CenterColumnPosition + (Width / 3) -
")(0), BodyFont, Brushes.Black, 25, x, RightAlignment)
RightPosition, x, RightAlignment)

100
e.Graphics.DrawString("Votes", DrawVeritcalColumnLine(e,
BodyFontB, Brushes.Black, x, inc, "LCR")
RightPosition, x, RightAlignment) x = x + inc
x = x + inc - 10 Next
DrawHorizontalColumnLine(e, If x > z Then z = x
x, "LCR")
y=x x=y
z=x For Each name As String In
x=x+5 Candidate(5)

For Each name As String In e.Graphics.DrawString(name.Split("#


Candidate(3) ")(1), BodyFont, Brushes.Black,
RightColumnPosition, x,
e.Graphics.DrawString(name.Split("# LeftAlignment)
")(1), BodyFont, Brushes.Black,
LeftColumnPosition, x, e.Graphics.DrawString(name.Split("#
LeftAlignment) ")(0), BodyFont, Brushes.Black,
RightPosition, x, RightAlignment)
e.Graphics.DrawString(name.Split("# DrawVeritcalColumnLine(e,
")(0), BodyFont, Brushes.Black, x, inc, "LCR")
LeftColumnPosition + (Width / 3) - x = x + inc
25, x, RightAlignment) Next
DrawVeritcalColumnLine(e, If x > z Then z = x
x, inc, "LCR") DrawHorizontalColumnLine(e,
x = x + inc z, "LCR")
Next
If x > z Then z = x x = z + inc

x=y ' Peace Officer, G12Rep,


For Each name As String In G11Rep
Candidate(4) DrawHorizontalColumnLine(e,
x, "LCR")
e.Graphics.DrawString(name.Split("# DrawVeritcalColumnLine(e, x,
")(1), BodyFont, Brushes.Black, inc, "LCR")
CenterColumnPosition, x, e.Graphics.DrawString("Peace
LeftAlignment) Officer", BodyFontB, Brushes.Black,
LeftColumnPosition, x,
e.Graphics.DrawString(name.Split("# LeftAlignment)
")(0), BodyFont, Brushes.Black, e.Graphics.DrawString("Gr.12
CenterColumnPosition + (Width / 3) - Representative", BodyFontB,
25, x, RightAlignment) Brushes.Black,

101
CenterColumnPosition, x, If x > z Then z = x
LeftAlignment)
e.Graphics.DrawString("Gr.11 x=y
Representative", BodyFontB, For Each name As String In
Brushes.Black, Candidate(7)
RightColumnPosition, x,
LeftAlignment) e.Graphics.DrawString(name.Split("#
e.Graphics.DrawString("Votes", ")(1), BodyFont, Brushes.Black,
BodyFontB, Brushes.Black, CenterColumnPosition, x,
LeftColumnPosition + (Width / 3) - LeftAlignment)
25, x, RightAlignment)
e.Graphics.DrawString("Votes", e.Graphics.DrawString(name.Split("#
BodyFontB, Brushes.Black, ")(0), BodyFont, Brushes.Black,
CenterColumnPosition + (Width / 3) - CenterColumnPosition + (Width / 3) -
25, x, RightAlignment) 25, x, RightAlignment)
e.Graphics.DrawString("Votes", DrawVeritcalColumnLine(e,
BodyFontB, Brushes.Black, x, inc, "LCR")
RightPosition, x, RightAlignment) x = x + inc
x = x + inc - 10 Next
DrawHorizontalColumnLine(e, If x > z Then z = x
x, "LCR")
y=x x=y
z=x For Each name As String In
x=x+5 Candidate(8)

For Each name As String In e.Graphics.DrawString(name.Split("#


Candidate(6) ")(1), BodyFont, Brushes.Black,
RightColumnPosition, x,
e.Graphics.DrawString(name.Split("# LeftAlignment)
")(1), BodyFont, Brushes.Black,
LeftColumnPosition, x, e.Graphics.DrawString(name.Split("#
LeftAlignment) ")(0), BodyFont, Brushes.Black,
RightPosition, x, RightAlignment)
e.Graphics.DrawString(name.Split("# DrawVeritcalColumnLine(e,
")(0), BodyFont, Brushes.Black, x, inc, "LCR")
LeftColumnPosition + (Width / 3) - x = x + inc
25, x, RightAlignment) Next
DrawVeritcalColumnLine(e, If x > z Then z = x
x, inc, "LCR") DrawHorizontalColumnLine(e,
x = x + inc z, "LCR")
Next End Sub

102
New Point(LeftColumnPosition, x),
Private Sub New Point(LeftColumnPosition, x +
DrawHorizontalColumnLine(e As y))
PrintPageEventArgs, x As Integer,
column As String) e.Graphics.DrawLine(Pens.Black,
New Point(LeftColumnPosition +
If column.Contains("L") Then (Width / 3) - 25, x), New
Point(LeftColumnPosition + (Width /
e.Graphics.DrawLine(Pens.Black, 3) - 25, x + y))
New Point(LeftColumnPosition, x), End If
New Point(LeftColumnPosition +
(Width / 3) - 25, x)) If column.Contains("C") Then
End If 'DRAW SECOND COLUMN
VERTICAL BORDER
If column.Contains("C") Then
e.Graphics.DrawLine(Pens.Black,
e.Graphics.DrawLine(Pens.Black, New Point(CenterColumnPosition,
New Point(CenterColumnPosition, x), New
x), New Point(CenterColumnPosition Point(CenterColumnPosition, x + y))
+ (Width / 3) - 25, x))
End If e.Graphics.DrawLine(Pens.Black,
New Point(CenterColumnPosition +
If column.Contains("R") Then (Width / 3) - 25, x), New
Point(CenterColumnPosition +
e.Graphics.DrawLine(Pens.Black, (Width / 3) - 25, x + y))
New Point(RightColumnPosition, x), End If
New Point(RightPosition, x))
End If If column.Contains("R") Then
'DRAW THIRD COLUMN
End Sub VERTICAL BORDER

Private Sub e.Graphics.DrawLine(Pens.Black,


DrawVeritcalColumnLine(e As New Point(RightColumnPosition, x),
PrintPageEventArgs, x As Integer, y New Point(RightColumnPosition, x +
As Integer, column As String) y))

If column.Contains("L") Then e.Graphics.DrawLine(Pens.Black,


'DRAW FIRST COLUMN New Point(RightPosition, x), New
VERTICAL BORDERS Point(RightPosition, x + y))
End If
e.Graphics.DrawLine(Pens.Black,

103
End Sub
Private Structure ControlInfo
Private Function Public name As String
DetermineMonth(number As String) Public parentName As String
Select Case number Public leftOffsetPercent As
Case "01" Double
Return "January" Public topOffsetPercent As
Case "02" Double
Return "February" Public heightPercent As Double
Case "03" Public originalHeight As Integer
Return "March" Public originalWidth As Integer
Case "04" Public widthPercent As Double
Return "April" Public originalFontSize As
Case "05" Single
Return "May" End Structure
Case "06"
Return "June" Private ctrlDict As Dictionary(Of
Case "07" String, ControlInfo) = New
Return "July" Dictionary(Of String, ControlInfo)
Case "08"
Return "August" Public Sub FindAllControls(thisCtrl
Case "09" As Control)
Return "September"
Case "10" For Each ctl As Control In
Return "October" thisCtrl.Controls
Case "11" Try
Return "November" If Not IsNothing(ctl.Parent)
Case "12" Then
Return "December" Dim parentHeight =
Case Else ctl.Parent.Height
Return "MonthName" Dim parentWidth =
End Select ctl.Parent.Width
End Function
End Class Dim c As New
ControlInfo
c.name = ctl.Name
c.parentName =
Resizer.vb ctl.Parent.Name
c.topOffsetPercent =
Public Class Resizer Convert.ToDouble(ctl.Top) /
Convert.ToDouble(parentHeight)

104
c.leftOffsetPercent = Try
Convert.ToDouble(ctl.Left) / If Not IsNothing(ctl.Parent)
Convert.ToDouble(parentWidth) Then
c.heightPercent = Dim parentHeight =
Convert.ToDouble(ctl.Height) / ctl.Parent.Height
Convert.ToDouble(parentHeight) Dim parentWidth =
c.widthPercent = ctl.Parent.Width
Convert.ToDouble(ctl.Width) /
Convert.ToDouble(parentWidth) Dim c As New
c.originalFontSize = ControlInfo
ctl.Font.Size
c.originalHeight = Dim ret As Boolean =
ctl.Height False
c.originalWidth = Try
ctl.Width ret =
ctrlDict.Add(c.name, c) ctrlDict.TryGetValue(ctl.Name, c)
End If
If (ret) Then
Catch ex As Exception ctl.Width =
Debug.Print(ex.Message) Int(parentWidth * c.widthPercent)
End Try ctl.Height =
Int(parentHeight * c.heightPercent)
If ctl.Controls.Count > 0 Then
FindAllControls(ctl) ctl.Top =
End If Int(parentHeight *
c.topOffsetPercent)
Next ctl.Left =
Int(parentWidth * c.leftOffsetPercent)
End Sub
f = ctl.Font
Public Sub fontRatioW =
ResizeAllControls(thisCtrl As ctl.Width / c.originalWidth
Control) fontRatioH =
ctl.Height / c.originalHeight
Dim fontRatioW As Single fontRatio =
Dim fontRatioH As Single (fontRatioW +
Dim fontRatio As Single fontRatioH) / 2
Dim f As Font ctl.Font = New
Font(f.FontFamily,
For Each ctl As Control In c.originalFontSize *
thisCtrl.Controls fontRatio, f.Style)

105
End If
End If
Catch Next
End Try End Sub
End If
Catch ex As Exception End Class
End Try

If ctl.Controls.Count > 0 Then


ResizeAllControls(ctl)

106
I. User Manual

Table of Contents

Introduction

System Requirements

User Interface Overview

Contacting Support

Introduction

Welcome to the user manual for Voting System This document is intended to

provide you with all the information you need to get started with and use the

software effectively.

System Requirements

Before installing Voting system, please make sure your computer meets the

following requirements:

Operating system: Windows 10.

Processor: Intel or AMD processor with 64-bit support; Recommended: 2.8 GHz

or faster processor

RAM: 2 GB.

Hard disk space: Minimum 10 MB space needed.

User Interface Overview

107
Figure 5: Login Page

The login page is where the user inputs his or her username and

password to authenticate his or her own identity. It is also a layer of security

against people with malicious intent to the system.

108
Figure 6: Main Page

The main page shows where you can vote which candidate you want.

Figure 7: Account Settings

The account settings where you can change username and password.

109
Figure 8: Admin page

The admin page shows where you can create a new election or end election, edit

candidates, view the current vote, add user account and view archived users.

This is where you can name the election you will start.

110
Figure 10: Add candidate page

Add a candidate where you can add all the candidates and if it is president, vice

president etc.

Figure 11: Graph Result page

Graph result shows all the current vote results of the election.

111
Figure 12: add account page

Voters can input their information and create a user account to access the

system and its features.

Contacting Support

If you need further assistance with Voting System, please contact our support

team at benok.loslos@gmail.com .

112
J. Researcher’s Profile

113
114
115
116
117
118
119

You might also like