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.
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"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="50"> </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"> </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"> </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"> 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"> </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"> </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 "—"; }?></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"> </th>
</tr>
</table>
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0" class="entryTable">
<tr>
<th class="header" scope="col"> 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"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="50"> </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"> </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"> </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"> 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"> 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"> </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']; ?>" />
<?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;"> </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
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 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
Top Related