completed- the implementation of an online examination processing system for schools and...

173
THE IMPLEMENTATION OF AN ONLINE EXAMINATION PROCESSING SYSTEM FOR SCHOOLS AND UNIVERSITIES BY EKEOSEYE WILLIAMS PRESENTED TO THE DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE, FACULTY OF BASIC AND APPLIED SCIENCES, BENSON IDAHOSA UNIVERSITY, EDO STATE, NIGERIA. JUNE 2013

Upload: obinwafor-uzoma

Post on 29-Oct-2015

112 views

Category:

Documents


1 download

DESCRIPTION

Examination in practice

TRANSCRIPT

THE IMPLEMENTATION OF AN ONLINE EXAMINATION PROCESSING

SYSTEM FOR SCHOOLS AND UNIVERSITIES

BY

EKEOSEYE WILLIAMS

PRESENTED TO THE DEPARTMENT OF MATHEMATICS AND

COMPUTER SCIENCE, FACULTY OF BASIC AND APPLIED SCIENCES,

BENSON IDAHOSA UNIVERSITY, EDO STATE, NIGERIA.

JUNE 2013

ABSTRACT

We propose to develop a system that will enable academic institutions to prepare,

conduct, score, deliver examination results to participants remotely or online; thereby

saving the time and money that it usually takes to write, check, and print examination

papers and to prepare marking sheets. Other features contained in the proposed system

include the calculation of students Cumulative Grade Point Average (CGPA), which

is usually prone to errors by human. Furthermore, the system will have an interface

where candidates can download the brochures or files that contain the course-outline

or list of topics were exam questions should be expected to come from in order to help

them with areas of concentration. The purpose of this research is to eliminate the

problems posed by the manual or traditional method of conducting examinations

which includes distance, inconvenience, waste of time and money, over-dependence

(by the physically challenged and the sick), etc. In the end, we conclude with possible

enhancements in the project that might take us to a whole new world where students

may not need to be physically present in examination halls and yet be able to

participate in examinations remotely or over the internet.

CHAPTER ONE

INTRODUCTION

1.1 BACKGROUND OF THE STUDY

Online examination, sometimes referred as e-examination (electronic-examination),

are the examinations conducted through the internet or in an intranet (if within the

Organization) for a remote candidate(s). Most of the examinations issue results as the

candidate finish the examination, when there is an answer processing module also

included within the system. T h e s e e x a m i n a t i o n s are conducted as open-book

type examinations. Candidate is given a limited time to answer the questions and after

the time expiry the answer paper is disabled automatically and answers is sent to the

examiner. The examiner will evaluate answers, either through automated process or

manually and the results will be sent to the candidate through email or made available

in the web site. Today many organizations are conducting online examinations

worldwide successfully and issue results online, but most academic institutions are yet

to adopt this new system of examination for students.

The main advantage i s tha t i t can be conducted for remote candidates

and evaluation of answers can be fully automated for objective questions and other

essay type questions can be evaluated manually or through automated system,

depending on the nature of the question s and the requirements. Also online

examinations can be conducted at any time and does not incur higher cost as

traditional exam scenario as there is no paper work involved.

1.2 STATEMENT OF THE PROBLEM

The purpose of this research is to eliminate the problems posed by the manual or

traditional method of conducting examinations which includes distance,

inconvenience, waste of time and money, over-dependence (by the physically

challenged and the sick), etc. The present problems associated with the conduct of

JAMB examination are inadequate examination halls or classrooms to check and

control candidates during examination; impersonation in the examination hall;

leakages of examination questions; mercenaries hired by registered students to write

the exam for them; bribing examination officials -  supervisors and invigilators;

desperation of parents to buy live questions for their wards; conspiracy and

collaboration of security agents and officials of public examination to compromise the

integrity of the examination.

1.3 AIMS AND OBJECTIVES

this research is aimed at achieving lower long-term costs for conducting and

managing examinations in all academic institutions, providing greater flexibility with

respect to location and timing, improving reliability since machine marking is much

more reliable than human marking and improving impartiality since machine marking

does not 'know' the students so does not favour nor make allowances for minor errors;

thereby boosting the confidence that a large number of students are all being assessed

equally. It is also aimed at providing greater storage efficiency since tens of thousands

of answer scripts can be stored on a server compared to the physical space required for

paper scripts. Lastly, online examination over time will bring about innovations in

question styles; enhanced questions which incorporate interactivity and multimedia.

Some of the specific objectives of this research are listed as follow:

To reduce the large proportion of workload on examination, training, grading

and reviewing.

To increase the effectiveness and response system of examination marking and

record processing (i.e instant feedback to students).

To reduce the costs of examination conducts and management.

To avoid congestion of examination halls

To reduce opportunity for cheating.

To proffer solutions to students living in distant places.

To develop a system of examination model that is devoid of irregularities

and generally fair to all applicants

To explore the possibility of conducting a national e-Examination;

To investigate the level of ICT literacy of applicants.

1.4 SCOPE OF THE PROJECT

This research has been restricted to the simulation of the features described in the

aims and objective section of this project. Our implementation was demonstrated on a

personal computer using all relevant tools. Several software design tools and

programming languages are available for designing and developing applications that

can be used to implement remote or online medical system but my implementation

uses PHP, MySQL database, and a mobile network.

1.5 RESEARCH METHODOLOGY

Two research methods were employed. First, an e-Examination system was designed

and implemented. The application was developed with the use of HTML, PHP and

MYSQL database for dynamism and tested on an Apache web server, hosted on the

University intranet. The second method was a research survey carried out among the

applicants. A set of questionnaire was designed and administered to applicants

seeking admission into Covenant University as a case study. The questionnaires were

administered immediately after the examination to the students to assess the adequacy

of the system and questions and their level of ICT literacy. The collected data was

analyzed based on descriptive statistics using statistical package for social sciences.

The population for this survey is 1,500 drawn candidates from all over the country and

a sample size of 200, which is based on the number of available PCs in the computing

laboratory where the examination took place. A total of 1351 questionnaire were

returned which represent 90% of them. Consequently, the examination was space over

a period of 25 days based on the number of systems and the convenience of the

students who traveled far and near to write the examination on the University intranet.

1.6 LIMITATION

The usefulness of an online examination processing system for academic institutions

has no limits. However, the limitations of the system itself are as follow:

Online examination system is not suitable for every type of assessment such as

extended response questions or essay questions

A common criticism of remote examinations used for summative purposes is

the difficulty of ensuring that cheating is minimized (Whittington, 1999;

Frohlich, 2000). Electronic examinations taken under supervised conditions

have been implemented (O’Hare, 2001), but we are interested in pursuing the

use of examinations in less formal settings, particularly in the home. Such

environments are similar to those in which distance education students

normally study and avoid the need to attend unfamiliar locations that only

heightens student anxiety. There are circumstances in which unsupervised

examinations are quite acceptable, for example, giving students experience of

the examination process through mock (pretend) examinations, and not in

actual examinations.

1.7 PROJECT LAYOUT

The research has five (5) Chapters. Chapter One presents background of the research

work in view, Chapter Two gives a literature work of the study, Chapter Three gives

an analysis of the existing manual system, Chapter Four presents a framework for the

proposed system design and implementation, while chapter Five contains the

summary, conclusion and recommendation.

CHAPTER TWO

REVIEW OF RELATED LITERATURE

Ayo et. al. (2007) defines online or e-examination as a system that “involves the

conduct of examinations through the web or the intranet” (p. 126). Though the

definition of Wikipedia is that of e-assessment, it is related to e-examination. E-

assessment in its broadest sense is the use of information technology for any

assessment related activity.

Ayo et al. (2007) also added that e-examination reduces the large proportion of

workload on examination, training, grading and reviewing, thus bringing the ability

for the institution to release examination results in record time. This is because where

the lecturer would spend weeks marking scripts manually, the computer would grade

the students as soon as they finish their paper.

Awosiyan (2010) quoting Prof. Olu Jegede, the former Vice-Chancellor of NOUN

(National Open University of Nigeria), stated that; “e-examination was introduced to

address series of anomalies being encountered in the manual tests. He said that the e-

examination would remove all human errors recorded in manual examination and

create opportunity for students to access their results immediately. With this, we have

removed so many hiccups in the compilation of answer scripts and movement of

examination papers from one part of the country to another. The examination is

conducted now through the net ... it would be difficult for students to carry out any

form of examination malpractice”

Gaytan (2007) presented a detailed historical background of online education,

with regards to its current status, its potentials and limitations that could lead to

the advancement of the scholarship of teaching and learning. He stressed the

need for online instructors to understand the way online education has evolved

over the years from previous conceptions of education and the wide array of

implications and assumptions involved in the delivery of online education. He

also presented some recommendations for the advancement of online education.

 A related work was done by M’hammed et al (2007), who worked on the

challenges in distance learning unit. He observed that inefficient management

could lead to a variety of problems in course delivery, such as delays in

obtaining textbooks, problems in obtaining copyright permission, and even

course delays. In an effort to facilitate, streamline and improve forms

management, a system was designed to streamline the management of required

forms for face-to-face, hybrid, online and televised courses. The system

developed provides faculty, and distance learning administrators with an easy

method to manage all forms effectively and efficiently.

The Nigerian Open University (NOU) is a typical example of e-learning and e-

examination platform where lectures are delivered through radio and television

broadcast and examinations conducted electronically. However, the deployment

of very small aperture terminals (VSATs) with video-conferencing was to

enhance the performance of NOU project effectively with a view to extending

the facilities to the rural dwellers (Oliver, 2003).  Osuji (2005) listed the

elements of distance learning as print media (print and electronic), occasional

face-to-face tutorials between teachers and the involvement of different role

players.

Furthermore, the Nigeria National IT(Information Technology) policy, which

was formulated in the year 2000, is responsible for the monumental

developments across the various sectors of the economy.  The vision is to make

Nigeria an IT capable country in Africa and a key player in the information

society.  Its primary mission is to “Use IT” for: education; creation of wealth;

poverty eradication; job creation; governance; health; agriculture; etc. (Ajayi,

2005). The drive has led to major developments such as the: Mobile Internet

Units (MIUs), which include busses equipped with ICT facilities such as PCs,

peripheral devices and VSAT which are used to carry ICT education to rural

areas; and the WIN Project, tagged “Wire Nigeria”.  It is intended to provide

ICT infrastructure to all the nooks and crannies of the country. The project

includes the provision of VSAT to the 774 local governments in the country,

and the installation of the necessary infrastructures particularly, fibre optic

backbone across the nation.

One approach, adopted by Cambridge Examination Board in relation to their

activities in Singapore, scans students’ hand written answers and transmits them

as bit maps to markers who use a software marking tool to grade and record

marks (Harding, 2002). In our environment we want to see the extent to which

the marking time can be reduced by the adoption of automatic marking. This

significantly changes the student experience of examinations from a written to a

typed exam and it is important to understand the impact of such a change. We

can assess the impact in two ways: by investigating students’ experiences of the

new medium and by comparing performance in the two environments. In this

paper we concentrate on student reactions to working in the new medium.

2.2 STAGES OF SYSTEMS DEVELOPMENT

In order to achieve a successful and running system, we intend to use the waterfall

model for software development; which is a sequential design process, often used in

software development processes, in which progress is seen as flowing steadily

downwards (like a waterfall) through the phases of Conception, Initiation, Analysis,

Design, Construction, Testing, Production/Implementation, and Maintenance.

In Royce's original waterfall model, the following phases are followed in order:

1. Requirements specification

2. Design

3. Construction (implementation or coding)

4. Integration

5. Testing and debugging

6. Installation

7. Maintenance

The waterfall model was adopted for this research for its simple and more disciplined

approach. The waterfall model provides a structured approach; the model itself

progresses linearly through discrete, easily understandable and explainable phases and

thus is easy to understand; it also provides easily identifiable milestones in the

development process. It is perhaps for this reason that the waterfall model is used as a

beginning example of a development model in many software engineering texts and

courses.

It is argued that the waterfall model can be suited to software projects that are stable

(especially those projects with unchanging requirements, such as with shrink wrap

software) and where it is possible and likely that designers will be able to fully predict

problem areas of the system and produce a correct design before implementation is

started. The waterfall model also requires that implementers follow the well-made,

complete design accurately, ensuring that the integration of the system proceeds

smoothly.

DEFINITION OF TERMS

Some important terms used in the course of this project are briefly defined below:

MODULE: in Computer Science a module is a portion of a program that carries out a

specific function and may be used alone or combined with other modules of the same

program.

PHP: is a server-side scripting language designed for web development but also used

as a general-purpose programming language. PHP is now installed on more than 244

million websites and 2.1 million web servers. Originally created by Rasmus Lerdorf in

1995, the reference implementation of PHP is now produced by The PHP Group.

While PHP originally stood for Personal Home Page, it now stands for PHP:

Hypertext Preprocessor, a recursive acronym

INTERNET: The Internet is a global system of interconnected computer networks that

use the standard Internet protocol suite (TCP/IP) to serve billions of users worldwide.

It is a network of networks that consists of millions of private, public, academic,

business, and government networks, of local to global scope, that are linked by a

broad array of electronic, wireless and optical networking technologies. The Internet

carries an extensive range of information resources and services, such as the inter-

linked hypertext documents of the World Wide Web (WWW) and the infrastructure to

support email.

WEB-SERVER: The term web server can refer to either the hardware (the computer)

or the software (the computer application) that helps to deliver web content that can be

accessed through the Internet. The most common use of web servers is to host

websites, but there are other uses such as gaming, data storage or running enterprise

applications

MOBILE NETWORK: mobile network is a radio network distributed over land areas

called cells, each served by at least one fixed-location transceiver, known as a cell site

or base station. When joined together, these cells provide radio coverage over a wide

geographic area. This enables a large number of portable transceivers (e.g., mobile

phones, pagers, etc.) to communicate with each other and with fixed transceivers and

telephones anywhere in the network, via base stations, even if some of the transceivers

are moving through more than one cell during transmission.

HTTP: The Hypertext Transfer Protocol (HTTP) is an application protocol for

distributed, collaborative, hypermedia information systems. HTTP is the foundation of

data communication for the World Wide Web.

HTTPS: Hypertext Transfer Protocol Secure (HTTPS) is a communications protocol

for secure communication over a computer network, with especially wide deployment

on the Internet. Technically, it is not a protocol in and of itself; rather, it is the result

of simply layering the Hypertext Transfer Protocol (HTTP) on top of the SSL/TLS

protocol, thus adding the security capabilities of SSL/TLS to standard HTTP

communications. In its popular deployment on the internet, HTTPS provides

authentication of the web site and associated web server that one is communicating

with, which protects against man-in-the-middle attacks. Additionally, it provides

bidirectional encryption of communications between a client and server, which

protects against eavesdropping and tampering with and/or forging the contents of the

communication.

DATABASE: A database is an organized collection of data. The data is typically

organized to model relevant aspects of reality (for example, the availability of rooms

in hotels), in a way that supports processes requiring this information (for example,

finding a hotel with vacancies).

MYSQL: ("My S-Q-L", officially, but also called "My Sequel") is (as of 2008) the

world's most widely used open source relational database management system

(RDBMS) that runs as a server providing multi-user access to a number of databases.

It is named after co-founder Michael Widenius' daughter, My. The SQL phrase stands

for Structured Query Language.

ICT: Information and Communications Technology or (ICT), is often used as an

extended synonym for information technology (IT), but is a more specific term that

stresses the role of unified communications and the integration of telecommunications

(telephone lines and wireless signals), computers as well as necessary enterprise

software, middleware, storage, and audio-visual systems, which enable users to

access, store, transmit, and manipulate information.

CHAPTER THREE

SYSTEM ANALYSIS AND DESIGN

3.1 SYSTEM ANALYSIS

System Analysis is one example of the many phases that form the System

Development Life Circle, (SDLC) which is a step-by-step approach to the

development of a complex system. System Analysis has to do with the gathering and

use of important information pertaining to a certain system. In a more plain definition,

system analysis has to do with the collection of data, understanding of the processes

involved, and identification of problems and recommendations that wholly affects the

performance of the system or is the process of analyzing a system with a view of

bringing out the problems in the existing system and consequently proffering an

alternative method usually a computerized system to curb the problems in the system.

In this research work, an investigation of the functions of the existing system

pertaining Transactions was investigated. Data about the existing system was gathered

through the use of personal interviews. The data was analyzed and interpreted in order

to draw conclusions and derive an “informal description” of the system being studied.

One major advantage of this informal system is that it highlights the weaknesses and

strengths of the system being studied and provides a starting point for the subsequent

design phase. System analysis helps to provide a new efficient system which satisfies

the need of the user or organization as well as giving room for future enhancements

and improvements by providing answers to the following questions such as: What is

being done, How is it being done, Who is doing it, When is he doing it, Why is it

being done and How can it be improved? During the system analysis a thorough

investigation of the old or existing system in use is carried out in order to properly

understand the information flow, the limitations and weaknesses the current system

possesses, providing of solutions to these limitations which may include the

improvement of the existing system or development of a complete system from

scratch. This section therefore seeks to examine the existing system with the intent of

improving it, or creating a new system, through better procedures and methods.

3.1.2 SYSTEM INVESTIGATION

System investigation provides a vivid understanding of the system to be investigated

and answers questions such as: what problems might a new or enhanced system solve?

What opportunities might be provided? What are the associated risks? Is it feasible?

Answers to such questions are gathered by various method of system investigation

such as conducting in-depth interviews, observation of the existing system during

operations. These various methods and others will be discussed in more details later in

this chapter.

The existing system used in Nigerian schools and universities and around most parts

of the Africa today enables students to sit for examinations within the school

premises, or in a special examination centre. Students must be physically present in

examination centres before they can participate in examinations. Therefore, students

who cannot make it to examination centres due to ill-health, distance, etc, cannot

participate in examinations. Furthermore, the present system makes it very difficult

for students to lay their complains and ask school or university authorities questions

about important issues that concerns examinations. The procedure for passing

information across to the authority goes through the class representative, through the

head of department, through the Dean of studies, to the Vice Chancellor; obviously,

this is a long process for a situation that requires an urgent attention. Our analysis also

uncovered the stress that both students and course advisers usually go through in cases

of missing results and errors in the calculation of grade points (GP); which usually

takes a very long time to resolve. We were fortunate to witness a case in Benson

Idahosa University where a final student’s cumulative grade point average (CGPA)

was wrongly calculated, and was awarded a second class lower division instead of a

second class upper division honors. It took the student a lot of guts and confidence to

protest and lay complain to the authorities of the university, and a lot of time before

the error was finally corrected. The fact that humans are prone to errors and that not

all students can stand-up with such confidence to face authorities, makes the proposed

system worthy to be given a very consideration.

The propose system seeks to correct the earlier stated lapses of the existing system by

creating a platform where students can participate in examinations regardless of their

locations. The proposed system also allows students to easily lay their complains and

ask exams and records officials exam related questions. Some of these questions and

complains could hail from cases of missing results, mistakes and clashes on

examination time-tables, incorrect calculation of Grade Points, etc; the proposed

system seeks to correct all these lapses.

The implementation of an online examination processing system for schools and

university provides a lime-light solution for both the administrative staff and students

by enabling easy querying, analysis and an automated compilation and computation of

results. Schools will no longer need to spend money on result booklets, answer sheets

and question papers. The burden mounted on course advisers in universities manually

resolving cases of missing result and calculating grade points will be totally

eliminated or significantly reduced.

3.1.2.1 FEASIBILITY STUDY

Feasibility study is a profound assessment of the existing or proposed system in order

to determine its strength and weaknesses, opportunities which are available , threats

that may be faced as presented by the environment, and the resources needed.

Feasibility study involves a short period of observation and interviews during which a

rapid investigation is conducted and a series of judgment on the existing system or

proposed system is made. There are two criteria to judge feasibility which include:

Cost Required

Value to Be Attained.

A well designed feasibility study should provide a historical background of the

system, description of products or services, details of the operations and management.

When writing a feasibility report, the following should be taken into consideration:

A brief description of the system

The exact part of the system being examined

The human and economic factors

The possible solutions to the problems.

During my feasibility study based on the investigation of the manual system I was

able to come up with the following results:

Technical Feasibility

In the 1950s and ‘60s, computers were enormous machines which filled up entire

rooms and where affordable only by large institutions and organizations. With the

rapid growth in technological enhancement, they now come in variety of shapes and

sizes which makes it easy for users to carry them around comfortably, and easily

affordable as well. Many Nigerians now have computers systems that are located in

their homes and offices or systems which can be carried about (Laptops), enabling

them make use of the online examination software from anywhere in the world.

Internet services have also be made easily available. Companies and cooperate

bodies can now have access to the internet by subscribing to an Internet Service

Provider (ISP), and with the introduction of Modems (which are small devices that

enable users have internet access from any location), students can connect to the

online examination software from anywhere in the world at the same time.

Schools and universities should have computer systems and internet facilities that

can enable them carry out the administration from the back-end of the application.

Operational Feasibility

Users that are already familiar with making use of a computer system and the

internet, might just have to acquire new skills on how to follow the procedures

involved in the online system. While those who do not know how to make use of a

computer system and the internet, will have to acquire the necessary knowledge and

skills on some of the basics, which with little or no efforts can be obtained.

During my investigation we observe that day-to-day activities and transactions are

now done more online than in any other way. Example of such day-to-day activities

include: sending of messages through Emails and discussion groups, purchase of

goods through online shopping, entertainment such as internet games, music and

videos. Since most of these activities are carried out in Nigeria, making use of and

managing the new system would be relatively easy.

With the observation stated above, the time duration for learning the operation of the

new system would be greatly reduced.

Economic Feasibility

Economic feasibility which is also commonly known as cost/benefit analysis is a used

method for evaluating the effectiveness of a system. The procedures are to determine

the benefit and savings that are expected from a system in comparison cost. In

developing such a system, costs which need to be considered include:

i. Purchase and addition of new hardware such as computer systems and back-up

systems.

ii. Software which would be used to carry out the task.

iii. Training of staff on the new systems.

While benefits derived from the cost would include:

i. Communication with students more easily with the acquisition of new systems.

ii. Proper organization and storage of examination records and files.

iii. Easy access to and retrieval of information, examination, and results data.

iv. Back up of student’s exam records for future reference and retrieval.

v. Elimination of question papers, answers sheets, and result booklets.

vi. Elimination of examination centres.

Once the cost/benefit are listed and evaluated, and the benefit outweighs cost, then the

decision will be design and implement the new system.

3.1.2.2 METHODS OF INVESTIGATION

The methods used to investigate and learn about the problems, opportunities

constraints and requirements of the system include observation, interviews, research

and site visits(physical and web sites), and resource materials.

OBSERVATION

Observation is one of the most effective data-collection techniques for obtaining and

understanding of a system. It is a fact-finding technique which involves physically

observing and monitoring the existing system. During the monitoring and observation

period, the system analyst (i.e. the individual who conducts the observation) either

chooses to participate in or watch other individuals perform various activities to learn

about the system. Observation can either be formal (i.e. planned) or informal (i.e.

unconscious approach), and both are equally useful.

Advantages

i. Observation is relatively inexpensive compared to other fact-finding techniques.

ii. The system analyst is able to see exactly what is being done.

iii. Data gathered by observation can be highly reliable.

INTERVIEW

Interviews are formal meetings where the analyst can obtain information about the

operation of the present system. This is a process whereby individuals involved in the

system are approached face to face and conversed with or asked questions. Interviews

may be conducted in the office, at home, on the street, or some other agreed location.

There are various types of interviews, and they are:

i. Informal, conversational interview

In this method, no predetermined questions are asked; this is done in order to

remain as open and adaptable as possible.

ii. General interview guide approach

This method provides more focus than the conversational method; in that it

ensures that the same general areas of information are obtained from each

interviewee.

iii. Standardized, open-ended interview

This approach facilitates a faster interview that can be more easily analyzed and

compared by making all interviewees provide answers to the same open-ended

questions (an open-ended question is where the respondent is free to choose

how to answer the question, i.e. they are not confined to a particular answer

pattern such as “yes” or “no”).

iv. Closed, fixed-response interview

This approach is useful for those not practiced in interviewing. Here, the

interviewees are asked the same questions and are made to make choices from a

set of alternatives.

Advantages

i. Interviews allow the systems analyst to probe for more feedback from the

interviewee.

ii. Interview gives the analyst an opportunity to motivate the interviewee to

respond freely and openly to questions.

iii. An interview gives the analyst an opportunity to observe the interviewee’s non

verbal communication.

RESEARCH AND SITE VISIT

The dictionary defines the word research as a methodical investigation into a subject

in order to discover facts, to establish or revise a theory, or to develop a plan of action

based on the facts discovered. Research and site visit has to do with the exploration of

an internet and the World Wide Web (www), via personal computers to search for

information. The internet can be used for various purposes. For some, the internet is

viewed as a source of entertainment and fun from which they can derive their

pleasures such as watching movies online, downloading of audio files and playing of

games. While to others the internet is an unrestricted repository where anything can be

found. The internet has provided various services from which information on any

subject can be researched; these services include search engines, blogs and forums. It

also involves going through computer journals and reference books.

RESOURCE MATERIAL

This is an approach which involves gathering of information from books, journals and

magazines that are related to the subject of study. The core purpose of these resource

materials is to assist in the research.

This will also involve getting some definitions and meaning of some terms used

during the course study from the above materials and also the dictionary.

Method used in this project

Amongst all the aforementioned techniques the one that was used in the course of this

project was observation, site visits and resource materials. I used these techniques

because they were relatively inexpensive and I was able to get direct answers to the

questions asked.

In observation I was able to gain information and data about how examinations are

conducted, how results are compiles, and how grade points are awarded. I was also

privileged to be given a special access to the exams and records department of Benson

Idahosa University, where I was able to get first-hand insight and detail on how

student’s results and transcripts are compiled and processed. I also witnessed the

drawbacks associated with the slothful progression of result compilation from

members of the administration, as they often depend on various departments of the

institution for the submission of exam records before further processes can take place

(e.g. the processing of a student’s transcript).

In site visits, I had to go online (i.e. visit the internet) to research and download

information related to this project. I visited some websites and made use of search

engines where I got a lot of useful information. In resource materials I got information

from books, journals and magazines that are related to the subject of study.

3.1.3 DATA ANALYSIS

Data analysis is a practice in which raw data is ordered and organized so that useful

information can be extracted from it. The process of organizing and thinking about

data is a key to understanding what the data does and does not contain. There are a

variety of ways in which people can approach data analysis. For this reason, it is

important to pay attention when data analysis is presented, and to think critically

about the data and the conclusions which were drawn.

Charts, graphs, and textual write-ups of data are all forms of data analysis. These

methods are designed to refine and distil the data so that the readers can glean

interesting information without needing to sort through all of the data on their own.

Summarizing data is often critical to supporting arguments made with that data, as is

presenting the data in a clear and understanding way.

There are various ways or techniques to analyze data. A list of some methods of data

analysis with a short note is given below:

i. Business Intelligence: This covers data analysis that relies strongly on

aggregation, focusing mainly on business information.

ii. Data Mining: This focuses on modeling and knowledge discovery for

predictive rather than purely descriptive purposes.

iii. Predictive Analysis: This deals with the application of statistical models

for predictive forecasting or classification.

iv. Text Analysis: This uses statistical. Linguistic and structural techniques

to extract and group information from textual sources.

A detailed analysis of data was carried out on how both students and academic

institutions carry out their exam operations, which gave rise to my choice of data

analysis which is Data Mining. From the analysis carried out, the data gotten was used

in the creation of the new system, the various challenges of the old system was

critically dealt with by the new system. Thus the requirements of the new system were

founded on the lapses of the old system.

3.2 SYSTEM DESIGN

3.2.1 DEFINITION

System design is the process of planning a new system based on the findings of a

system analysis. The purpose of system design is to document exactly how the new

system should work. In essence, this means preparing a detailed specification for the

new system.

This deals with the basic structure of the new system, its functionality, its

specification, its user requirements and a complete breakdown of how this new system

works. The completed design of the new system will provide satisfaction to the user’s

needs and requirements. The design will also help for maintenance later in the life

time of the system.

Some design tools used include: functional diagrams, hierarchical-input-process-

output (HIPO) Charts, input-process-output (IPO) charts and Flow Charts. These

design tools are used to describe the process involved in the various segments of the

new system.

System design is considered to be one of the most important phases of System

Development Life Cycle (SDLC). It is the phase were the proposed system

requirements with respect to input design requirement; process design requirement

and output design requirement are specified. The purpose of system design is to create

a technical solution that satisfies the functional requirement of the proposed system, as

well as help develop an efficient and effective system that would give the desired

output when the design is proved feasible.

These design requirements are specified in line with the user requirements, goals and

objective. Normally, the system design proceeds in two stages:

i. Preliminary or general design

ii. Structure or detailed design

Preliminary or general design

In design, the features of the new system are specified. The costs of implementing

these features and the benefits to be derived are estimated. If the project is still

considered to be feasible, we move to the detailed design stage.

Structure or detailed design

In the detailed design stage, computer oriented work begins in earnest and also it is at

this stage that design of the system becomes more structured. Structured design is a

blue print of a computer system solution to a given problem having the same

components as the original problem. Input, processing, and output specification are

drawn up in detail.

3.2.2 STEPS INVOLVED IN SYSTEM DESIGN

The following steps are involved in system design

i. Input requirement

ii. Output requirement

iii. File and storage requirement

iv. Process

v. Control and backup

vi. Personnel and procedures

Input requirement

Before data can be received as output, information first has to be fed to the system

(which is called the input), processed and then displayed as the desired output. The

system is an interactive one and the information is inputted into the system via

keyboard. The system will be able to accommodate data entry in an interactive mode

promptly with proper validation and access authorization. It will be able to accept the

necessary data, view and record data. So the proposed system will have the facility to

modify data where necessary.

The snap shots below show some of the application’s input interfaces:

Fig.3.1: Input Login Details

The interface shown in fig. 3.1 is the index page or the first page displayed by the

application, where users (both students and admin) can input their login details before

they can be granted access to the system.

Fig.3.2: Input Student Information

(Registration)

Here is another input interface where students who are yet to register can input

their information on the form provided by the system, before registration can

take place.

Fig 3.3: Input Course Information

The input interface shown in fig 3.3 will enable staffs, lecturers or the admin, to

register a course into the system. Here, the course title, the course code, and

other information associated with the course can be inputted and registered.

Fig 3.4: Input Exam Information

Fig. 3.4 displays an interface where some of the exam’s details can be inputted

into the system’s record. Here, the admin is expected to label an exam as first

semester or second semester examination (i.e. 1st term, 2nd term, or 3rd term

examination for primary schools). Here, the period and duration of the

examination is also specified.

Fig 3.5: Input New Exam Question

On the interface above, an exam question can be set and attached to a particular

course already registered in the system. The mark for each question is also

expected to be inputted or specified here.

Fig 3.6: Input Options for Exam Question

Each question is expected to have answer options ranging from "a" to "d", "e" or "f",

as the case may be. These options are inputted using this interface, and the correct

option is also expected to be specified here.

Fig 3.6: Input Answer Choice

In fig. 3.6, an examination in progress is shown where the student is expected to select

the answer of his choice from the list of options provided. Only one answer can be

inputted into the system by clicking on one of the radio buttons next to the option.

Fig 3.7: Input Question or Complain

The system includes an interface where students can post exam related questions and

lay complains to the admin. The question(s) or complain(s) must be written in the

message text box and inputted into the system’s database using the “post” command.

Output requirement

One major thing that is of great interest to the administrators and the users, is the

output produced by the system (i.e. The Online Examination System). It is very

important to state the output that the system will produce at the early stages of system

design. i.e. what must be produced? It dictates to a large extent how the input,

processing and storage are to be handled.

The snap shots below show some of the application’s output interfaces:

Fig 3.8: Output Score

Fig 3.8 shows how the online examination system immediately outputs students result

after an examination.

Fig 3.9: Output Score, Grade and Grade-Point

A student can visit the exams and records page within his/her profile online. Here, the

list of courses taken and yet to be taken are outputted. Included in the output is the

student’s the score and grade for each course, the course code and title, the student’s

G.P, etc. The snapshot of these outputs on the exams records page is presented in fig

3.9.

Fig 3.9: Output Questions/Complains and Status

Questions and complains posted by a student are outputted and displayed on the

administrator’s page. However, students can also review their questions and

complains and check it their questions and complains have been resolved by the

admin.

Another important output feature contained in the application includes the ability for

the application to output video data from the computer’s web cam. The videos can be

streamed over the network via a real time messaging protocol (RTMP) server installed

on the administrators system. These videos are streamed back to the server to enable

examiners to better monitor the activities of the students remotely, while examinations

are in progress.

File and storage requirement

Here what the system needs to properly function is stated. These include the sizes,

contents, organization, media devices, formats, access restrictions, and locations for

all files the system will use. The inputs which are keyed into the system will be stored

and saved in a database. The analyst has to decide whether a new database needs to be

established or if an existing one can be used. The database server used here is

MySQL, the data would be called “emsdb”. The database would contain tables for

different individual purposes with records that would be retrieved to serve their

respective purposes. The storage device that is used is the hard disk drive.

The online examination database has six (6) tables namely: the complain, course,

exam, examiner, option, question, result, and student tables. The snap shots below

show the application’s Database tables:

Fig 3.10: Registered Students Information

Fig 3.10 presents a table for all registered students. The usernames, full names,

passwords, sexes, contact addresses and other personal information of the students are

automatically recorded and saved on this table after a student successfully registers

with the system.

Fig 3.11: Courses

This table contains information about registered courses i.e. course codes, course

titles, credit units etc.

Fig 3.12: Exam Information

The third table shown in figure 3.12 contains some general information about a

particular exam e.g. the description, level, semester, period, and duration of the exam.

Fig 3.14: Exam Questions

The table named “question” shown in fig. 3.14 contains all the examination questions,

the course for each respective question, the marks awarded to each question, etc. Note

that this information can be copied, edit or deleted from this end. Any change made to

the information here will automatically reflect at the front-end of the application. A

reputable and a trusted database administrator must therefore be assigned to manage

the application’s database.

Fig 3.15: Answer Options

The table shown above contains all the options for each question that is set (i.e. option

A to D). It also records the correct answers and the wrong answers, and the scores or

mark s for correct and wrong answers.

Fig 3.16: Complains

All complains posted by students are recorded and saved in the table presented above

(fig, 3.16).

Processing

Here a description of the various processing that is needed to convert input into

output. The analyst should consider if there would be any new required hardware

necessary for processing.

The online examination system requires that an exam must be taken before processing

of results can take place. Once a student clicks on “Take Exam” button, a process is

automatically instantiated to read the students inputs (i.e choice of answers), and a

timer is also activated to countdown the limited time allocated to the question. Note

that if a student fails to select an answer choice before the allocated time elapses, the

application processes the score for that question as “0” (zero). Same is the case if a

student skips a question. Furthermore, it is worthy of notice that a student cannot skip

backwards to the previous question (i.e. Once a question has been answered or

skipped, the student cannot go back to the question to re-answer or to re-skip it). Other

processes performed by the system include the automatic calculation of student's

Grade points. The formula used to perform the calculation of grade points can be

found in Benson Idahosa University student handbook, and the programming code for

this very important module of the application, can be found in appendix II of this

documentation.

Control and backup

Apart from the output being considered to be one of the most important parts of the

system, another aspect that should be taken very seriously is control and backup.

System controls are put in place in order to make sure that data are input, processed

and output correctly and to prevent data destruction, unauthorized program

modification and access, fraud and any other tampering that might occur. System

backups are copies of essential data and program files that are made periodically to

protect against inadvertent loss or malicious damage. These aspects were taken into

very serious consideration in the course if this research.

Personnel and procedures

The last aspect that need to be considered are the people who will make use of the

system and the procedures that they will have to follow in order to make use of it as

well. The new system will be accessed by students and the academic institution's

administrator who alone has access to the system's database. He controls the actions

that will occur from the back-end and monitor what the various users are doing and

inputting as well.

SYSTEM FLOW CHART

A flow-chart is a graphical map representation of the path of control or data through

the operations in a program or an information-handling system. Symbols such as

squares, diamonds, and ovals represent various operations. These symbols are

connected by lines and arrows to indicate the flow of data or control from one point to

another. Flowcharts are used both as aids in showing the way a proposed program will

work and as a means of understanding the operations of an existing program. It is also

a pictorial representation of an algorithm or program. It consists of a set of symbols.

Each symbol represents a specific activity. A typical problem involves accepting

input, processing the input, and displaying the output. The flowcharts shown (in

fig.3.17) below shows a simple algorithm of the new system as thus; once the user

accesses system and is sent to the index page (which is the first page displayed),

he/she can login as a student or admin. If the student has an account , he/she will have

access to the system and be taken directly to the user main page, where he will be able

to take their exams, view his result(I.e. Scores, grades, and G.P), lay their complains,

ask the admin questions, etc. If the students do not have an account, he will be

required to register a new account. If a user logs into the system as an "admin", he

will be able to view complains and questions asked by students. He will also be able

to set exam duration, post, edit, and delete examination questions for a given course.

No No

Start

Enter admin password Enter student’s username and

password

Authenticate login parameters

Authenticate login parameters

Is the password correct?

Are login parameter

s valid?

Yes Yes

Fig. 3.17 Flowchart Showing the Web Application’s General Launching Procedure

DATA DICTIONARY

A data dictionary defines each term encountered during the analysis and design of a

new system. It is a feature of a database (or a tool) where the data to be used in the

database are properly defined and linked as to their length, location etc. It helps the

user to know the type of data in the database and the restrictions if any. Below are

some examples of data dictionaries used for certain modules in the project.

TEST DATA

i. Get the administrators username and password.

ii. If the username and password is correct, then access is granted, else return to

the login page.

Stop

iii. Displays all students’ questions and complains waiting to be resolved by the

administrator, a panel is also available from which the administrator can choose

from a list of options.

iv. Perform the operation in the selected page.

v. Output result

The flowchart for the above test data is presented in fig. 3.18.

3.2.3 RECOMMENDED HARDWARE FOR ONLINE EXAMINATION

SYSTEM

Flat Screen Monitor

A web-cam (from 4.0 megapix and above)

System unit with the following configuration

1. 20GB and above HDD (Hard Disk Drive)

2. 4 GB Ram and above

High speed internet routers.

Backup Hardware devices.

3.2.4 RECOMMENDED SOFTWARE FOR ONLINE E-TRANSACT SYSTEM

Internet Connection (HSp)

A Windows Server which must support the running MYSQL (Wamp server).

A fast and capable Operating System (OS): Windows 7 Ultimate, Windows

Vista, Ultimate (certified for 32-bit editions or 64-bit edition).

3.2.5 ADVANTAGES OF THE NEW SYSTEM

1. It brings convenience to both the administrative staff and the students.

2. It gives the student the opportunity to partake in examinations remotely..

3. Administrative staffs also have the leisure of working from the comfort of their

houses in the event they are not opportune to be in the office.

4. Students do not need to memorize G.P formulas, since the system accurately

helps them to calculate their G.P.

5. Account and individual details of students are stored on the server, and the

backup system is relatively safe.

6. The system will help to limit examination malpractice, since the students are

conscious of the fact that they are being watched, and since the time allocated to

answer each question is so limited that there will be no time available to cheat.

CHAPTER FOUR

PROGRAMMING AND DOCUMENTATION

4.1 PROGRAMMING

Programming is defined as the writing or construction of computer programs or the art

and science of creating computer programs. It is the process of designing, writing,

testing, debugging / troubleshooting, and maintaining the source code of computer

programs. It can also be referred to the process of transforming a mental plan in

familiar terms into one compatible with the computer. Furthermore, it can be defined

as the craft of transforming requirements into something that a computer can execute

(Hoc and Nguyen-Xuan 1987). Computer programs consist of instructions or codes,

thus programming could also be defined as the writing of computer codes or

instructions in a particular programming language which the computer must follow in

order to process data and produce a desired output. The computer code may be a

modification of an existing code or something completely new. The purpose of

programming is to create a program that exhibits a certain desired behaviour. The

process of writing program code often requires an expertise in many different

subjects, including knowledge of the application domain, specialized algorithms and

formal logic.

Programming begins with knowledge of one or more programming languages, such as

Basic, C, Pascal, or assembly language. Knowledge of a language alone does not

make a good program. Much more can be involved, such as expertise in the theory of

algorithms, user interface design, and characteristics of hardware devices. Computers

are rigorously logical machines, and programming requires a similarly logical

approach to designing, writing (coding), testing, and debugging a program. Low-level

languages, such as assembly language, also require familiarity with the capabilities of

a microprocessor and the basic instructions built into it. In the modular approach

advocated by many programmers, a project is broken into smaller, more manageable

modules—stand-alone functional units that can be designed, written, tested, and

debugged separately before being incorporated into the larger program.

4.1.1 STAGES OF PROGRAMMING

Before a computer program can be written and then implemented, there are various

stages which need to be carefully considered and followed in a particular order to

attain the desired program output. These stages include:

i. The analysis and definition of the software

ii. The design and making of the algorithm

iii. Coding of the program

iv. Testing and debugging of the software

v. Documentation of the software

vi. Verification and validation of the program

vii. Maintenance of the program

THE ANALYSIS AND DEFINITION OF THE SOFTWARE

Definition as well as analysis of the existing system and how the problems of the old

system can be solved with the aid of the new system which could afford to be looked

at as problem clarification, is the first and foremost an important step in programming,

which answers many questions, including:

i. What is the program supposed to do?

ii. Are the controls adequate?

iii. Are the specifications from the user complete?

iv. What else is needed to make them complete?

v. Are there any better designs for the files or database?

The amount of work involved depends on the type of application being programmed

and the amount of system analysis that has previously being done.

THE DESIGN AND MAKING OF THE ALGORITHM

This is the stage of software development which involves the planning and design of

the specific input/output characteristics and processing procedures required by the

proposed application. In this stage the amount of work also depends on the complexity

of the applications and the system analysis work that has being done. To design a

solution, one first needs to create an algorithm. An algorithm is a formula or set of

steps for solving a particular problem. Pseudo codes, structured English or formal

statements may be used to develop the algorithm. One must first develop the general

organization of the program as it relates to the main functions to be performed. Each

program is subdivided into several divisions, modules or subroutines, the use of HIPO

chart, flowchart, decision tables, I/O layout forms are used in this stage. Algorithm

preparation often starts from a global step. After that, the global step is refined to be

more detailed steps or details.

CODING OF THE PROGRAM

Once the design has been developed, the actual writing of program can then

commence. Writing of the program is called coding. Coding consist of translating the

logic requirements from pseudo code or flowcharts into a programming language –

the letters, numbers, and symbols that make up the program. Depending on the

programming language used, coding involves a rigorous process which requires the

software engineer to strictly follow specific rules concerning format and syntax

(vocabulary, punctuation, grammar and semantics). Coding must include all the good

qualities of a good software including reusability, correctness etc. It must also include

software principles such as rigor and formality. Note that the wrong selection in an

algorithm will cause a program to work poorly than expected.

TESTING AND DEBUGGING OF THE SOFTWARE

Testing and debugging is the method of running various test in order to determine if

software works or not. Debugging is the process which involves checking, testing

with test data and correcting which is repeated several times so as to remove all errors

(bugs) which must be identified and corrected. Where there are many modules

sometimes written by various programmers testing includes integrated testing of all

the modules combined. Checking the program usually starts with a process called dry

run. This is the method of thoroughly checking for coding errors, logic errors and

syntax errors on your table before entering the codes into the computer. Dry run also

involves physically simulating how a program could work according to your logic.

This type of desk simulation often brings out logic errors. Program testing also

includes structured work through which involves a peer review (by other

programmers) of the program design and coding to minimize and reveal error in the

early stages.

In this stage, the algorithms that have been translated into computer language earlier

are examined. The most common errors encountered are syntax error (writing

program) and implementation error (semantics and logic).

DOCUMENTATION OF THE SOFTWARE

Documentation consists of written descriptions of what a program is and how to use it.

Documentation is not an end-stage process of programming. This process should

occur throughout all the other stages of software development. It is needed by people

who will be using or be involved with the program in the future. When preparing

documentation, several kinds of readers should be taken into consideration – users,

operators, programmers. Documentation is extremely important in diagnosing

program errors, making program changes, reassembling a lost program, especially if

its original programmer is no longer available. This stage tries to collect and refine

materials produced in the previous stages as well as developing any new outstanding

material.

In the program documentation, there are two things that distinguish the Internal and

External Documentation. Internal documentation is the documentation created in the

program when we write the program lines. Meanwhile, External Documentation is

documentation which is done outside the program as a User Guide.

VERIFICATION AND VALIDATION OF THE PROGRAM

It involves the physical installation of fully tested software in the user’s computer

system. During testing a different computer configuration may have being used and

therefore there is need for compatibility testing during implementation to ensure that

the software does what it has been approved as capable of doing during the testing

stage. The documentation may need some review in some sessions during

implementation. It is also during implementation that the actual training of the user is

done. The software engineer would also assist the user in master files and database

creation during implementation.

MAINTENANCE OF THE PROGRAM

Maintenance refers to the continual revision of a software package in case there is

need for improvement, updating, expansion and correction of hidden errors. There is

no system that is static; there are always continual changes in company or government

policies, business operations and government laws. Even if software is bug free it

should be reviewed after every five (5) years for modernization and improvement.

Maintenance would involve in most cases all the previous phases of software

development and all documentations of such changes should be done.

Maintenance Program is the final stage which aims to improve the existing

deficiencies and modify the program if desired.

4.1.2 SURVEY OF PROGRAMMING LANGUAGES

The purpose of the survey of programming languages is to provide students with a

solid foundation for understanding the fundamental concepts of various programming

languages. As well as taking an insight look into the concepts and constructs of

various programming languages. Examples of programming languages that will be

discussed include; COBOL, C++, Java.

COBOL

COBOL (Common Business Oriented Language) was one of the earliest high-level

programming languages. It was developed in 1959 by a group of computer

professionals called the Conference on Data Systems Languages (CODASYL). Since

1959 it has undergone several modifications and improvements. In an attempt to

overcome the problem of incompatibility between different versions of COBOL, the

American National Standards Institute (ANSI) developed a standard form of the

language in 1968. This version was known as American National Standard (ANS)

COBOL. In 1974, ANSI published a revised version of (ANS) COBOL, containing a

number of features that were not in the 1968 version. In 1985, ANSI published still

another revised version that had new features not in the 1974 standard. The language

continues to evolve today. Object-oriented COBOL is a subset of COBOL 97, which

is the fourth edition in the continuing evolution of ANSI/ISO standard COBOL.

COBOL 97 includes conventional improvements as well as object-oriented features.

Like the C++ programming language, object-oriented COBOL compilers are available

even as the language moves toward standardization.

C++

Bjarne Stroustrup began work on "C with Classes" in 1979. The idea of creating a new

language originated from Stroustrup's experience in programming for his Ph.D. thesis.

Stroustrup found that Simula had features that were very helpful for large software

development, but the language was too slow for practical use, while BCPL was fast

but too low-level to be suitable for large software development.

In 1983, the name of the language was changed from C with Classes to C++ (++ being

the increment operator in C). New features were added including virtual functions,

function name and operator overloading, references, constants, user-controlled free-

store memory control, improved type checking, and BCPL style single-line comments

with two forward slashes (//). In 1985, the first edition of The C++ Programming

Language was released, providing an important reference to the language, since there

was not yet an official standard. Release 2.0 of C++ came in 1989 and the updated

second edition of the C++ Programing Language was released in 1991. New features

included multiple inheritance, abstract classes, static member functions, const member

functions, and protected members.

JAVA

James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language

project in June 1991. Java was originally designed for interactive television, but it was

too advanced for the digital cable television industry at the time.

Sun Microsystems released the first public implementation as Java 1.0 in 1995. It

promised "Write Once, Run anywhere" (WORA), providing no-cost run-times on

popular platforms. Fairly secure and featuring configurable security, it allowed

network- and file-access restrictions. Major web browsers soon incorporated the

ability to run Java applets within web pages, and Java quickly became popular. With

the advent of Java 2 (released initially as J2SE 1.2 in December 1998–1999), new

versions had multiple configurations built for different types of platforms. For

example, J2EE targeted enterprise applications and the greatly stripped-down

version J2MEfor mobile applications (Mobile Java). J2SE designated the Standard

Edition. In 2006, for marketing purposes, Sun renamed new J2 versions as Java

EE, Java ME, and Java SE, respectively.

4.1.3 CHOICE OF PRORAMMING LANGAGE AND JUSTIFICATION

The choice of programming languages for the implementation of the automated

online examination system is PHP using dream weaver for the interface, which is an

acronym for Hypertext Pre-Processor. The database that was used was MySQL. I also

made use of WAMP, which is a free and open source cross-platform web server

solution stack platform which consists mainly of Apache HTTP server; which is the

server used for hosting the work, MySQL database and interpreters for scripts written

in PHP and Pearl programming language.

PHP (HYPERTEXT PREPROCESSOR)

PHP is a general-purpose scripting language originally designed for web development

to produce dynamic web pages. For this purpose, PHP code is embedded into the

HTML source document and interpreted by a web server with a PHP processor

module, which generates the web page document. It also has evolved to include a

command-line interface capability and can be used in standalone graphical

applications. PHP can be deployed on most web servers and as a standalone

interpreter, on almost every operating system and platform free of charge. PHP is

installed on more than 20 million websites and 1 million web servers.

PHP was originally created by Rasmus Lerdorf in 1995. The main implementation of

PHP is now produced by The PHP Group and serves as the de facto standard for PHP

as there is no formal specification. PHP is free software released under the PHP

License; it is incompatible with the GNU General Public License (GPL) due to

restrictions on the usage of the term PHP.

While PHP originally stood for "Personal Home Page", it is now said to stand for

"PHP: Hypertext Pre-processor", a recursive acronym. A new major version has been

under development alongside PHP 5 for several years. This version was originally

planned to be released as PHP 6 as a result of its significant changes, which included

plans for full Unicode support. PHP interpreters are available on both 32-bit and 64-

bit operating systems, but on Microsoft Windows the only official distribution is a 32-

bit implementation, requiring Windows 32-bit compatibility mode while using

Internet Information Services (IIS) on a 64-bit Windows platform. As of PHP 5.3.0,

experimental 64-bit versions are available for MS Windows

Some Advantages of PHP

PHP includes free and open source libraries with the core build.

PHP allows developers to write extensions in C to add functionality to the PHP

language. These can then be compiled into PHP or loaded dynamically at

runtime.

PHP have some unusual features which include integration with Internet Relay

Chat, dynamic generation of images and Adobe Flash content, and even speech

synthesis.

PHP is a fundamentally Internet-aware system with modules built in for

accessing FTP servers, many database servers, embedded SQL libraries such as

embedded PostgreSQL, MySQL and SQLite, LDAP servers, and others.

MYSQL

MySQL is a relational database management system (RDBMS) that runs as a server

providing multi-user access to a number of databases. It is named after developer

Michael Widenius' daughter, My. The SQL phrase stands for Structured Query

Language. MySQL database software is a client/server system that consists of multi-

threaded SQL servers that supports different backbends (i.e. MySQL server can work

on both client/server and embedded systems).

WAMP

WAMP is a free and open source cross-platform web server solution stack package,

consisting mainly of the Apache HTTP Server, MySQL database, and interpreters for

scripts written in the PHP and Perl programming languages. The program is released

under the terms of the GNU General Public License and acts as a free web server

capable of serving dynamic pages. WAMP is available for Microsoft Windows,

Linux, Solaris, and Mac OS X, and is mainly used for web development projects. This

software is useful while you are creating dynamic webpages using programming

languages like PHP, JSP, and Servlets.

4.1.5 ALGORITHM AND PSEUDOCODE

4.1.5.1 Administration module (back-end)

i. Start

ii. Get the administrators username and password.

iii. If the username and password is correct, then access is granted, else

return to the login page.

iv. Display all modules of the database.

v. Click on each database module and view the content of each module (I.e

students result, registered students information, examination question

modules, etc.

vi. Perform the operation on each module if necessary (I.e. delete, edit,

resolve, post, etc)

vii. Output result

viii. End.

No

Yes

Start

Enter password

Authenticate password

Valid

Password?

Load & display admin.php

Fig 4.1: Flowchart Showing the Admin. Process and Procedure

4.1.5.2 Student Work module (front-end)

i. Start

ii. If student does not have an account, user registers for an account in order

to make use of the system.

iii. Once user has registered (that is if the user did not have an account

before), the user can log in by inputting their username and password.

iv. Ask questions, post complains, or take exam.

v. Output result

vi. End

View and resolve student’s questions & complains, set

exam questions, etc.

Logout

Stop

No

Yes

start

Enter username and password

Authenticate log-in parameters

Valid log-in parameters?

Load and display student’s profile

Click on “exams & records” to load & display exams & records page.

Read student’s input (answer

choice)

Mark input (answer) as “correct” or “wrong”.

Award “20” marks to answer if correct, or “0” mark if wrong,

manually skipped or auto-skipped.

Calculate result (in percentage), calculate Grade, & calculate G.P.

Mark exam as “taken”

Update database/exams

& records

Fig 4.2: Flowchart Showing Student’s Examination Process and Procedure

4.1.6 DATA SECURITY MEASURES

i. You must have the administrators username and password before you can have

access to the admin section.(back-end)

ii. Students have to register before they can gain access to the system. The

information inputted on the registration form must follow the format specified

by the system (e.g. a valid email address format, date of birth format, etc)

before registration can be successfully completed.

4.1.7 EXPERIENCES WHILE DEBUGGING AND TESTING

In the process of writing codes especially for inexperience and young coders it’s

relatively hard to write programs without the basic bugs and errors which are

Launch web cam to display image/video

Take exam

Display questions and options

Launch timer to “auto-skip” to next question after

15secs

Display result or exams and records

Stop

associated with them. During the process of testing and debugging, this program

encountered a lot of errors such as runtime errors, syntax errors and logical errors as

well but was corrected.

4.2 OPERATING PROCEDURES/USER MANUAL

4.2.1 Administrator Module (back-end)

i. The administrator have a specific password which gives them access to the

information of the student’s accounts

ii. A page is displayed, requesting the administrator's password

iii. The administrator should input a correct password

iv. A page is then displayed with options for the administrator to select from

v. The administrator should choose the appropriate option which will take him

to the corresponding page, where he/she should follow the corresponding

instructions respectively.

4.2.2 User Work module (front-end)

i. The students inputs their username and password

ii. If they do not have an account, click on the ‘register’ link that displays

another page were they will be able to fill out a form to register for an

account

iii. Once granted access to the system the student can browse through the choice

of available pages.

No

Yes

Yes

No

Authenticate login parameters

Start

Display student’s profile

Have valid username

& password?

Stop

Click on “register” to display registration

form

Connect to web application

Valid login parameters?

Load index or Home page

Fig 4.3: Flowchart Showing Student’s Registration Procedure

4.3 IMPLEMENTATION GUIDELINE

4.3.1 USER TRAINING REQUIREMENT

With the introduction of a new system, there will have to be forms of training

organized for those users of the system who have little or no knowledge of how to

make use of computer system. The training will enable the users make use of both

hardware and software. Before the training can begin, the following will have to be

provided:

i. Computers,

Read input or information

Validate input or information

Register student’s information

Update database

Enter username and password

ii. An internet connection which gives active local area network a relatively good

performance rate which must be confirmed to be present and working perfectly,

iii. A server system where the database would be stored and also where the

program would be running on,

iv. All the computers must be tested to establish a connection with the server

system (where the database is located),

v. All forms of learning tools which could make the learning experience much

more bearable as well as quick for those who are not so familiar with systems,

vi. Also a user training manual would be submitted to management for approval

before the training can commence so as to further help the individuals learn at

their own leisure periods.

4.3.2 MASTER FILE CONVERSION

The following steps would be taken in the file conversion;

i. All required data would be entered into the system and would be verified for

accuracy.

ii. The data would then be validated with the online examination software.

iii. The data would be investigated to remove inaccuracies, inconsistencies and any

error attached to it.

4.3.3 SOURCES OF DATA

The source of the data will be from both the administrator and the other users of the

system (I.e. The students).

4.3.4 CHANGE OVER METHODS AND THE ONE RECOMMENDED

There are four major changeover methods, they are;

i. Direct conversion

ii. Parallel conversion

iii. Phased conversion

iv. Pilot conversion

Direct Conversion

In the direct conversion method (which is also called immediate replacement), all of

the old system is discontinued and all of the new system is put into operation on a

specified date. This is the most risky changeover method because problems always

occur during changeover and unless there is an alternative or fall back system, the

consequences of failure might be catastrophic. But one advantage of this method is

that if the system is relatively non-critical to business operations so that changeover

problems would not trigger a disaster, immediate replacement may be less expensive

than other methods.

Parallel Conversion

Parallel conversion is the method in which data is processed at the same time by both

the old and the new system. Advantages of parallel operations are the opportunity to

compare the output of both systems and the availability of the old system as a backup.

The major disadvantage on the other hand is that the parallel conversion method is

costly to put into operation.

Phased Conversion

The phased conversion is a gradual approach in which complete changeover to the

new system takes place incrementally over a period of time. Gradual change over can

be achieved by operating the new system with increasingly larger volumes of data

and/or introducing parts of the new system and replacing the corresponding parts in

the old one by them as they are checked out under actual operating conditions. This

method is considered most times to be the most effective change over method,

although one danger is that, there is the possibility of some errors creeping in and not

being detected until the entire system has been in operation for a considerable period

of time.

Pilot Conversion

In the pilot conversion, the new system is implemented by parallel, direct or phased

conversion, as a pilot system in only one of the several targeted area. The advantage

of pilot conversion is that the inevitable bugs in a system can be removed before the

system is implemented at the other locations. The disadvantage is that the

implementation time for the total system takes longer than if the entire system were

implemented at one time.

After taking a look at the various changeover methods discussed above, it would be

discovered that the most appropriate and unproblematic method to adopt would be the

parallel conversion method, so as to put the two systems side-by-side to see firsthand

the relative rate at which the change would be beneficiary to the system.

4.3.5 SYSTEM TESTING STRATEGIES

Strategies involved in system testing include:

Test with test data:

This involves integrated testing of all the units in the program to ensure harmony of

operation. This helps to validate all software input/output, procedures and database.

The test is repeated until all the components work as they should and all input/output

is validated.

Testing with life data:

This involves testing with life data of the people who would use the system. Life data

here refers to data that have been already processed with the existing system. This

continues until both the users of the system and the programmer are satisfied with the

result.

User-acceptance testing:

This involves the scrutiny of the system by the users, managers whose department

would ultimately work with the system. The purpose of this test is to get the user-

stamp of approval. Modification and testing continues until the final approval point is

reached.

4.3.6 MINIMUM HARDWARE, SOFTWARE AND MANPOWER

REQUIREMENT FOR THE ONLINE EXAMINATION SYSTEM

The minimum hardware and software requirement for the new system has earlier been

stated in this documentation. In addition to the earlier stated requirements, a highly

skilled database administrator (DBA) should be employed for the management of the

database.

4.3.7 PHYSICAL/DATA SECURITIES

i. The database administrator would have the sole function of making sure of

limiting access to the users that should not interact with the database. The DBA

would also make sure that he takes security measures such as not discussing the

password with other unpermitted staff etc.

ii. Also the DBA should make sure that the backup of the organization data is

frequently conducted in case of an unexpected system failure.

CHAPTER FIVE

SUMMARY, CONCLUSION AND RECOMMENDATION

5.1 SUMMARY

The implementation of an online examination processing system for schools and

universities has been experimentally proven to work satisfactorily. The authentication

was seen to be secure, users were able to access to sample application via a mobile

internet, and answered questions were seen to be accurately marked. Thus, an online

examination system was successfully designed and tested.

5.2 CONCLUSION

As the internet world attains a closer relationship with our daily lives, an internet

based examination processing system is undeniably a resource needed in schools and

universities. The proposed system will pave a direction towards which the academic

circle will move in the future. Users can sit for their examinations, having distance as

no barrier. At the same time, since the test is graded by computers, time which would

have been required in case of manual grading is saved. Test takers can check their

result immediately after the test, thus letting students know their grades. We believe

that online examination system is the inevitable future trend.

5.3 RECOMMENDATION

From the findings of this research, online or e-examination remain the best option for

conducting examinations in learning institutions especially as it would help to

eradicate the myriad of problems associated with pen and paper exams such as

examination malpractice, human errors in marking and compilation of results,

untimely release of results and above all the reduction of the overwhelming task

which would be experienced by lecturers in handling such number of students in

schools and universities.

Based on the findings, the following recommendations are made:

i. The development and use of essay type examination should be seriously looked

into especially for law students.

ii. A high speed internet connection should be used on the server side if multiple

users must be handled at the same time, without significantly affecting the

speed/response time.

iii. In order to further popularize e-exams, serious attention should be made at

making the user interface more users friendly by making it compatible with

Microsoft word applications, equation editor and other customize symbols.

Since, lecturers’ decision about the use of ICT for instructional process is

affected by factors such as ease of use and experience in the use of the

technology, intellectual enhancement, training, enabling environment, and

individual’s perception (Fabry and Higgs, 1997; Keller and Cernerud, 2002;

Murphy and Greenwood, 1998; Samuel and Bakar, 2006).

iv. The organization (or academic institution) should endeavor to improve the

standard of skill of workers through training and re-training , by way of

induction, orientation, in-service workshop, seminars, symposium, lectures,

etc.; in order for them to gain better acquaintance and master the new system.

BIBLIOGRAPHY

A. A. Olubiyi, O. Ajadi, and J. Inegbedion, “Perception of learners on electronic examination in open and distance learning institutions: case study of national open university of Nigeria, US, China,” Educational Review Journal. Viewed April 2011.

J. S. Iyilade and W. O. Odekunle (2005), “A web-based student testing and assessment system,” Proceedings of the International Conference On Application Of Ict To Teaching, Research, and Adminstration, AICTTRA, vol. 1 pp. 16 – 24.

Awoseyan and Kunle, “Stress and Success of NOUN examinations,” Nigerian Tribune, July 1, pp.10, 2010

Aborisade and Akinwale, “NOUN students grumble over poor academic environment,” The Punch, vol. 30 May, pp. 8, 2010.

C. A. Okonkwo, “Adapting on demand examination system in national open university of nigeria end of semester examination,” Online Journal on Distance Education May 2011

R. C. Venon, R. D. Diana, and L. Fleet, “Academic Administrators attitudes towards interprofessional education in Canadian School of health professional education,” Journal of Interprofessional Care. May 2005.

Shelly,Gary B., Cashman, Linda A. Thomas J., and Kosteba, (2002). Web design: introductory concepts & techniques; course technology, Philipines.

Batschelet, Margaret (2001). Web writing/web design; Allyn and Bacon, Inc, Boston.

Perry James T. and Schneider, Gary P. (2001). Building accounting systems using access 2000; South-Western College Publishing.

London Sherry and London (2001). Flash 5 Visual Insight; The Coriolis Group,

Llc, Scottdale.

Mohler, Jamed L. (2001). Flash 5: graphics, animation & interactivity; Onward Press, New York.

Philip, Harry L. (2001). Microsoft windows 2000 professional; Course Technology.

Abdulkadir, I.A. (1995), “Preface”, Management Information System for Nigerian

Universities: A Report on the 1994 MIS Seminars Held at Mamdala Hotel,

Kaduna. Vol. I, National Universities Commission, Abuja, P. I.

Benzie, D. (1999), “Formative evaluation: can models help us to shape innovative

programmes?” Education and Information Technologies, Vol. 4 No. 3, pp. 251-

62. Services in Nigerian Universities 287

Bernstein P., Hsu M. and Mann B., “Implementing Recoverable Requests Using

Queues”, Proc. 19th ACM Int. Conference on the Management of Data

(SIGMOD), pp.112-122, 1990.

Brewer E.A., Chong F.T., Liu L.T., Sharma S.D. and Kubiatowicz J.D., “Remote

Queues: Exposing Message Queues for Optimization and Atomicity.” Proc. 7th

ACM Symposium on Parallel Algorithms and Architectures (SPAA), Santa

Barbara, CA, pp.42-53, 1995.

Chiemeke, S.C. (Ph.D.), & Egbokhare, F.A. (Ph.D.)(2006). Principles of System

Analysis and Design, Root Print & Publishers, Benin City, Nigeria, 1st edition.

Clausen, H. (1999), “Evaluation of library web sites: the Danish case”, The Electronic

Library, Vol. 17 No. 2, pp. 83-7.

Debreceny, R. and Ellis, A. (2000), “The production of world wide web multimedia

resources by Australian universities – an institutional analysis”, Education &

Information Technologies, Vol. 5 No. 1, pp. 7-18.

Frolund S. and Guerraoui R., “A Pragmatic Implementation of e-Transactions”, Proc.

19th IEEE Symposium on Reliable Distributed Systems (SRDS), pp.186-195.

2000

Frolund S. and Guerraoui R., “Implementing e-Transactions with Asynchronous

Replication”, IEEE Transactions on Parallel and Distributed Systems, vol.12,

no.133-146, pp.2001.

Hamilton, S. and Chervany, N.L. (1981a), “Evaluating information system

effectiveness: comparing evaluation approaches”, MIS Quarterly, Vol. 5 No. 3,

pp. 55-69.

Hamilton, S. and Chervany, N.L. (1981b), “Evaluating information system

effectiveness: comparing evaluator viewpoints”, MIS Quarterly, Vol. 5 No. 4,

pp. 79-86.

Williams, Brian K., Sawyer, & Stacey C. (2005). Using Information Technology,

McGraw-Hill, Inc., New York, United States of America, 6th edition.

APPENDIX A: SOURCE CODE LISTING

CODE FOR ADMIN HOME

<?php if (!isset($_SESSION)) { session_start(); } require_once('Connections/dbcon.php'); ?>

<?php

if (!function_exists("GetSQLValueString")) {

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")

{

if (PHP_VERSION < 6) {

$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {

case "text":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "long":

case "int":

$theValue = ($theValue != "") ? intval($theValue) : "NULL";

break;

case "double":

$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";

break;

case "date":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "defined":

$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;

break;

}

return $theValue;

}

}

$editFormAction = $_SERVER['PHP_SELF'];

if (isset($_SERVER['QUERY_STRING'])) {

$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);

}

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "set")) {

$updateSQL = sprintf("UPDATE complains SET status=%s WHERE `guid`=%s",

GetSQLValueString($_POST['status'], "text"),

GetSQLValueString($_POST['guid'], "text"));

mysql_select_db($database_dbcon, $dbcon);

$Result1 = mysql_query($updateSQL, $dbcon) or die(mysql_error());

}

if(isset($_GET['category'])) {

$category = $_GET['category'];

} else { $category = "Q"; }

mysql_select_db($database_dbcon, $dbcon);

$query_myQuestion = "SELECT * FROM complains WHERE category = '$category' ORDER BY id DESC";

$myQuestion = mysql_query($query_myQuestion, $dbcon) or die(mysql_error());

$row_myQuestion = mysql_fetch_assoc($myQuestion);

$totalRows_myQuestion = mysql_num_rows($myQuestion);

?>

<?php //session_start(); if(!isset($_SESSION['adminlog'])) { header('Location: ./'); }?>

<!DOCTYPE HTML>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Admin Area</title>

<link rel="stylesheet" type="text/css" href="style.css"/>

<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>

<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />

</head>

<body>

<table width="1000" border="0" cellpadding="0" cellspacing="0" align="center">

<tr>

<td height="160" align="center" valign="top" background="../images/top.jpg">&nbsp;</td>

</tr>

</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td height="50">&nbsp;</td>

</tr>

</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td align="center" valign="middle" ><table width="100%" border="0" cellpadding="0" cellspacing="0" id="input_table">

<tr>

<td>Show:

<a href="admin.php?category=C" class="button">complains</a>

<a href="admin.php?category=Q" class="button">Question</a>

<span style="padding-left:40px; padding-right:40px;">

<a href="../model/new_course.php" class="export">New Course</a>

<a href="../model/new_examination.php" class="export">New Examination</a>

<a href="../model/new_examiner.php" class="export">New Examiner</a>

<a href="../model/new_question.php" class="export">New Question</a>

<a href="../model/new_option.php" class="export">New Option</a>

</span>

<a href="index.php" class="button">Logout</a></td>

</tr>

<tr>

<td height="30" align="center" valign="middle">&nbsp;</td>

</tr>

<tr>

<td align="center" valign="middle"><table width="99%" border="0" cellspacing="0" cellpadding="0" id="input_table2">

<tr>

<td width="200" class="header">SUBJECT</td>

<td class="header">

<?php if(isset($_GET['category']) && $_GET['category'] =='Q') {

echo "QUESTION";

} else { echo "COMPLAIN"; }?> </td>

<td width="100" class="header">Name</td>

<td width="100" class="header">Group</td>

<td width="100" class="header">SET STATUS</td>

</tr>

<?php do { ?>

<tr>

<td height="30" class="value"><?php echo $row_myQuestion['subject']; ?></td>

<td class="value"><?php echo $row_myQuestion['message']; ?></td>

<td class="value">

<?php

$colname_Person = "-1";

if (isset($row_myQuestion['name_bind'])) {

$colname_Person = $row_myQuestion['name_bind'];

}

mysql_select_db($database_dbcon, $dbcon);

$query_Person = sprintf("SELECT * FROM `student` WHERE gind = %s", GetSQLValueString($colname_Person, "text"));

$Person = mysql_query($query_Person, $dbcon) or die(mysql_error());

$row_Person = mysql_fetch_assoc($Person);

$totalRows_Person = mysql_num_rows($Person);

?>

<?php echo $row_Person['fullname']; ?></td>

<td class="value"><strong><?php echo $row_Person['group']; ?></strong></td>

<td class="value">

<?php if($row_myQuestion['status'] != 'resolved') { ?>

<form id="set" name="set" method="POST" action="<?php echo $editFormAction; ?>">

<input name="ReBtn" type="submit" class="button" id="ReBtn" value="Resolve" />

<input name="status" type="hidden" id="status" value="resolved" />

<input name="guid" type="hidden" id="guid" value="<?php echo $row_myQuestion['guid']; ?>" />

<input type="hidden" name="MM_update" value="set" />

</form>

<?php } else { echo "Resolved"; }

?> </td>

</tr>

<?php } while ($row_myQuestion = mysql_fetch_assoc($myQuestion)); ?>

</table>

</td>

</tr>

</table>

</body>

</html>

<?php

mysql_free_result($myQuestion);

mysql_free_result($Person);

?>

CODE FOR EXAMS AND RECORDS

<?php require_once('Connections/dbcon.php');

if (!isset($_SESSION)) {

session_start();

}

// ** Logout the current user. **

$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";

if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){

$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);

}

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){

//to fully log out a visitor we need to clear the session varialbles

$_SESSION['MM_Username'] = NULL;

$_SESSION['MM_UserGroup'] = NULL;

$_SESSION['PrevUrl'] = NULL;

unset($_SESSION['MM_Username']);

unset($_SESSION['MM_UserGroup']);

unset($_SESSION['PrevUrl']);

$logoutGoTo = "index.php";

if ($logoutGoTo) {

header("Location: $logoutGoTo");

exit;

}

}

$MM_authorizedUsers = "";

$MM_donotCheckaccess = "true";

// *** Restrict Access To Page: Grant or deny access to this page

function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {

// For security, start by assuming the visitor is NOT authorized.

$isValid = False;

// When a visitor has logged into this site, the Session variable MM_Username set equal to their username.

// Therefore, we know that a user is NOT logged in if that Session variable is blank.

if (!empty($UserName)) {

// Besides being logged in, you may restrict access to only certain users based on an ID established when they login.

// Parse the strings into arrays.

$arrUsers = Explode(",", $strUsers);

$arrGroups = Explode(",", $strGroups);

if (in_array($UserName, $arrUsers)) {

$isValid = true;

}

// Or, you may restrict access to only certain users based on their username.

if (in_array($UserGroup, $arrGroups)) {

$isValid = true;

}

if (($strUsers == "") && true) {

$isValid = true;

}

}

return $isValid;

}

$MM_restrictGoTo = "index.php";

if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {

$MM_qsChar = "?";

$MM_referrer = $_SERVER['PHP_SELF'];

if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";

if (isset($_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) > 0)

$MM_referrer .= "?" . $_SERVER['QUERY_STRING'];

$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);

header("Location: ". $MM_restrictGoTo);

exit;

}

if (!function_exists("GetSQLValueString")) {

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")

{

if (PHP_VERSION < 6) {

$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {

case "text":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "long":

case "int":

$theValue = ($theValue != "") ? intval($theValue) : "NULL";

break;

case "double":

$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";

break;

case "date":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "defined":

$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;

break;

}

return $theValue;

}

}

?>

<?php

$colname_UserOn = "-1";

if (isset($_SESSION['MM_Username'])) {

$colname_UserOn = $_SESSION['MM_Username'];

}

mysql_select_db($database_dbcon, $dbcon);

$query_UserOn = sprintf("SELECT * FROM `student` WHERE username = %s", GetSQLValueString($colname_UserOn, "text"));

$UserOn = mysql_query($query_UserOn, $dbcon) or die(mysql_error());

$row_UserOn = mysql_fetch_assoc($UserOn);

$totalRows_UserOn = mysql_num_rows($UserOn);

?>

<?php

mysql_select_db($database_dbcon, $dbcon);

$query_course = "SELECT * FROM course ORDER BY course ASC";

$course = mysql_query($query_course, $dbcon) or die(mysql_error());

$row_course = mysql_fetch_assoc($course);

$totalRows_course = mysql_num_rows($course);

?>

<!DOCTYPE HTML>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Exams and Record</title>

</head>

<link rel="stylesheet" type="text/css" href="dhtml/style.css"/>

<body>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td height="50">&nbsp;</td>

</tr>

</table>

<?php include('./inc/studentnav2.php'); ?>

<table width="900" border="0" align="center" cellpadding="0" cellspacing="0" class="entryTable">

<tr>

<th class="header" scope="col">&nbsp;Courses for <?php echo $row_UserOn['fullname']; ?></th>

</tr>

<tr>

<td class="content"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="viewTab">

<tr>

<th width="40" height="24" align="left" valign="middle" scope="col">S/N</th>

<th width="70" align="left" valign="middle" scope="col">code</th>

<th align="left" valign="middle" scope="col">course</th>

<th width="30" align="left" valign="middle" scope="col" style="border-right:#666 dotted 1px;">unit</th>

<td width="10" align="center" valign="middle" scope="col">&nbsp;</td>

<th width="80" align="center" valign="middle" scope="col" style="border-left:#666 dotted 1px;">SCORE</th>

<th width="50" align="center" valign="middle" scope="col">GRADE</th>

<th width="100" align="center" valign="middle" scope="col">TAKE exam</th>

</tr>

<?php $sn = ''; do { ?>

<tr>

<td height="40" scope="row"> <?php echo $sn = $sn + 1; ?></td>

<td height="24"><?php echo $row_course['acronym']; ?></td>

<td height="24"><?php echo $row_course['course']; ?></td>

<td height="24" align="center" valign="middle" style="border-right:#666 dotted 1px;"><?php echo $row_course['unit']; ?></td>

<td height="24" align="center" valign="middle">&nbsp;</td>

<td height="24" align="center" valign="middle" style="border-left:#666 dotted 1px;">

<?php

mysql_select_db($database_dbcon, $dbcon);

$query_DScoreSet = sprintf("SELECT * FROM `result` WHERE course = '{$row_course['fuid']}' AND username = '{$row_UserOn['username']}'");

$DScoreSet = mysql_query($query_DScoreSet, $dbcon) or die(mysql_error());

$row_DScoreSet = mysql_fetch_assoc($DScoreSet);

$totalRows_DScoreSet = mysql_num_rows($DScoreSet);

$examscore = '0';

do {

$examscore = ($examscore + $row_DScoreSet['score']);

} while ($row_DScoreSet = mysql_fetch_assoc($DScoreSet));

Code to Calculate Student’s Grade in Exams and Records

if($examscore > 69){ $examgrade = 'A'; }

elseif($examscore > 59){ $examgrade = 'B'; }

elseif($examscore > 49){ $examgrade = 'C'; }

elseif($examscore > 44){ $examgrade = 'D'; }

elseif($examscore > 39){ $examgrade = 'E'; }

elseif($examscore < 40){ $examgrade = 'F'; }

else { $examgrade = 'F'; }

Code to Calculate Student’s Grade Point (G.P) in Exams and Records

$creditLimit = '9';

$creditunit = '3';

$pointvalue = '0';

if($examgrade == 'A'){ $pointvalue = (5 * $creditunit); }

elseif($examgrade == 'B'){ $pointvalue = (4 * $creditunit); }

elseif($examgrade == 'C'){ $pointvalue = (3 * $creditunit); }

elseif($examgrade == 'D'){ $pointvalue = (2 * $creditunit); }

elseif($examgrade == 'E'){ $pointvalue = (1 * $creditunit); }

elseif($examgrade == 'F'){ $pointvalue = (0 * $creditunit); }

?>

<?php @$totalPV = ($totalPV + $pointvalue);

Code to Calculate Student’s Score in Exams and Records

if($totalRows_DScoreSet > 0) {echo "<big><big>".$examscore . "</big></big> <small>[100]</small>"; } else { echo 'No Score';}?>

</td>

<td height="24" align="center" valign="middle"><?php if($totalRows_DScoreSet > 0) { echo $examgrade; } else { echo "&#8212;"; }?></td>

<td height="24" align="center" valign="middle">

<?php if($totalRows_DScoreSet > 0) { echo 'Exam Taken'; } else { ?>

<a href="./exam.php?staff=<?php echo $row_UserOn['gind']; ?>&course=<?php echo $row_course['fuid']; ?>" class="buttonRed">Take Exam</a>

<?php } ?>

</td>

</tr>

<?php } while ($row_course = mysql_fetch_assoc($course)); ?>

</table>

</td>

</tr>

</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<th height="40" scope="col">&nbsp;</th>

</tr>

</table>

<table width="900" border="0" align="center" cellpadding="0" cellspacing="0" class="entryTable">

<tr>

<th class="header" scope="col">&nbsp;Grade Point for <?php echo $row_UserOn['fullname']; ?></th>

</tr>

<tr>

<td class="content" style="height:40px;">

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<th height="30" scope="col">Your current calculated GP is <span style="font-size:30px;">

<?php $gpvalue = ($totalPV / $creditLimit);

echo number_format($gpvalue, '1'); ?></span></th>

</tr>

</table>

</td>

</tr>

</table>

</body>

</html>

<?php

mysql_free_result($UserOn);

mysql_free_result($course);

?>

CODE FOR LOGIN/INDEX PAGE

<?php require_once('Connections/dbcon.php'); ?>

<?php

if (!function_exists("GetSQLValueString")) {

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")

{

if (PHP_VERSION < 6) {

$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {

case "text":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "long":

case "int":

$theValue = ($theValue != "") ? intval($theValue) : "NULL";

break;

case "double":

$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";

break;

case "date":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "defined":

$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;

break;

}

return $theValue;

}

}

?>

<?php

// *** Validate request to login to this site.

if (!isset($_SESSION)) {

session_start();

}

$loginFormAction = $_SERVER['PHP_SELF'];

if (isset($_GET['accesscheck'])) {

$_SESSION['PrevUrl'] = $_GET['accesscheck'];

}

if (isset($_POST['username'])) {

$loginUsername=$_POST['username'];

$password=$_POST['password'];

$MM_fldUserAuthorization = "";

$MM_redirectLoginSuccess = "user.php";

$MM_redirectLoginFailed = "incorrect_login.php";

$MM_redirecttoReferrer = false;

mysql_select_db($database_dbcon, $dbcon);

$LoginRS__query=sprintf("SELECT username, password FROM `student` WHERE username=%s AND password=%s",

GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));

$LoginRS = mysql_query($LoginRS__query, $dbcon) or die(mysql_error());

$loginFoundUser = mysql_num_rows($LoginRS);

if ($loginFoundUser) {

$loginStrGroup = "";

if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}

//declare two session variables and assign them

$_SESSION['MM_Username'] = $loginUsername;

$_SESSION['MM_UserGroup'] = $loginStrGroup;

if (isset($_SESSION['PrevUrl']) && false) {

$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];

}

header("Location: " . $MM_redirectLoginSuccess );

}

else {

header("Location: ". $MM_redirectLoginFailed );

}

}

if (!isset($_SESSION)) { session_start(); } require_once('Connections/dbcon.php'); ?>

<!DOCTYPE HTML>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Staff</title>

<link rel="stylesheet" type="text/css" href="style.css"/>

<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>

<script src="SpryAssets/SpryValidationPassword.js" type="text/javascript"></script>

<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />

<link href="SpryAssets/SpryValidationPassword.css" rel="stylesheet" type="text/css" />

</head>

<body>

<table width="1000" border="0" cellpadding="0" cellspacing="0" align="center">

<tr>

<td height="160" align="center" valign="top" background="../images/top.jpg">&nbsp;</td>

</tr>

</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td height="50">&nbsp;</td>

</tr>

</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td height="50" align="center" valign="middle"><form id="login" name="login" method="POST" action="<?php echo $loginFormAction; ?>">

<table width="500" border="0" cellspacing="0" cellpadding="0" id="input_table">

<tr>

<td colspan="2" class="header" scope="col">USER LOGIN</td>

</tr>

<tr>

<td colspan="2" class="value" scope="row">Please enter your login information below</td>

</tr>

<tr>

<th align="left" valign="middle" class="label" scope="row"><label for="username">Username:</label></th>

<td class="value"><span id="sprytextfield1">

<input name="username" type="text" class="input" id="username" />

<span class="textfieldRequiredMsg"></span></span></td>

</tr>

<tr>

<th align="left" valign="middle" class="label" scope="row"><label for="password">Password:</label></th>

<td class="value"><span id="sprypassword1">

<input name="password" type="password" class="input" id="password" />

<span class="passwordRequiredMsg"></span></span></td>

</tr>

<tr>

<th scope="row">&nbsp;</th>

<td height="30" class="value"><input name="LogBtn" type="submit" class="button" id="LogBtn" value="Login" /></td>

</tr>

<tr>

<th height="30" colspan="2" scope="row">New user? <a href="reg.php">Register</a></th>

</tr>

</table>

</form></td>

</tr>

</table>

<?php if(isset($_POST['loginStaff'])) { //PROCESS ADMIN LOGIN

$userlog = $_POST['staffusername'];

$adminID = '080admin';

if($userlog == $adminID) {

$msg = 'Your have logged in as admin correctly';

header("Location: admin.php");

}

else {

$msg = 'Incorrect login information';

}

} //END ADMIN LOGIN

else { $msg = 'Please enter your login PIN';} ?>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td height="60">&nbsp;</td>

</tr>

<tr>

<td height="60" align="center" valign="middle"><form id="adminLogin" name="adminLogin" method="post" action="">

<table width="500" border="0" cellpadding="0" cellspacing="0" id="input_table">

<tr>

<td colspan="2" class="header" scope="col">ADMIN LOGIN</td>

</tr>

<tr>

<td colspan="2" class="value" scope="row"><?php echo $msg; ?></td>

</tr>

<tr>

<th class="label" scope="row"><label for="staffusername">ADMIN ID:</label></th>

<td class="value"><span id="sprypassword2">

<input name="staffusername" type="password" class="input" id="staffusername" />

<span class="passwordRequiredMsg"></span></span></td>

</tr>

<tr>

<th scope="row" ><input name="loginStaff" type="hidden" id="loginStaff" value="yes" /></th>

<td class="value"><input name="StaffLoginBtn" type="submit" class="button" id="StaffLoginBtn" value="Login" /></td>

</tr>

</table>

</form></td>

</tr>

</table>

<script type="text/javascript">

var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1");

var sprypassword1 = new Spry.Widget.ValidationPassword("sprypassword1");

var sprypassword2 = new Spry.Widget.ValidationPassword("sprypassword2");

</script>

</body>

</html>

CODE FOR STUDENTS RESULT (IN PERCENTAGE)

<?php require_once('Connections/dbcon.php'); ?>

<?php

if (!function_exists("GetSQLValueString")) {

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")

{

if (PHP_VERSION < 6) {

$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {

case "text":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "long":

case "int":

$theValue = ($theValue != "") ? intval($theValue) : "NULL";

break;

case "double":

$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";

break;

case "date":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "defined":

$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;

break;

}

return $theValue;

}

}

$colname_ResultData = "-1";

if (isset($_GET['result'])) {

$colname_ResultData = $_GET['result'];

}

mysql_select_db($database_dbcon, $dbcon);

$query_ResultData = sprintf("SELECT * FROM `result` WHERE course = '{$_GET['course']}' AND username = %s", GetSQLValueString($colname_ResultData, "text"));

$ResultData = mysql_query($query_ResultData, $dbcon) or die(mysql_error());

$row_ResultData = mysql_fetch_assoc($ResultData);

$totalRows_ResultData = mysql_num_rows($ResultData);

?>

<?php include_once("utility/rand.php"); ?>

<!DOCTYPE HTML>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>RESULT</title>

</head>

<link rel="stylesheet" type="text/css" href="dhtml/style.css"/>

<body>

<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="entryTable">

<tr>

<th class="header" scope="col">&nbsp;RESULT<span style="text-transform:uppercase;"></span> <div style="float:right; padding-right:10px;">

<span style="text-transform:uppercase; color:#036;"><?php

$colname_dcourse = "-1";

if (isset($_GET['course'])) {

$colname_dcourse = $_GET['course'];

}

mysql_select_db($database_dbcon, $dbcon);

$query_dcourse = sprintf("SELECT * FROM course WHERE fuid = %s", GetSQLValueString($colname_dcourse, "text"));

$dcourse = mysql_query($query_dcourse, $dbcon) or die(mysql_error());

$row_dcourse = mysql_fetch_assoc($dcourse);

$totalRows_dcourse = mysql_num_rows($dcourse);

echo $row_dcourse['course'];?>

</span>

</div></th>

</tr>

<tr>

<td class="content">

<?php do { @$score = ($score + $row_ResultData['score']); } while ($row_ResultData = mysql_fetch_assoc($ResultData)); ?><br />

<?php if($score <'40') { echo "<h2> <span style='text-transform:uppercase;'>You are adviced to work harder</span></h2>"; } else { echo "<h2><font color='#009900'>CONGRATULATIONS!</font></h2>"; } ?>

<span style="font-size:18px; font-family:Arial, Helvetica, sans-serif;">Your score for this examination was : <strong> <?php echo $score; ?>%</strong></span>

<br />

<br />

<span style="font-size:14px;"> Remark : <span style="font-size:18px;"> <?php if($score < '40') {

echo "<warning><strong>FAILED!</strong></warning>";}

else { echo "<font color='#009900'>PASSED!</font>"; }

?></span></span>

<br/><br/>

<p>

<a href="courses.php?staff=<?php echo $_GET['userfuid']; ?>" class="button">Back To Exams and Record</a>

</p></td>

</tr>

</table>

</body>

</html>

<?php

mysql_free_result($ResultData);

?>

CODE FOR EXAMINATION

<?php require_once('Connections/dbcon.php'); ?>

<?php

if (!function_exists("GetSQLValueString")) {

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")

{

if (PHP_VERSION < 6) {

$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {

case "text":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "long":

case "int":

$theValue = ($theValue != "") ? intval($theValue) : "NULL";

break;

case "double":

$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";

break;

case "date":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "defined":

$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;

break;

}

return $theValue;

}

}

$currentPage = $_SERVER["PHP_SELF"];

$editFormAction = $_SERVER['PHP_SELF'];

if (isset($_SERVER['QUERY_STRING'])) {

$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);

}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "newEntry")) {

if(isset($_POST['score']) && $_POST['score'] !='') {

$postScore = $_POST['score'];

}

else {

$postScore = '0';

}

$insertSQL = sprintf("INSERT INTO `result` (username, course, score) VALUES (%s, %s, %s)",

GetSQLValueString($_POST['username'], "text"),

GetSQLValueString($_GET['course'], "text"),

GetSQLValueString($postScore, "int"));

mysql_select_db($database_dbcon, $dbcon);

$Result1 = mysql_query($insertSQL, $dbcon) or die(mysql_error());

}

$colname_UserOn = "-1";

if (isset($_GET['staff'])) {

$colname_UserOn = $_GET['staff'];

}

mysql_select_db($database_dbcon, $dbcon);

$query_UserOn = sprintf("SELECT * FROM student WHERE gind = %s", GetSQLValueString($colname_UserOn, "text"));

$UserOn = mysql_query($query_UserOn, $dbcon) or die(mysql_error());

$row_UserOn = mysql_fetch_assoc($UserOn);

$totalRows_UserOn = mysql_num_rows($UserOn);

$maxRows_questionData = 1;

$pageNum_questionData = 0;

if (isset($_GET['pageNum_questionData'])) {

$pageNum_questionData = $_GET['pageNum_questionData'];

}

$startRow_questionData = $pageNum_questionData * $maxRows_questionData;

mysql_select_db($database_dbcon, $dbcon);

$query_questionData = "SELECT * FROM question WHERE `course_fuid` = '{$_GET['course']}'";

$query_limit_questionData = sprintf("%s LIMIT %d, %d", $query_questionData, $startRow_questionData, $maxRows_questionData);

$questionData = mysql_query($query_limit_questionData, $dbcon) or die(mysql_error());

$row_questionData = mysql_fetch_assoc($questionData);

if (isset($_GET['totalRows_questionData'])) {

$totalRows_questionData = $_GET['totalRows_questionData'];

} else {

$all_questionData = mysql_query($query_questionData);

$totalRows_questionData = mysql_num_rows($all_questionData);

}

$totalPages_questionData = ceil($totalRows_questionData/$maxRows_questionData)-1;

$queryString_questionData = "";

if (!empty($_SERVER['QUERY_STRING'])) {

$params = explode("&", $_SERVER['QUERY_STRING']);

$newParams = array();

foreach ($params as $param) {

if (stristr($param, "pageNum_questionData") == false &&

stristr($param, "totalRows_questionData") == false) {

array_push($newParams, $param);

}

}

if (count($newParams) != 0) {

$queryString_questionData = "&" . htmlentities(implode("&", $newParams));

}

}

$queryString_questionData = sprintf("&totalRows_questionData=%d%s", $totalRows_questionData, $queryString_questionData);

?>

<?php include_once("utility/rand.php"); ?>

CODE FOR TIME AUTOMATION

<!DOCTYPE HTML>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Exam</title>

<script type="text/javascript">

var start = new Date();

start = Date.parse(start)/1000;

var seconds = 15;

function CountDown(){

var now = new Date();

now = Date.parse(now)/1000;

var counter = parseInt(seconds-(now-start),10);

countmin = secondstotime(counter);

document.getElementById('countdown').innerHTML = countmin;

if(counter > 0){

timerID = setTimeout("CountDown()", 100)

}

}

window.setTimeout('CountDown()',100);

function secondstotime(secs)

{

var t = new Date(1970,0,1);

t.setSeconds(secs);

var s = t.toTimeString().substr(0,8);

if(secs > 86399)

s = Math.floor((t - Date.parse("1/1/70")) / 3600000) + s.substr(2);

return s;

}

</script>

</head>

<link rel="stylesheet" type="text/css" href="dhtml/style.css"/>

<body>

<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" class="entryTable">

<tr>

<th class="header" scope="col">&nbsp;Examination for <span style="text-transform:uppercase;"><?php echo $row_UserOn['fullname']; ?></span> <div style="float:right; padding-right:10px;">

<span style="text-transform:uppercase; color:#036;"><?php

$colname_dcourse = "-1";

if (isset($_GET['course'])) {

$colname_dcourse = $_GET['course'];

}

mysql_select_db($database_dbcon, $dbcon);

$query_dcourse = sprintf("SELECT * FROM course WHERE fuid = %s", GetSQLValueString($colname_dcourse, "text"));

$dcourse = mysql_query($query_dcourse, $dbcon) or die(mysql_error());

$row_dcourse = mysql_fetch_assoc($dcourse);

$totalRows_dcourse = mysql_num_rows($dcourse);

echo $row_dcourse['course'];?>

</span>

</div></th>

</tr>

<?php if(!isset($_GET['timeout']) && !isset($_POST['doans'])){?>

<tr>

<td height="22" align="right" valign="middle" class="info" scope="col">

<span style="font-size:30px; padding:10px; color:#F00;">

<span style="margin-right:10px; color:#069">Time:</span>

<strong id="countdown">&nbsp;</strong>

</span>

</td>

</tr>

<?php } ?>

<?php do { ?>

<tr>

<td class="content">

<form action="<?php echo $editFormAction; ?>" id="newEntry" name="newEntry" method="POST">

<table border="0" cellpadding="0" cellspacing="0" class="entryTab">

<tr>

<td colspan="2" class="info" scope="col"></td>

</tr>

<tr>

<th colspan="2" align="center" valign="middle" scope="row">

<?php if(!isset($_POST['doans']) && !isset($_GET['timeout'])) { ?>

<table width="98%" border="0" cellpadding="0" cellspacing="0" class="viewTab">

<tr>

<td align="left" valign="middle"><?php echo $row_questionData['question']; ?>

<?php $quesOpt = $row_questionData['fuid']; ?>

<?php

mysql_select_db($database_dbcon, $dbcon);

$query_optionData = "SELECT * FROM `option` WHERE question_fuid = '$quesOpt' ORDER BY label ASC";

$optionData = mysql_query($query_optionData, $dbcon) or die(mysql_error());

$row_optionData = mysql_fetch_assoc($optionData);

$totalRows_optionData = mysql_num_rows($optionData);

?>

</td>

</tr>

<?php do { ?>

<tr>

<td align="left" valign="middle"><?php echo $row_optionData['label']; ?> - <input name="score" type="radio" id="option" value="<?php echo $row_optionData['score']; ?>" />

&nbsp;<?php echo $row_optionData['option']; ?></td>

</tr>

<?php } while ($row_optionData = mysql_fetch_assoc($optionData)); ?>

</table>

<?php } ?>

</th>

</tr>

<tr>

<th scope="row"><span class="submit">

<input name="username" type="hidden" id="username" value="<?php echo $row_UserOn['username']; ?>" />

<input name="doans" type="hidden" id="doans" value="yes" />

</span></th>

<td class="submit">

<?php if(!isset($_POST['doans']) && !isset($_GET['timeout'])) { ?>

<input class="button" type="submit" name="EnterBtn" id="EnterBtn" value="Answer" />

<?php }?>

<?php if ($pageNum_questionData >= $totalPages_questionData) { // Show if last page ?>

<?php if(isset($_POST['doans'])) { ?>

Your exam is complete you may click the buton below to check your result<br/> <br/> <p>

<a href="result.php?result=<?php echo $row_UserOn['username']; ?>&course=<?php echo $_GET['course']; ?>&userfuid=<?php echo $_GET['staff']; ?>" class="buttonRed">click here for your result</a>

<a href="courses.php?staff=<?php echo $row_UserOn['gind']; ?>" class="button">Exams and Record</a>

</p> <?php $resultcheck = 'yes'; ?>

<?php } ?>

<?php } else { // Show if last page ?>

<?php if(!isset($_POST['doans']) && !isset($_GET['timeout'])) { ?>

<a href="<?php printf("%s?pageNum_questionData=%d%s", $currentPage, min($totalPages_questionData, $pageNum_questionData + 1), $queryString_questionData); ?>" class="button">SKIP THIS QUESTION</a>

<?php

$urlReload = htmlspecialchars_decode($editFormAction) . '&timeout';

if(header("refresh:15; $urlReload"))?>

<?php } } ?>

<?php if((isset($_POST['doans']) || (isset($_GET['timeout'])) )&& (!isset($resultcheck) || $resultcheck != 'yes')) { ?>

<?php

function RemoveTimeOut($input = '') {

$input = str_replace("timeout", ' ', $input);

return $input;

}

$prepPage = RemoveTimeOut($queryString_questionData);

?>

<div style="margin-top:4px;">&nbsp;</div>

<p>Please click on the button below to get your next question</p><br/><br/>

<a href="<?php printf("%s?pageNum_questionData=%d%s", $currentPage, min($totalPages_questionData, $pageNum_questionData + 1), $prepPage); ?>" class="button">NEXT QUESTION</a>

<?php } ?>

</td>

</tr>

</table>

<input type="hidden" name="MM_insert" value="newEntry" />

</form>

</td>

</tr>

<?php } while ($row_questionData = mysql_fetch_assoc($questionData)); ?>

</table>

</body>

</html>

<?php

mysql_free_result($UserOn);

mysql_free_result($dcourse);

?>

APPENDIX B: SAMPLE OUTPUT AND FORMS

Input Examiner’s Information

Input Examination Information

Input Subject/Course Information

Student profile’s index page (view questions asked)

Post Ticket Page (Silva is about to post a question to the admin.)

A Student Logging-In With Username “silva”

Index/Home Page (login as student, admin, or register as a new student)

Silva’s Exams & Records Page before Examination

Silver’s Exams And Records Page After One Examination (in intro to comp. science)

Question and Option Page (examination in progress)

End of exam confirmation page (here, the student may check for result, or go to exams and records for more information)

Post Ticket Page (Silva is about to post a complain to the admin.)

Result Page (after examination)

Admin Views Complains Posted By Students

Admin Login

Admin Posts Questions

Admin Posts Answer Options

APPENDIX C: PROGRAM FLOWCHART

Start

Enter admin password Enter student’s username and

password

Authenticate login parameters

Authenticate login parameters

Is the password correct?

Are login parameter

s valid?

No No

Yes Yes

FLOWCHART SHOWING THE WEB APPLICATION’S GENERAL LAUNCHING PROCEDURE

Stop

Start

Enter password

Authenticate password

Valid

Password?

No

Yes

FLOWCHART SHOWING THE ADMIN. PROCESS AND PROCEDURE

No

Yes

Load & display admin.php

View and resolve student’s questions & complains, set

exam questions, etc.

Logout

Stop

start

Enter username and password

Authenticate log-in parameters

Valid log-in parameters?

Load and display student’s profile

Click on “exams & records” to load & display exams & records page.

Read student’s input (answer

choice)

Mark input (answer) as “correct” or “wrong”.

Award “20” marks to answer if correct, or “0” mark if wrong,

manually skipped or auto-skipped.

Calculate result (in percentage), calculate Grade, & calculate G.P.

Mark exam as “taken”

Update database/exams

& records

Display result or exams and records

FLOWCHART SHOWING STUDENT’S EXAMINATION PROCESS AND PROCEDURE

No

Yes

Yes

No

Launch web cam to display image/video

Take exam

Display questions and options

Launch timer to “auto-skip” to next question after

15secs

Stop

Start

Connect to web application

Load index or Home page

Have valid username

& password?

Click on “register” to display registration

form

Authenticate login parameters

Valid login parameters?

Display student’s profile

Stop

FLOWCHART SHOWING STUDENT’S REGISTRATION PROCEDURE

APPENDIX D: SAMPLE DATABASE TABLES

Students Information Table

Read input or information

Validate input or information

Register student’s information

Update database

Enter username and password

Question table

Answer Options (A – D)

Exam Information Table

Course Information Table

Complain Table