You are on page 1of 124

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 ma i n a d v a n t a g e i s t h a t i t c a n b e c o n d u c t e d f o r r e mo t e c a n d i d a te s a n d 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 (OHare, 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. Eassessment 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 eexamination 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 Mhammed 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 eexamination 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. 2. 3. Requirements specification Design Construction (implementation or coding)

4. 5. 6. 7.

Integration Testing and debugging Installation 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 interlinked 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 students 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. iii. Software which would be used to carry out the task. Training of staff on the new systems.

While benefits derived from the cost would include: i. ii. iii. iv. v. vi. Communication with students more easily with the acquisition of new systems. Proper organization and storage of examination records and files. Easy access to and retrieval of information, examination, and results data. Back up of students exam records for future reference and retrieval. Elimination of question papers, answers sheets, and result booklets. 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. ii. iii. Observation is relatively inexpensive compared to other fact-finding techniques. The system analyst is able to see exactly what is being done. 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 interviewees 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 students 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 students 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 users 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-processoutput (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. ii.

Preliminary or general design 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. ii. iii. iv. v. vi. Input requirement Output requirement File and storage requirement Process Control and backup 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 applications 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 exams details can be inputted into the systems 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 systems 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 applications 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 students the score and grade for each course, the course code and title , the students

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 administrators 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 computers 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 applications 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 applications 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.

Start

Enter admin password

Enter students username and password

Authenticate login parameters

Authenticate login parameters

No

Is the password correct?

Are login parameters valid?

No

Yes

Yes

Load and display admin.php

Load and display students profile

Log-out

Log-out

Stop

Fig. 3.17 Flowchart Showing the Web Applications 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. ii. Get the administrators username and password. If the username and password is correct, then access is granted, else return to the login page. 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. v. Perform the operation in the selected page. 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 modulesstand-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. ii. iii. iv. v. vi. vii. The analysis and definition of the software The design and making of the algorithm Coding of the program Testing and debugging of the software Documentation of the software Verification and validation of the program 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. ii. iii. iv. v. What is the program supposed to do? Are the controls adequate? Are the specifications from the user complete? What else is needed to make them complete? 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 users 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 freestore 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 64bit operating systems, but on Microsoft Windows the only official distribution is a 32bit 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 multithreaded 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. ii. iii. Start Get the administrators username and password. 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. viii.

Output result End.

Start

Enter password

Authenticate password

Valid

No
Password?

Yes

Load & display admin.php

View and resolve students questions & complains, set exam questions, etc.

Logout

Stop

Fig 4.1: Flowchart Showing the Admin. Process and Procedure

4.1.5.2 Student Work module (front-end) i. ii. Start 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. v. vi. Ask questions, post complains, or take exam. Output result End

start
Read students input (answer choice)
Enter username and password

Mark input (answer) as correct or wrong. Authenticate log-in parameters

Award 20 marks to answer if correct, or 0 mark if wrong, manually skipped or autoskipped.

Valid log-in parameters?

No

Yes

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

Load and display students profile

Mark exam as taken

Update database/exams & records


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

Display result or exams and records


Launch web cam to display image/video

Stop
Take exam

Display questions and options

Launch timer to autoskip to next question after 15secs

Fig 4.2: Flowchart Showing Students 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 its relatively hard to write programs without the basic bugs and errors which are 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 Administrator Module (back-end) The administrator have a specific password which gives them access to the information of the students accounts ii. iii. A page is displayed, requesting the administrator's password The administrator should input a correct password

4.2.1 i.

iv. v.

A page is then displayed with options for the administrator to select from 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 i. ii.

User Work module (front-end) The students inputs their username and password 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.

Start

Authenticate login parameters

Display students profile

Connect to web application No


Valid login parameters?

Yes
Load index or Home page

Have valid username & password?

Yes

Stop

No
Click on register to display registration form

Read input or information

Validate input or information

Register students information

Update database

Enter username and password

Fig 4.3: Flowchart Showing Students Registration Procedure

4.3

IMPLEMENTATION GUIDELINE USER TRAINING REQUIREMENT

4.3.1

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. ii. Computers, 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. iii. The data would then be validated with the online examination software. 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. ii. iii. iv. Direct conversion Parallel conversion Phased conversion 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 userstamp 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 individuals 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. Technology.

(2001).

Microsoft

windows

2000

professional;

Course

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 info rmation 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:
CODE FOR ADMIN HOME
<?php if (!isset($_SESSION)) { <?php if (!function_exists("GetSQLValueString")) {

SOURCE CODE LISTING

session_start(); } require_once('Connections/dbcon.php'); ?>

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_escape_string($theValue); ? mysql_real_escape_string($theValue) :

switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue;

} }

$editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); }

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "set")) { $updateSQL = sprintf("UPDATE complains SET status=%s WHERE `guid`=%s", GetSQLValueString($_POST['status'], "text"), GetSQLValueString($_POST['guid'], "text"));

mysql_select_db($database_dbcon, $dbcon); $Result1 = mysql_query($updateSQL, $dbcon) or die(mysql_error()); } if(isset($_GET['category'])) { $category = $_GET['category']; } else { $category = "Q"; } mysql_select_db($database_dbcon, $dbcon); $query_myQuestion = "SELECT * FROM complains WHERE category = '$category' ORDER BY id DESC"; $myQuestion = mysql_query($query_myQuestion, $dbcon) or die(mysql_error()); $row_myQuestion = mysql_fetch_assoc($myQuestion); $totalRows_myQuestion = mysql_num_rows($myQuestion); ?> <?php //session_start(); if(!isset($_SESSION['adminlog'])) { header('Location: ./'); }?> <!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Admin Area</title> <link rel="stylesheet" type="text/css" href="style.css"/> <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>

<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" /> </head> <body> <table width="1000" border="0" cellpadding="0" cellspacing="0" align="center"> <tr> <td height="160" align="center" valign="top" background="../images/top.jpg">&nbsp;</td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="50">&nbsp;</td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center" id="input_table"> <tr> <td>Show: <a href="admin.php?category=C" class="button">complains</a> <a href="admin.php?category=Q" class="button">Question</a> <span style="padding-left:40px; padding-right:40px;"> <a href="../model/new_course.php" class="export">New Course</a> <a href="../model/new_examination.php" class="export">New Examination</a> <a href="../model/new_examiner.php" class="export">New Examiner</a> <a href="../model/new_question.php" class="export">New Question</a> <a href="../model/new_option.php" class="export">New Option</a> </span> <a href="index.php" class="button">Logout</a></td> </tr> <tr> <td height="30" align="center" valign="middle">&nbsp;</td> </tr> <tr> valign="middle" ><table width="100%" border="0" cellpadding="0" cellspacing="0"

<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"; } "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> = = = else { echo

<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'])) && $_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; (isAuthorized("",$MM_authorizedUsers,

$theValue = function_exists("mysql_real_escape_string") mysql_escape_string($theValue);

mysql_real_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 * GetSQLValueString($colname_UserOn, "text"));

FROM

`student`

WHERE

username

%s",

$UserOn = mysql_query($query_UserOn, $dbcon) or die(mysql_error()); $row_UserOn = mysql_fetch_assoc($UserOn); $totalRows_UserOn = mysql_num_rows($UserOn); ?> <?php mysql_select_db($database_dbcon, $dbcon); $query_course = "SELECT * FROM course ORDER BY course ASC"; $course = mysql_query($query_course, $dbcon) or die(mysql_error()); $row_course = mysql_fetch_assoc($course); $totalRows_course = mysql_num_rows($course); ?> <!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Exams and Record</title> </head> <link rel="stylesheet" type="text/css" href="dhtml/style.css"/> <body> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="50">&nbsp;</td> </tr> </table> <?php include('./inc/studentnav2.php'); ?> <table width="900" border="0" align="center" cellpadding="0" cellspacing="0" class="entryTable"> <tr> <th class="header" scope="col">&nbsp;Courses for <?php echo $row_UserOn['fullname']; ?></th> </tr>

<tr> <td class="content"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="viewTab">

<tr> <th width="40" height="24" align="left" valign="middle" scope="col">S/N</th> <th width="70" align="left" valign="middle" scope="col">code</th> <th align="left" valign="middle" scope="col">course</th> <th width="30" align="left" valign="middle" scope="col" style="border-right:#666 dotted 1px;">unit</th> <td width="10" align="center" valign="middle" scope="col">&nbsp;</td> <th width="80" align="center" valign="middle" scope="col" style="border-left:#666 dotted 1px;">SCORE</th> <th width="50" align="center" valign="middle" scope="col">GRADE</th> <th width="100" align="center" valign="middle" scope="col">TAKE exam</th>

</tr> <?php $sn = ''; do { ?> <tr> <td height="40" scope="row"> <?php echo $sn = $sn + 1; ?></td> <td height="24"><?php echo $row_course['acronym']; ?></td> <td height="24"><?php echo $row_course['course']; ?></td> <td height="24" align="center" $row_course['unit']; ?></td> valign="middle" style="border-right:#666 dotted 1px;"><?php echo

<td height="24" align="center" valign="middle">&nbsp;</td> <td height="24" align="center" valign="middle" style="border-left:#666 dotted 1px;"> <?php mysql_select_db($database_dbcon, $dbcon); $query_DScoreSet = sprintf("SELECT * FROM `result` WHERE course = '{$row_course['fuid']}' AND username = '{$row_UserOn['username']}'"); $DScoreSet = mysql_query($query_DScoreSet, $dbcon) or die(mysql_error()); $row_DScoreSet = mysql_fetch_assoc($DScoreSet); $totalRows_DScoreSet = mysql_num_rows($DScoreSet);

$examscore = '0'; do { $examscore = ($examscore + $row_DScoreSet['score']); } while ($row_DScoreSet = mysql_fetch_assoc($DScoreSet));

Code to Calculate Students 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 Students 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 Students Score in Exams and Records


if($totalRows_DScoreSet > 0) {echo "<big><big>".$examscore . "</big></big> <small>[100]</small>"; } else { echo 'No Score';}?> </td> <td height="24" align="center" valign="middle"><?php if($totalRows_DScoreSet > 0) { echo $examgrade; } else { echo "&#8212;"; }?></td> <td height="24" align="center" valign="middle">

<?php if($totalRows_DScoreSet > 0) { echo 'Exam Taken'; } else { ?> <a href="./exam.php?staff=<?php echo $row_UserOn['gind']; ?>&course=<?php echo $row_course['fuid']; ?>" class="buttonRed">Take Exam</a> <?php } ?> </td> </tr> <?php } while ($row_course = mysql_fetch_assoc($course)); ?> </table> </td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <th height="40" scope="col">&nbsp;</th> </tr> </table>

<table width="900" border="0" align="center" cellpadding="0" cellspacing="0" class="entryTable"> <tr> <th class="header" scope="col">&nbsp;Grade Point for <?php echo $row_UserOn['fullname']; ?></th> </tr>

<tr> <td class="content" style="height:40px;"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <th height="30" scope="col">Your current calculated GP is <span style="font-size:30px;"> <?php $gpvalue = ($totalPV / $creditLimit); echo number_format($gpvalue, '1'); ?></span></th> </tr> </table>

</td> </tr>

</table> </body> </html> <?php mysql_free_result($UserOn);

mysql_free_result($course); ?>

CODE FOR LOGIN/INDEX PAGE


<?php require_once('Connections/dbcon.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; }

$theValue = function_exists("mysql_real_escape_string") mysql_escape_string($theValue);

mysql_real_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 password=%s",

username,

password

FROM

`student`

WHERE

username=%s

AND

GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));

$LoginRS = mysql_query($LoginRS__query, $dbcon) or die(mysql_error()); $loginFoundUser = mysql_num_rows($LoginRS); if ($loginFoundUser) { $loginStrGroup = "";

if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();} //declare two session variables and assign them $_SESSION['MM_Username'] = $loginUsername; $_SESSION['MM_UserGroup'] = $loginStrGroup;

if (isset($_SESSION['PrevUrl']) && false) { $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; } header("Location: " . $MM_redirectLoginSuccess ); } else { header("Location: ". $MM_redirectLoginFailed ); } } if (!isset($_SESSION)) { session_start(); } require_once('Connections/dbcon.php'); ?>

<!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Staff</title> <link rel="stylesheet" type="text/css" href="style.css"/> <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script> <script src="SpryAssets/SpryValidationPassword.js" type="text/javascript"></script> <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" /> <link href="SpryAssets/SpryValidationPassword.css" rel="stylesheet" type="text/css" /> </head>

<body>

<table width="1000" border="0" cellpadding="0" cellspacing="0" align="center"> <tr> <td height="160" align="center" valign="top" background="../images/top.jpg">&nbsp;</td> </tr> </table>

<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="50">&nbsp;</td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="50" align="center" valign="middle"><form id="login" name="login" method="POST" action="<?php echo $loginFormAction; ?>"> <table width="500" border="0" cellspacing="0" cellpadding="0" id="input_table"> <tr> <td colspan="2" class="header" scope="col">USER LOGIN</td> </tr> <tr> <td colspan="2" class="value" scope="row">Please enter your login information below</td> </tr> <tr> <th align="left" valign="middle" class="label" scope="row"><label for="username">Username:</label></th> <td class="value"><span id="sprytextfield1">

<input name="username" type="text" class="input" id="username" /> <span class="textfieldRequiredMsg"></span></span></td> </tr> <tr>

<th align="left" valign="middle" class="label" scope="row"><label for="password">Password:</label></th> <td class="value"><span id="sprypassword1">

<input name="password" type="password" class="input" id="password" /> <span class="passwordRequiredMsg"></span></span></td> </tr> <tr> <th scope="row">&nbsp;</th> <td height="30" class="value"><input name="LogBtn" type="submit" class="button" id="LogBtn" value="Login" /></td> </tr> <tr> <th height="30" colspan="2" scope="row">New user? <a href="reg.php">Register</a></th> </tr> </table> </form></td> </tr> </table> <?php if(isset($_POST['loginStaff'])) { //PROCESS ADMIN LOGIN

$userlog = $_POST['staffusername'];

$adminID = '080admin'; if($userlog == $adminID) { $msg = 'Your have logged in as admin correctly'; header("Location: admin.php"); } else { $msg = 'Incorrect login information'; }

} //END ADMIN LOGIN

else { $msg = 'Please enter your login PIN';} ?>

<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="60">&nbsp;</td> </tr> <tr> <td height="60" align="center" valign="middle"><form id="adminLogin" name="adminLogin" method="post" action=""> <table width="500" border="0" cellpadding="0" cellspacing="0" id="input_table"> <tr> <td colspan="2" class="header" scope="col">ADMIN LOGIN</td> </tr> <tr> <td colspan="2" class="value" scope="row"><?php echo $msg; ?></td> </tr> <tr> <th class="label" scope="row"><label for="staffusername">ADMIN ID:</label></th> <td class="value"><span id="sprypassword2">

<input name="staffusername" type="password" class="input" id="staffusername" /> <span class="passwordRequiredMsg"></span></span></td> </tr> <tr> <th scope="row" ><input name="loginStaff" type="hidden" id="loginStaff" value="yes" /></th> <td class="value"><input 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"); name="StaffLoginBtn" type="submit" class="button" id="StaffLoginBtn"

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_escape_string($theValue);

mysql_real_escape_string($theValue)

switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined":

$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } }

$colname_ResultData = "-1"; if (isset($_GET['result'])) { $colname_ResultData = $_GET['result']; } mysql_select_db($database_dbcon, $dbcon); $query_ResultData = sprintf("SELECT * FROM `result` WHERE course = '{$_GET['course']}' AND username = %s", GetSQLValueString($colname_ResultData, "text")); $ResultData = mysql_query($query_ResultData, $dbcon) or die(mysql_error()); $row_ResultData = mysql_fetch_assoc($ResultData); $totalRows_ResultData = mysql_num_rows($ResultData); ?> <?php include_once("utility/rand.php"); ?> <!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>RESULT</title> </head> <link rel="stylesheet" type="text/css" href="dhtml/style.css"/> <body>

<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="entryTable">

<tr> <th class="header" scope="col">&nbsp;RESULT<span style="float:right; padding-right:10px;"> style="text-transform:uppercase;"></span> <div

<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 mysql_fetch_assoc($ResultData)); ?><br />

$row_ResultData['score']);

while

($row_ResultData

<?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_escape_string($theValue);

mysql_real_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 $maxRows_questionData); = sprintf("%s LIMIT %d, %d", $query_questionData, $startRow_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 $queryString_questionData); ?> <?php include_once("utility/rand.php"); ?> = sprintf("&totalRows_questionData=%d%s", $totalRows_questionData,

CODE FOR TIME AUTOMATION


<!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Exam</title> <script type="text/javascript"> var start = new Date(); start = Date.parse(start)/1000; var seconds = 15; function CountDown(){ var now = new Date(); now = Date.parse(now)/1000; var counter = parseInt(seconds-(now-start),10); countmin = secondstotime(counter); document.getElementById('countdown').innerHTML = countmin;

if(counter > 0){ timerID = setTimeout("CountDown()", 100) } } window.setTimeout('CountDown()',100);

function secondstotime(secs) { var t = new Date(1970,0,1); t.setSeconds(secs); var s = t.toTimeString().substr(0,8); if(secs > 86399) s = Math.floor((t - Date.parse("1/1/70")) / 3600000) + s.substr(2); return s; }

</script> </head> <link rel="stylesheet" type="text/css" href="dhtml/style.css"/> <body>

<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" class="entryTable">

<tr> <th class="header" scope="col">&nbsp;Examination for <span style="text-transform:uppercase;"><?php echo $row_UserOn['fullname']; ?></span> <div style="float:right; padding-right:10px;"> <span style="text-transform:uppercase; color:#036;"><?php $colname_dcourse = "-1"; if (isset($_GET['course'])) { $colname_dcourse = $_GET['course']; } mysql_select_db($database_dbcon, $dbcon);

$query_dcourse = sprintf("SELECT * FROM course WHERE fuid = %s", GetSQLValueString($colname_dcourse, "text")); $dcourse = mysql_query($query_dcourse, $dbcon) or die(mysql_error()); $row_dcourse = mysql_fetch_assoc($dcourse); $totalRows_dcourse = mysql_num_rows($dcourse); echo $row_dcourse['course'];?> </span> </div></th> </tr> <?php if(!isset($_GET['timeout']) && !isset($_POST['doans'])){?> <tr> <td height="22" align="right" valign="middle" class="info" scope="col"> <span style="font-size:30px; padding:10px; color:#F00;"> <span style="margin-right:10px; color:#069">Time:</span> <strong id="countdown">&nbsp;</strong> </span> </td> </tr> <?php } ?> <?php do { ?> <tr> <td class="content">

<form action="<?php echo $editFormAction; ?>" id="newEntry" name="newEntry" method="POST"> <table border="0" cellpadding="0" cellspacing="0" class="entryTab"> <tr> <td colspan="2" class="info" scope="col"></td> </tr> <tr> <th colspan="2" align="center" valign="middle" scope="row"> <?php if(!isset($_POST['doans']) && !isset($_GET['timeout'])) { ?> <table width="98%" border="0" cellpadding="0" cellspacing="0" class="viewTab"> <tr> <td align="left" valign="middle"><?php echo $row_questionData['question']; ?>

<?php $quesOpt = $row_questionData['fuid']; ?>

<?php mysql_select_db($database_dbcon, $dbcon); $query_optionData = "SELECT * FROM `option` WHERE question_fuid = '$quesOpt' ORDER BY label ASC"; $optionData = mysql_query($query_optionData, $dbcon) or die(mysql_error()); $row_optionData = mysql_fetch_assoc($optionData); $totalRows_optionData = mysql_num_rows($optionData);

?> </td> </tr> <?php do { ?> <tr> <td align="left" valign="middle"><?php echo $row_optionData['label']; ?> - <input name="score" type="radio" id="option" value="<?php echo $row_optionData['score']; ?>" /> &nbsp;<?php echo $row_optionData['option']; ?></td> </tr> <?php } while ($row_optionData = mysql_fetch_assoc($optionData)); ?>

</table> <?php } ?> </th> </tr> <tr> <th scope="row"><span class="submit"> <input name="username" type="hidden" id="username" value="<?php echo $row_UserOn['username']; ?>" /> <input name="doans" type="hidden" id="doans" value="yes" /> </span></th> <td class="submit">

<?php if(!isset($_POST['doans']) && !isset($_GET['timeout'])) { ?> <input class="button" type="submit" name="EnterBtn" id="EnterBtn" value="Answer" />

<?php }?>

<?php if ($pageNum_questionData >= $totalPages_questionData) { // Show if last page ?>

<?php if(isset($_POST['doans'])) { ?> Your exam is complete you may click the buton below to check your result<br/> <br/> <p> <a href="result.php?result=<?php echo $row_UserOn['username']; ?>&course=<?php echo $_GET['course']; ?>&userfuid=<?php echo $_GET['staff']; ?>" class="buttonRed">click here for your result</a> <a href="courses.php?staff=<?php echo $row_UserOn['gind']; ?>" class="button">Exams and Record</a> </p> <?php $resultcheck = 'yes'; ?> <?php } ?> <?php } else { // Show if last page ?>

<?php if(!isset($_POST['doans']) && !isset($_GET['timeout'])) { ?>

<a href="<?php printf("%s?pageNum_questionData=%d%s", $currentPage, min($totalPages_questionData, $pageNum_questionData + 1), $queryString_questionData); ?>" class="button">SKIP THIS QUESTION</a>

<?php $urlReload = htmlspecialchars_decode($editFormAction) . '&timeout'; if(header("refresh:15; $urlReload"))?> <?php } } ?>

<?php if((isset($_POST['doans']) || (isset($_GET['timeout'])) )&& (!isset($resultcheck) || $resultcheck != 'yes')) { ?>

<?php function RemoveTimeOut($input = '') { $input = str_replace("timeout", ' ', $input);

return $input; } $prepPage = RemoveTimeOut($queryString_questionData); ?> <div style="margin-top:4px;">&nbsp;</div>

<p>Please click on the button below to get your next question</p><br/><br/> <a href="<?php printf("%s?pageNum_questionData=%d%s", $currentPage, min($totalPages_questionData, $pageNum_questionData + 1), $prepPage); ?>" class="button">NEXT QUESTION</a>

<?php } ?> </td> </tr> </table> <input type="hidden" name="MM_insert" value="newEntry" /> </form> </td> </tr> <?php } while ($row_questionData = mysql_fetch_assoc($questionData)); ?> </table> </body> </html> <?php mysql_free_result($UserOn);

mysql_free_result($dcourse);

?>

APPENDIX B:

SAMPLE OUTPUT AND FORMS

Input Examiners Information

Input Examination Information

Input Subject/Course Information

Student profiles index page (view questions asked)

Post Ticket Page (Silva is about to post a question to the admin.)

A Student Logging-In With Username silva

Index/Home Page (login as student, admin, or register as a new student)

Silvas Exams & Records Page before Examination

Silvers Exams And Records Page After One Examination (in intro to comp. science)

Question and Option Page (examination in progress)

End of exam confirmation page (here, the student may check for result, or go to exams and records for more information)

Post Ticket Page (Silva is about to post a complain to the admin.)

Result Page (after examination)

Admin Views Complains Posted By Students

Admin Login

Admin Posts Questions

Admin Posts Answer Options

APPENDIX C:

PROGRAM FLOWCHART

Start

Enter admin password

Enter students username and password

Authenticate login parameters

Authenticate login parameters

No

Is the password correct?

Are login parameters valid?

No

Yes

Yes

Load and display admin.php

Load and display students profile

Log-out

Log-out

Stop FLOWCHART SHOWING THE WEB APPLICATIONS GENERAL LAUNCHING PROCEDURE

Start

Enter password

Authenticate password

Valid

No
Password?

Yes

Load & display admin.php

View and resolve students questions & complains, set exam questions, etc.

Logout

Stop

FLOWCHART SHOWING THE ADMIN. PROCESS AND PROCEDURE

start
Read students input (answer choice)
Enter username and password

Mark input (answer) as correct or wrong. Authenticate log-in parameters

Award 20 marks to answer if correct, or 0 mark if wrong, manually skipped or autoskipped.

Valid log-in parameters?

No

Yes

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

Load and display students profile

Mark exam as taken

Update database/exams & records


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

Display result or exams and records


Launch web cam to display image/video

Stop
Take exam

Display questions and options

Launch timer to autoskip to next question after 15secs

FLOWCHART SHOWING STUDENTS EXAMINATION PROCESS AND PROCEDURE

Start

Authenticate login parameters

Connect to web application No


Valid login parameters?

Load index or Home page

Yes
Display students profile

Have valid username & password?

Yes

Stop

No
Click on register to display registration form

Read input or information

Validate input or information

Register students information

Update database

Enter username and password

FLOWCHART SHOWING STUDENTS REGISTRATION PROCEDURE

APPENDIX D:

SAMPLE DATABASE TABLES

Students Information Table

Question table

Answer Options (A D)

Exam Information Table

Course Information Table

Complain Table

You might also like