DESIGN AND IMPLEMENTATION OF A FAULT TOLERANT WEB-BASED EXAMINATION SYSTEM FOR DEVELOPING COUNTRIES

during the course of a student writing an exam such as power outage, network failure or system component failure should be automatically handled by the examination system with little or no effort from the administrator. In this regard, research on the development of a fault tolerant e-learning platform deserves special attention as this will ameliorate the challenges faced by developing countries in adopting e-learning technologies in tertiary institutions.


Introduction
In education, the concept of E-Learning (Electronic Learning) has grown rapidly from distance learning to virtual classrooms towards online courses and online examinations. The global spread of the covid-19 pandemic has resulted in developing countries adopting e-learning technologies as a means to curb the spread of the virus. With the increasing Internet applications scope, computer net-assisted teaching is becoming a focus of current educational reform; web-based online examination systems because of their ease of use, time-intensive, and other have received more attention [1]. Due to the wide adoption of e-learning globally, the use of an online examination platform to assess the performance of students has become inevitable. Online examination is proven to be time and resource efficient compared to the traditional offline examination systems. The traditional printed-paper-based examinations are wrought with drawbacks such as time and resource wastage in preparing examination paper [2], chance of loss of records is more as well as searching records is hard [3], and delay in result processing [4]. These drawbacks make it harder to adapt the traditional printed-paper-based examination to some large-scale or urgent examination that requires timely release of results and grading of students. Online examination has become an effective tool to complement the traditional printed-paper-based examination. A performance of electronic examination systems with traditional printed-paper examinations is compared in [5]. The results showed that students who participated in electronic examination systems performed better, and electronic examinations could improve teaching efficiency as well.
Despite the drawbacks in the traditional printed-paper examinations, it cannot be totally replaced at a bigger scale because most web-based online examination systems feature only multiple-choice type questions [6] while most exams contain descriptive questions for which multiple choice answers will not work.
A web-based online examination system is expected to have resumption capabilities and be fault tolerant. These features are needed in order to make the functionalities of these systems meet their requirements to serve their purposes [7]. Any failure during the course of a student writing an exam such as power outage, network failure or system component failure should be automatically handled by the examination system with little or no effort from the administrator.
In this regard, research on the development of a fault tolerant e-learning platform deserves special attention as this will ameliorate the challenges faced by developing countries in adopting e-learning technologies in tertiary institutions.

DESIGN AND IMPLEMENTATION OF A FAULT TOLERANT WEB-BASED EXAMINATION SYSTEM FOR DEVELOPING COUNTRIES C e a s a r E . E k o
tries such as scores, exam questions and login passwords. The system could generate random questions as well as encrypt the sensitive records in the database; however, it could not resume the exam if a fault were to occur during an examination. To promote the development of basic computer education, an online examination system based on the Browser/Server framework for the evaluation of computer basic operational skills is designed in [15]. The system is a distributed collaborative system with components such as: the examination preparation system, the examination system, the examination monitor system and the auto-grading system. The system is capable of examining basic computer operating skills such as Visual Basic programming, Microsoft Windows operating, Word, Excel and PowerPoint editing, Internet and Email etc. The system requires students not to leave the computer during a test hence, it will not be ideal for examination settings where a computer system might break down during an examination. A computer skill assessment system to assess practical computer skills is similarly designed in [16]. The authors utilize various techniques involving Distributed Component Object Model (DCOM), mark-method and fuzzy-match to enable auto-grading in the system. The system can auto-grade descriptive questions but could not auto-resume after a failure in the exam process. The study in [17] proposed an online examination system with an integrated and flexible structure.
The system manages functions such as collection of feedback from students, generating reports and submitting them for decision making purposes. The system could solve most of the challenges encountered during an exam but each challenge generated feedback that is sent to an instructor who is saddled with the responsibility of restarting the exams for the affected students.
Most of the reviewed literature assumes an ideal examination setting where an examination runs from start to finish without any interruptions. A good number of reviewed literatures that have exam monitoring features also assume that interruptions during the course of an examination are a flag for potential malpractice. Students are expected to maintain uninterrupted connection to the web server [18]. This is not always the case especially, in developing countries where power can be lost during an examination hence, a student may be required to restart the entire exams or forfeit the exams in the case of remote examinations where an instructor may not be available to resolve such problems. Other issues such as prolonged network downtime and system component failure can also affect the seamless conduct of an examination. This paper is focused on developing an examination system with features such as: resumption capability, random question selection, random questions distribution, random choices distribution, and concurrent examination to help ameliorate these challenges while curbing examination malpractice.

The aim and objectives of the study
The aim of the study is to develop a secure fault tolerant examination system that can recover from several technical faults such as power failure, network failure, and system component failure.
To achieve this aim, the following objectives were accomplished: -to design a system that restores the remaining time, question set, and selected choices during the occurrence of a fault in an examination;

Literature review and problem statement
The main aim of a software system is so that human effort can be significantly reduced by introducing proficient computing technologies. Several researches have been carried out using existing technologies to improve conducting examinations using a web-based examination system. The study in [8] developed An Examination System Automation Using Natural Language Processing that allows descriptive questions to be graded. They designed and analyzed a model that assigns accurate marks to the answers for a given question. The model enabled an examinee to write descriptive answers which will get evaluated using Natural Language Processing. The system evaluated student's answers during the exams and students could see the correct solutions. However, features such as random question selection and random questions distribution were missing from the system and as a result, students are presented with the same set of questions whose solutions are already known. Similarly, a creative software solution are developed in [9] that automates manual assessment and helps organizations to limit the cost, time, exertion and human errors involved in conducting an examination. The authors designed a centralized system that can effectively manage the tasks and activities related with examination. The system permitted descriptive answers to be scanned and manually evaluated by evaluators. This will reduce the amount of hard copy records an institution will need to maintain. However, this evaluation process will require lots of human resource and time as much as in paper-based examinations. To reduce the rate of examination malpractice and cheating in online examinations, a random number generator is used to develop an online examination system that auto generates random questions; however, features such as resumption capability were missing [10]. A set of electronic examinations in Nigeria aimed at preventing students from bad behaviors to some extent is implemented in [11]. The authors highlighted economic factors, security, Software, Poor ICT culture, policy and implementation, and power failure as the critical challenges facing the conduct of online examination in Nigeria. These challenges are common among developing countries and addressing them has been a major concern for these countries. An examination system is also designed in [12] to monitor the status of students during examinations. They developed a system where a camera at the client computer is used to capture the student's face and posture at random intervals during a test. The captured footage could be reviewed at a later date if the need arises. Reviewing this footage to discover irregularities during an examination will require lots of manpower. Such a system may not be ideal for developing countries due to the need for an uninterrupted network connection. An online examination system using Java web technologies that runs on a campus network and included functions such as question management and test paper generation is developed in [13]. The paper generation module randomly extracted questions from the question database in accordance with three restrictions, including question type, difficulty and chapter to generate an exam paper. The system developed by the authors could generate random questions based on the specified question combination; however, it did not have any resumption feature. In order to meet the special requirements in impartiality, confidentiality and authorization forms used in the field of industry certification, an encryption scheme to provide safety in web-based examination systems is proposed and implemented in [14]. This encryption scheme prevented users from directly modifying database en--to design an algorithm capable of random question selection, random questions distribution, and random choices distribution to reduce examination malpractice; -to develop a system that permits multiple examinations to be written concurrently in order to eliminate the need for manual scheduling of examinations; -test the developed system with simulation of different fault scenarios to determine how the system will recover from such faults and resume an exam.

Materials and methods
The incremental software development model in conjunction with prototyping technique was adopted in the research. This methodology was adopted due to the iterative nature of the developed software. A pseudo random number generator was used to generate random questions. The randomly generated question sets are stored in a database and are reallocated to students that may need to resume an examination. The research used client device IP addresses to keep track of connected devices. Apache web server was used to serve the web pages on the client's browser. The server-side language is PHP. The research used bootstrap and JQuery framework to style and give dynamism to the frontend. The software was deployed and tested on HP Proliant ML350 Gen10 server with a lamp server installation.

1. Architecture of the System
The web-based online examination system consists of two parts, namely the server side and the client side. In the following, these parts are described.
The server side consists of a server agent, a database, and a temporary session storage. The server agent is a PHP program that controls the operations of the examination system from the server side. It is responsible for the execution of the administrative operations and coordinates the examination process. The server agent enables the administrator to: a) insert and manage question pools for different courses; b) insert and manage eligible students list for an exam; c) monitor and manage the examination processes. The state diagram of the server agent is shown in Fig. 1. The database stores the questions, answers, student list, and courses to be written during an examination. Once the question sets and corresponding choices for a student are retrieved from the database, they are stored in a temporary session storage. The temporary session storage is PHP session variables which are faster to access as the database size becomes very large [19]. Hence, performance is not degraded as the size of the database becomes large due to the increased number of users of the system.
The client side consists of a client agent, the Graphical User Interface (GUI), and the network. The client agent is a piece of program written using JavaScript, CSS, AJAX, JQuery and the Bootstrap Framework. It controls every operation on the client side. The client agent is responsible for the following operations: a) communicate with the server to authenticate a student login; b) manage the examination writing phase; c) send the answers to the server agent for grading; d) receive student's grades and display the result.
The client agent implements three types of submit including going to the next question, going to the previous question, and going to a specific question. In order to solve some of the challenges highlighted in [11], the client agent implements keyboard controls that allows students to use the keyboard to perform operations such as going to the next question, going to the previous question, selecting an answer, and concluding the exams. The client agent submits the student's answers via AJAX to the server agent once a choice is made by the student. The client agent also controls the countdown timer and sends a request to the server to terminate the student's session and display the scores once the examination time elapses. The state diagram of the client agent is shown in Fig. 2.
The web-based application developed in this study is christened General Studies Online Examination System (GSOLES). This system can be used to conduct a series of examinations in different courses that are meant to run concurrently. This web application enables an administrator to add an arbitrary number of questions to a pool of questions from which random question sets will be assigned to students during an examination. These question sets are stored in a database and are reassigned to a student during resumption of an exam. The administrator can as well schedule examinations in different courses that are meant to run simultaneously. Students will only be eligible to sit for the registered courses. The system randomizes the question set given to each student to reduce cheating and malpractice during an examination. The system interface is user friendly as novice computer users can navigate through the system with the use of custom keys on a computer keyboard. The proposed system is failure tolerant as the student's progress in the exams is easily restored in case there are instances of network failure, component failure or power failure during an examination.

2. Failure Toleration
The GSOLES has the ability to recover from failure and resume the examination prior to the point of failure. Such failure includes power failure, network failure, and system component failure [7]. The system is designed to recover from these failures if they occur during an examination. As a result, students will not be required to restart the entire examination when these failures occur. The system allows the student to resume the examination prior to the point of failure by keeping track of the entire examination process. In the next subsection, let's discuss the recovery procedures in each case.

2. 1. Power Failure
During an examination, each of the selected choices by a student is stored in the database and a copy is also stored in the temporary session storage. The server agent keeps track of the IP address used by a client computer during an examination. When there is power failure, the user will be temporarily disconnected pending when the power is restored. Once power is restored, and the client computer rebooted, the student will be allowed to re-login and continue the examination from the same computer system if the IP address of the client computer remains unchanged. The client agent also resumes the countdown timer from the remaining time saved in the database prior to when the power failure occurred. The server agent fetches the previously assigned questions from the database and reassigns the same set of questions, options and selected answers.

2. 2. Network Failure
Network failure may occur if the examination is conducted over the Internet or a Local Area Network (LAN). If a client computer is disconnected during an examination, the client agent will not be able to transmit newly selected answers by the student to the server agent. The system operations on the client side will discontinue until the network is restored. The server agent keeps track of the idle time during an exam. If the idle time exceeds a threshold of 500 seconds, the server agent will reallocate the idle time to the student. When the network is restored, the student can resume the examination from the point prior to the network failure.

2. 3. Computer's Components Failure
There are instances where machine failure or hard disk failure may occur during the examination phase. The server agent enables students to easily resume the examination from another computer system with the authorization of the system administrator. The system does not permit simultaneous logins on two different machines. When a student starts the exam, the server agent adds the client system's IP address and hostname to the student's profile to prevent simultaneous login from another computer system. Hence, in a scenario where there is component failure and the student can no longer continue on the same computer system, the administrator can reset the IP address and hostname that was added to the student's profile to enable the student login and continue the exams from another computer system.

3. Combination of Randomization
The three forms of randomization in [7] were used to minimize the level of cheating among students during the examination. The sequence of questions and choices distributed among the students are random. The set of questions assigned to a student will be stored in the database to facilitate easy resumption of the examination in case of a failure.

3. 1. Random Question Selection
During an examination, question sets are randomly selected from the entire pool of questions in a given course.
The server agent enables the administrator or the instructor to upload any given number of questions (N ) for each of the courses to be written and then specify the number of questions (Q) that will be randomly fetched to each student (where Q<=N ). The random selection of questions is a feature performed for a more secure and time saving examination.

3. 2. Random Questions Distribution
In the examination phase, each student can login to the system and request for exam's questions in a course. As an added security measure and to prevent cheating, random question distribution is required [20]. Therefore, each student gets a random set of questions that differ from any other set of questions received by other students.

3. 3. Random Choices Distribution
To ensure security and robustness against cheat attempts during an examination, random choice distribution within each question is performed. In other words, the order of choices within the same question received by each student is randomized. Thus, if two students get the same question, the choices of this question are randomly sorted and differ from each other in the order of choices [20].

Actors in GSOLES
There are three categories of users in the GSOLES as shown in Fig. 3.
These include the administrators, instructors and students. The different roles played by these actors are as depicted in Fig. 3.

1. Administrator
The administrator has control to manage the entire system. The functions of the administrator include: -upload and manage eligible student list for the examination; -upload and manage question bank for each of the courses to be written; -add list of courses for the examination; -add Departments, Faculties and Programmes; -export student results at the end of the examination; -enable students to swap computer systems in case of component failure; -specify duration for each examination.

2. Instructor
The instructor is responsible for developing the questions for each of the courses. Other responsibilities of the examiner include: -specify the number of questions to be answered during an exam; -upload the set of questions for an examination.

3. Students
A student should be able to login with his/her registration number and then choose a course he/she is eligible to write. Students can also see their results at the end of the examination.

1. Examination time, question set and selected choices restore
The implementation of the examination system permits the time spent by a student during a fault to be restored once the fault is resolved. The system keeps track of the last activity performed by a student and restores the time a student spent during a loss of connectivity. The time is restored only if the loss of connectivity persists beyond a threshold time; 500 seconds is used in this study. The automated retrieval of the remaining time, question set, and selected choices are the attributes that facilitate the resumption capabilities of the system. The examination start-up and resumption process is shown in Fig. 4. In addition to the PHP session variables which may be lost if a client computer loses power, the IP address and hostname of a client computer is assigned to the user's registration number during the examination which is used to resume a student's session from the same device.
The system interfaces are shown in Fig. 5. The login interface (Fig. 5, a) prompts the student for a registration number. On successful authentication of the registration number, the course selection interface (Fig. 5, b) prompts the student to choose a course he/she is duly registered for. The exam interface (Fig. 5, c) allows a student to navigate through the questions and options either with a mouse or a computer keyboard. The admin interface (Fig. 5, d) is the GUI used to manage administrative functions.

2. Algorithm for implementing random question selection, random questions distribution, and random choices distribution
To prevent the same sequence of questions and choices to be assigned to students, an algorithm for random question selection, random questions distribution, and random choices distribution was implemented. This algorithm is shown in Fig. 6.
The algorithm can be validated using the equation in [1]. Assuming the probability that students get the same sequence of questions with the same sequence of choices is denoted by P(R). Then P(R) is given by the formula where Q is the number of exam's question is Q, Ci is the number of choices for Qi (where i=1...Q), the number of students is S, and the total number of questions stored in the database for this exam is N (where Q<=N).

3. Multiple concurrent examinations
Multiple concurrent examinations eliminate the complexities involved in examination scheduling. The list of registered courses by each student is stored in the database. Once a course is scheduled, a student will be eligible to write all the scheduled courses registered for.

4. Simulation of fault scenarios
The developed system was tested and deployed. The different fault scenarios were simulated in a local area network and different fault scenarios were simulated. Students could resume an examination after the client computer was restarted. Students could also change devices after the administrator reset the IP address and hostname assigned to the registration number. A comparison of the features of GSOLES and existing online examinations systems is shown in Table 1. Source: [21] Unlike other existing systems, the GSOLES automatic test resumption capability. This is considered a novel feature. It ensures that a student could resume his/her exam without affecting the remaining examination in case of power, network or physical computer component failure. The second feature is the combination of random question selection, random questions distribution, and random choice distribution to reduce examination malpractice. Also, the system developed in this study is designed to allow examinations in different subjects to be scheduled and written concurrently.

Discussion of the results of the development of a webbased fault-tolerant examination system
After analyzing existing web-based examination systems and the challenges faced by developing countries in adopting these systems to conduct examinations, the need to create a system that addresses these challenges was identified. Studies [8][9][10][11][12][13][14][15][16][17][18] on the development of online examination systems included the research to justify the need to conduct a seamless web-based examination.
To solve this problem, a fault tolerant web-based examination with resumption capabilities was developed to reduce the effect of the occurrence of faults. The occurrence of a fault can result in abrupt termination of an exam as the timer may time out before such fault is resolved. To solve this problem, the system was designed to restore the lost time by keeping track of the client computer's connectivity with the server. Once connectivity is lost beyond a threshold period, the system restores the timer to when the student last interacted with the server. In addition to restoring the remaining time, the question set and selected choices by a stent is restored when the exam is resumed. The process involved in resuming an exam is shown in Fig. 4. If power failure occurs, the system uses the IP address and host name to restore a student's session.
An algorithm was constructed for random question selection, random questions distribution, and random choices distribution. This algorithm as shown in Fig. 5 is used to reduce examination malpractice. The randomized question sets and selected choices are stored in a database and are reassigned to a student during resumption of the exams. The random algorithm uses PHP inbuilt shuffle function which ensures that the generated random question sets are normally distributed.
The features of the designed system were compared with some popular online examination systems. The result of the comparison is shown in Table 1. In comparing these features, automated test resumption, which is a novel feature, is enabled in GSOLES in addition to other common features. Automated test resumption will ensure that institutions can adopt web-based examinations without the need for uninterrupted power or Internet connection.
The limitation of this study is that the proposed method is applied only to online examinations with multiple choice questions. There is a need to apply the proposed method in this study to online examinations with descriptive questions.
The disadvantages of this study include the following: -the proposed method does not involve live image capture and as a result will not detect impersonation when the exam is written over the Internet; -keeping track of all the assigned questions and selected choices may result to the database size becoming too large for large examinations.
The study can be further enhanced by incorporating live image capture to check impersonations when the exams are written online. A major drawback to this enhancement is the need to manually review the captured footage to detect impersonation. Face detection technologies will reduce the need to manually review such footage but this technology is yet to be fully harnessed in developing countries.

1.
A web-based examination system with resumption capabilities was developed. The system keeps track of the current state of an examination by storing the examination time, questions, IP address, and hostname in a database. These details are used to resume an examination if there is an interruption during the exams. Here, uninterrupted power supply and network connection will not be a necessity in conducting an online examination.
2. A pseudo random algorithm was used to reduce examination malpractice. This algorithm generates random questions and random choices. Hence, as the number of questions in the question pool increases, the probability that the same sequence of questions and choices is assigned to students is greatly reduced. 3. The system permits examinations in different courses to be written concurrently by keeping track of all registered courses. Students are eligible to sit for any scheduled course that was registered for. 4. A simulation of different fault scenarios showed that the web-based fault-tolerant examination system permits the resumption of an examination from the same device when there is loss of power or network connection without the intervention of a system administrator. The examination time, questions and choices are preserved. Hence, the integrity of the final grade is guaranteed.