SlideShare a Scribd company logo
1 of 94
Download to read offline
THE COPPERBELT UNIVERSITY
SCHOOL OF MATHEMATICS AND NATURAL SCIENCES
GROUP PROJECT TITLE: INTERACTIVE ONLINE ASSESSMENT SYSTEM
SUMBMITTED IN PARTIAL FULFILLMENT FOR THE AWARD OF A BACHELOR OF
SCIENCE IN COMPUTER SCIENCE.
COURSE NAME: PROJECT MANAGEMENT
COURSE CODE: CS 301
SUPERVISOR: MR. SHUMBA
PROJECT COORDINATOR: MR. MUMBA
PROGRAM: BSc COMPUTER SCIENCE
YEAR OF STUDY: 3
GROUP MEMBERS:
DANIEL NG’ANDU 14268088
MUSIALIKE MAKENA 14331851
MELVIN MALAYA 13053584
ANDREW SAPANOI 14462877
II
ABSTRACT
Virtual education and online examinations are an emerging concept. Here the tests are not taken
on paper in a classroom but through an electronic medium as a substitute. In this case a web page
will contain test questions and course material.
This type of learning and taking of examinations online are gaining importance every day and
very soon they are going to be an integral part of our world, the academic world.
Taking up these virtual tests through an electronic medium is termed as E-Learning. Today E-
Learning is no more a technical word that only a few people know. It is turning to be a part of
everyone's life whether a student, employee or a housewife, all tend to use E-Learning in one
way or another. Larger organizations such as universities, are turning towards E-Learning
solution for providing training digitally. This means less money spent on equipping various
departments with realms of paper and printing machines. This also has a positive impact on the
environment, as it means fewer tress are cut down for the purposes of paper production.
As the number of Internet access points are growing rapidly in Zambia and around the world, E-
Learning is also gaining a new peak. This electronic medium serves best for dissemination of
information. E-Learning is proving itself as a boon for students/pupils especially for the disabled
who are not able to go and attend the classes.
III
DECLARATION
We hereby declare that this project is our work and that to the best of our knowledge and belief.
It contains no material previously published or written by another person except where due
acknowledgement is made.
PARTICICIPANTS SIGNATURE DATE
1. DANIEL NG’ANDU ………………… …………………
2. MUSIALIKE MAKENA ………………… ………………….
3.MELVIN MALAYA ………………… …………………..
4. ANDREW SAPANOI ………………… …………………..
SUPERVISOR: MR. SHUMBA DATE
Signature………………………… …………………
IV
DEDICATION
To:
Our parents
All students pursuing s BSc Computer Science at The Copperbelt University
And to Zambia our Mother Land.
V
ACKNOWLEDGEMENTS
Our deepest gratitude goes to God who has provided all that was needed to complete this project.
There was never lack or want. Throughout this entire study, He strengthened us even through
most difficult times.
Mr. Shumba has been the ideal thesis supervisor. His sage advice, insightful criticisms, and
patient encouragement aided the writing of this thesis in innumerable ways. I would also like to
thank Mr. Mumba whose steadfast support and guidance of this project was greatly needed and
deeply appreciated.
We also appreciate the government of the republic of Zambia for the financial assistance
rendered to us to complete this project.
VI
Table of Contents
1. CHAPTER ONE...........................................................................................1
INTRODUCTION .....................................................................................................1
1.1. INTRODUCTION........................................................................................2
1.2. PROBLEM STATEMENT ..........................................................................2
1.3. PROPOSED SYSTEM.................................................................................2
1.4. OBJECTIVES...............................................................................................3
1.5. PROJECT SCOPE........................................................................................3
1.6. METHODOLOGY.......................................................................................3
2. CHAPTER TWO..........................................................................................5
LITERATURE REVIEW ..........................................................................................5
2.1. INTRODUCTION........................................................................................6
2.2. EXISTING SYSTEMS.................................................................................6
2.2.1. Questions Sharing and Interactive Assignments (QSIA) .............................6
2.2.2. Modular object-oriented dynamic learning environment (Moodle).............8
2.2.3. E-Homebook System (EHS).........................................................................8
2.2.4. EduWare........................................................................................................8
3. CHAPTER THREE....................................................................................10
REQUIREMENTS SPECIFICATION....................................................................10
3.1. INTRODUCTION......................................................................................11
3.2. SCOPE AND OBJECTIVE........................................................................11
3.3. BENEFITS AND OBJECTIVES OF PROPOSED SYSTEM...................11
3.4. FUNCTIONAL REQUIREMENTS...........................................................11
3.4.1. Input ...........................................................................................................11
3.4.2. Processing ..................................................................................................11
3.4.3. Storage .......................................................................................................12
3.4.4. Output.........................................................................................................12
VII
3.5. NON-FUNCTIONAL REQUIREMENTS ................................................12
3.5.1. HARDWARE.............................................................................................12
3.5.2. SOFTWARE..............................................................................................12
4. CHAPTER FOUR ......................................................................................13
DESIGN SPECIFICATION ....................................................................................13
4.1. INTRODUCTION......................................................................................14
4.2. ARCHITECTURAL DESIGN...................................................................14
4.3. DATA DESIGN .........................................................................................15
4.4. APPLICATION DESIGN ..........................................................................19
4.4.1. Logic Design...............................................................................................19
4.4.2. HIERARCHICAL INPUT PROCESS OUTPUT DIAGRAM (HIPO) .....20
4.5. USER INTERFACE DESIGN ...................................................................20
4.6. SECURITY DESIGN.................................................................................22
5. CHAPTER FIVE........................................................................................23
IMPLEMENTATION..............................................................................................23
5.1. INTRODUCTION......................................................................................24
5.2. IMPLEMENTATION TOOLS ..................................................................24
5.2.1. Hardware....................................................................................................24
5.2.2. Software .....................................................................................................24
6. CHAPTER SIX...........................................................................................26
SYSTEM EVALUATION AND TESTING ...........................................................26
6.1. INTRODUCTION.....................................................................................27
6.2. PURPOSE OF TESTING..........................................................................27
6.3. TESTING CRITERIA...............................................................................27
6.3.1. UNIT TESTING ........................................................................................27
6.3.2. INTEGRATION TESTING.......................................................................42
6.3.3. SYSTEM TESTING ..................................................................................42
VIII
7. CHAPTER SEVEN...................................................................................43
CONCLUSION AND RECOMMENDATIONS ....................................................43
7.1. CONCLUSION .........................................................................................44
7.2. RECOMMENDATION.............................................................................44
8. REFERENCE ............................................................................................45
References................................................................................................................46
9. APPENDICES...........................................................................................47
9.1. APPENDIX I.............................................................................................48
9.1.1. PROJECT PROPOSAL .............................................................................48
9.1.1.1. INTRODUCTION .....................................................................................48
9.1.1.2. PROBLEM STATEMENT........................................................................48
9.1.1.3. THE PROPOSED SYSTEM .....................................................................48
9.1.1.4. BENEFITS OF THE PROPOSED SYSTEM............................................48
9.1.2. COMPONENT ACTIVITIES OF THE PROJECT...................................48
9.1.2.1. Meetings with supervisor...........................................................................48
9.1.2.2. Collection of Data......................................................................................49
9.1.2.3. Draft of Requirements Specification Document........................................49
9.1.2.4. Project Design............................................................................................49
9.1.2.5. Project Development..................................................................................49
9.1.2.6. Software Testing ........................................................................................49
9.1.2.7. License Agreement ....................................................................................49
9.1.2.8. Quality Assurance......................................................................................49
9.1.2.9. Acceptance Testing....................................................................................49
9.1.2.10.Handover of Product to Client...................................................................49
9.1.3. BUDGET....................................................................................................50
9.1.4. MILESTONES ...........................................................................................50
9.1.5. GANTT CHART........................................................................................51
IX
9.2. APPENDIX II.............................................................................................52
9.2.1. USER MANUAL.......................................................................................52
INTRODUCTION ...................................................................................................52
HOW TO INSTALL THE SYSTEM ......................................................................52
USING THE SYSTEM............................................................................................52
9.3. APPENDIX III ...........................................................................................59
SAMPLE CODE......................................................................................................59
1. CHAPTER ONE
INTRODUCTION
2
1.1. INTRODUCTION
What is e-learning? [1]
Quite simply, e-learning is electronic learning, and typically this means using a computer to
deliver part, or all of a course whether it's in a school, part of your mandatory business training
or a full distance learning course (http://www.virtual-college.co.uk/elearning/elearning.aspx.).
In the early days it received a bad press, as many people thought bringing computers into the
classroom would remove that human element that some learners need, but as time has progressed
technology has developed, and now we embrace smartphones and tablets in the classroom and
office, as well as using a wealth of interactive designs that makes distance learning not only
engaging for the users, but valuable as a lesson delivery medium.
The introduction of ICT (Information and communicational technology) in most primary schools
in Zambia and across the world has made it easy to share information on the wide world web
regardless of location.
The current case with most institutions of learning is the lack funds to buy papers and ink needed
to print out examination papers and handouts for pupils, thus causing inconveniences to the
current learning process, and also when the papers are used to write tests, there are not properly
disposed of thus posing an environmental pollution when the papers are burnt.
In the case of The Copperbelt University (C.B.U) last academic year, most departments had no
paper and ink to prepare examinations papers when the time for examinations drew near.
1.2. PROBLEM STATEMENT
According to our preliminary research we discovered that the old way of conducting
examinations has a negative impact on the environment due to the unnecessary usage of paper as
it means that trees are cut down to produce paper, which can lead to global warming and
ultimately desertification. The unnecessary burning of paper after pupils write their exams or
finish reading their handouts can cause damage to the ozone layer.
And it has been noticed that the cost of conducting examinations is high due to buying of paper,
ink and printing machines.
1.3. PROPOSED SYSTEM
Our proposed web based Questions Sharing and Interactive Assignments system mainly focuses
on the current primary school education system.
This is a web based system that will not only help in keeping pupil`s records, the system is also
intended at helping the teachers to assess pupil’s performance in a more effective way, help
pupil`s keep track of their progress and see which areas they ought to improve in.
3
1.4. OBJECTIVES
Objectives of the proposed system include:
1. Be able to record pupil’s details.
2. Be able to assess the pupil`s comprehension through tests.
3. System will be able to grade pupil’s performance immediately and give detailed
feedback.
4. System will be able to give pupils feedback from correct or wrong answers.
5. Online tests can be more accessible to pupils with disabilities i.e. blindness who have
assistive technologies built into their computers than handwritten tests are.
6. System should be able to save time between publication of results and marking of tests by
teachers.
1.5. PROJECT SCOPE
This project was developed in phases, first we developed a website that is user friendly using
HTML and CSS, we used CSS3 for styling our pages. Then PHP (hypertext preprocessor) was
used to create dynamic content on web pages and to interact with the database containing pupil`s
records.
This system is only available online.
1.6. METHODOLOGY
DATA COLLECTION
Data collection methods will include;
INTERVIEWS
Interviews, among many other methods used to collect data verbally, are a powerful tool as they
give chance to get clarity and avoid possible misunderstandings between the interviewee and the
interviewer. They were used for this reason and because it is often easier to schedule an
interview with upper management than to have them, say, complete a questionnaire and because
they are people who are not able to express themselves well in writing but can express their
concerns in detail verbally.
We interviewed management, and pupils at various primary schools in Kitwe on the challenges
they face with the current system being used in primary schools of writing tests on paper, and
printing costs for those preparing exams.
PROGRAMMING LANGUAGES & TOOLS
Since our proposed system is a web based system and it includes a database, the programming
languages we used to achieve this include;
4
HTML5 & CSS
Html (hypertext markup language) is a standard markup language that we used to create web
pages, we also used it to create user input fields such as student registration forms. We used
CSS3 for styling our pages. CSS stands for cascading style sheets. preferred integrated
development environment(IDE) we choose for HTML5 is notepad++.
PHP
PHP (hypertext preprocessor) is one of the many server-side scripting languages. We used it to
create dynamic content on web pages and to interact with the database containing pupil`s
records.
We found it is easy to learn, and it has an extensive documentation tool called the manual.
Preferred integrated development environment(IDE) to be used to write our PHP code will be
notepad++, Eclipse and NetBeans.
MYSQL
MySQL (Structured Query Language (SQL) a standard language used for relational database
programming. This has become one of the widest used and powerful databases around. It was
used because it interacts well with PHP. Preferred integrated development environment(IDE) to
be used to write our database was Microsoft Access.
5
2. CHAPTER TWO
LITERATURE REVIEW
6
2.1. INTRODUCTION
The delivery and establishment of learning opportunities and support via computer, networked
with web–based technology to help individual performance and development. Interactive Online
assessment system provides capabilities for pupils to learn, tests and records each user’s
demonstration comprehension of the materials provided, provide educational material to multiple
users and track student performance. [2]
These systems vary in size, scope and capabilities, from capability, from packages that are
implemented in relatively small organizations to cover students alone, to enterprise-wide
solutions to aim to cover aspects of running large multi-campus organizations and their online
schools with significant local responsibilities [3]. Many systems can be tailored to different
levels of functionality to meet local needs. Since these systems are complex they have
subsystems to manage students, which may include checking student performance, writing
exams and many others.
The interactive online assessment system focuses mainly on testing and recording each student’s
demonstrated comprehension of the materials provided. Most e learning systems are online based
and online personnel are lectures, tutors and students access them using unique user names and
passwords.
The existing systems to be considered are in our literature review include: Questions Sharing and
Interactive Assignments System(QSIA), Moodle©, E-Homebook System (E.H.S), and
EduWare©.
2.2. EXISTING SYSTEMS
2.2.1. Questions Sharing and Interactive Assignments (QSIA)
This is a Web-based environment for learning, assessing and knowledge sharing in communities.
QSIA means: Questions Sharing and Interactive Assignments. It off ers a unified infrastructure
for developing, collecting, managing and sharing of knowledge items. QSIA enhances
collaboration in authoring via online recommendations and generates communities of teachers
and learners. At the same time, QSIA fosters individual learning and might promote high-order
thinking skills among its users [4].
This system offers the following functionalities and benefits:
 QSIA system enables users to create and edit different knowledge items such as questions or
learning tasks. The knowledge items can range from simple low order thinking skill
questions that require memorizing or seeking straightforward information, to complex
assignments with high order thinking skills that require analysis and synthesis of the learning
material. QSIA knowledge items are modular variety of types including multiple-choice
questions, matching questions, true/ false questions or content items. QSIA as a Web-tool
permits easy accessibility to a variety of knowledge databases that include written text, as
well as interactive multimedia such as music, video films, special simulations and virtual
tours to museums. It is a multi-lingual system and has been used in English, Hebrew, Arabic
and Turkish [4].
7
 QSIA focuses on knowledge sharing among participants, while maintaining a secure and
private working environment. One of QSIA s sub-tasks is matching mates: the capability to
make matches among recommenders and those seeking recommendations. Sharing
knowledge via QSIA includes three aspects: Uploading knowledge items. Composing a
question and allowing others to use it. QSIA has four different access levels: private (opened
only to the owner), personal (opened to a selected set of users), partial (opened only to a
selected set of learning groups) or public (opened to everybody). In each of these levels, the
user can choose to restrict the access to a specific role (teachers, for example).
Ranking knowledge items. Answering a question and then ranking it on a scale of 1–5, so
others could benefit from one’s professional opinion and recommendations. Receiving
recommendations. Looking at the average rank other participants (instructors or students)
provided for a certain question. Thus, every user can benefit from the expertise of others. The
recommendation system enables instructors and students to get targeted suggestions
of knowledge items [4].
 QSIA offers new prospects for individual assessment based on computerized follow-up and
monitoring of the individual answering path chosen by each student. The QSIA online
assessment activities are called assignments and have a number of applications. QSIA
assignments can be seen both as a formal and informal evaluation of the students’
knowledge. The formal evaluation is carried out by a quiz given to the students
simultaneously but not necessarily in the same place. The informal evaluation is represented
by self-tests students
can carry out any time and any place for detecting their difficulties and misunderstanding.
 QSIA assignments can be reviewed by the instructor before distribution to the students. If
there are no computer facilities, a hard copy of the assignments can be printed or exported to
common word processor formats. When administered online, the instructor can monitor the
progress of the students, according to parameters such as number of questions answered and
more. The system allows the instructor to choose between several grading strategies, which
may be added dynamically to the system in runtime. Instructors can view and analyse the
grades of the students, according to three parameters: students, assignments or knowledge
item. Furthermore, the system offers aggregate reports [4].
 The educational line of work produces massive learning materials for both instructors and
students. After years of learning and teaching, educators possess valuable lectures, working
sheets, written projects, exercises, assignments and more. Scholars often have trouble
organizing their papers, files and folders. Valuable psychometric history pertaining to items
and their quality often gets lost in the shuffle. QSIA helps solve this problem. QSIA allows
managing educational content using folders, search facility and editing tools. It enables users
to create and manage a set of folders that includes all of the content owned by them. The
folders allow users to manage their content s properties using centralized and time-saving
methods. Content such as knowledge items, created by the QSIA user, can be indexed under
a certain discipline. The list of personalized knowledge areas can be used afterwards in order
8
to retrieve the contents. The system keeps a list of disciplines or personalized knowledge
areas suited for each user. Since QSIA is an online system, users can retrieve their personal
educational contents any time and any place providing there is a computer with a connection
to the Internet [4].
2.2.2. Modular object-oriented dynamic learning environment (Moodle)
This is a free and open-source software learning management system written in PHP and
distributed under the GNU General Public License. Developed on pedagogical principles,
Moodle is used for blended learning, distance education, flipped classroom and other e-learning
projects in schools, universities, workplaces and other sectors. With customizable management
features, it is used to create private websites with online courses for educators and trainers to
achieve learning goals. Moodle (acronym for modular object-oriented dynamic learning
environment) allows for extending and tailoring learning environments using community sourced
plugins
2.2.3. E-Homebook System (EHS)
This is web-based interactive education interface. E-Homebook System (EHS) has agents which
provide a teacher–parent–student communication interface through Internet. The EHS comprises
intelligent agents: interaction agent, instruction agent, information agent, evaluation agent and
log agent. The agents manage a learning portfolio conception, observe and record students e-
learning behaviour through the web log, and provide teachers a reference of portfolio
information. The agents adopt a trigger function to analyse the students learning behaviour from
Internet as well as from classroom, evaluate overall performance, then send an e-mail messages
automatically to the teachers and parents to guide and assist the students who need to revise their
learning attitude. Similarly, the agents will record parent’s participation portfolio, then teachers
may draft better communication strategy. The EHS provides a better communication role
between students–parents–teachers, implements an integrated performance measurement
method, and conducts a better teaching strategy support interface for elementary education.
2.2.4. EduWare
EduWare school management software is an online system that has been specially designed to
maintain all the records of school or educational institutions. EduWare software helps to
maintain all the administrative and financial activities of the school. It provides paperless
management and easy management of students, staff and school records [5].
Functionalities and benefits:
 Trustee or head of the educational institution can check the reports of fees collection and
daily money transaction reports from anywhere.
 Teachers can upload the marks with editing facility anytime from anywhere.
 Management can check the attendance report of staff and students from any place.
 Multiple branches can be managed.
 No limitation of the data storage.
 Data stores on web.
9
 Bulk SMS facility available.
 Attendance, exam and result management in easy way.
 Staff can easily access any information about the student from anywhere
10
3. CHAPTER THREE
REQUIREMENTS SPECIFICATION
11
3.1. INTRODUCTION
The System is intended to be an online system for primary school pupils in Zambia. Many
systems fail because they do not meet the requirements of the intended users. This document
seeks to deliver in detail the requirements specifications, which includes the features and
functionality of the proposed system. This chapter outlines the operations of the required system,
inputs, outputs, hardware and software required to develop the system. It basically sets out the
user requirements as gathered during the requirements elicitation stage. The document highlights
how the proposed system is expected to operate by describing both functional and non-functional
requirements.
3.2. SCOPE AND OBJECTIVE
This project was developed in phases, first we developed a website that is user friendly using
HTML and CSS, we used CSS3 for styling our pages. Then PHP (hypertext preprocessor) was
used to create dynamic content on web pages and to interact with the database containing pupil`s
records. This system is only available online.
3.3. BENEFITS AND OBJECTIVES OF PROPOSED SYSTEM
Objectives of the proposed system include:
Be able to record pupil’s details.
Be able to assess the pupil`s comprehension through tests.
System will be able to grade pupil’s performance immediately and give detailed
feedback.
System will be able to give pupils feedback from correct or wrong answers.
Online tests can be more accessible to pupils with disabilities i.e. blindness who have
assistive technologies built into their computers than handwritten tests are.
System should be able to save time between publication of results and marking of tests by
teachers.
3.4. FUNCTIONAL REQUIREMENTS
3.4.1. Input
All the inputs from the user is via keyboard input and mouse point click. The user navigates the
website by clicking on the icons and links. The icons give appropriate response to the given
input. The following are inputs the system will receive:
 Uploading of course material and assignments.
 Entering pupil’s assessment results.
 Receiving user choice from a list of possible answers.
 Adding of questions and answers to the database by system administrators.
 Adding and deleting users.
3.4.2. Processing
Processing of the system refers to the operations performed on data entered into the system to
generate output such as:
 Calculating C.A(Continuous Assessment).
12
 Update student’s records.
 Sorting of pupils marks from the highest to the lowest.
 Modification of pupils details
3.4.3. Storage
Data and all the files are stored on a database system. In addition, other important information
such as administrator username and password is stored on a database as well as that of other
local users such pupils.
3.4.4. Output
 Show pupil’s details.
 Produce results.
 Produce class reports to the teacher.
 Show search results of pupils ‘details by use of I.D (identification).
 Should generate and display pupil’s performance.
3.5. NON-FUNCTIONAL REQUIREMENTS
These are the constraints on the services or functions offered by the system.
3.5.1. HARDWARE
The minimum hardware requirements are:
 Processor
Computer with a 600 MHz or faster processor (1 GHz or higher recommended)
 RAM
Minimum: 256 MB
Recommended: 512 MB
 Keyboard and mouse
A mouse was needed for the manipulation of Graphical User Interface and keyboard for input.
 Monitor
A suitably sized monitor (preferably 14-inch or larger) was required for screen output.
3.5.2. SOFTWARE
The minimum hardware requirements
 An operating system (Windows 7 or Later version)
 PHP and MYSQL server (XAMPP, WAMP)
 Any web browser (Opera, Mozilla FireFox, Google, Internet Explorer)
13
4. CHAPTER FOUR
DESIGN SPECIFICATION
14
4.1. INTRODUCTION
This chapter has evolved out of the Requirements Specification preceding it. It outlines the
design of how the proposed system will be implemented. The design specification document
bridges the gap between Systems requirements and implementation of a system that satisfies
those systems’ requirements. [6]
The Design outlined in this document will describe:
1. Architectural Design
This is to do with how the physical components of the system are arranged and resources
accessed by the clients.
2. Data Design
Data designs is concerned with data that our system used. This mainly involves database
design which is illustrated using entity-relationship(ER) diagrams and tables that result
from the data.
3. Interface Design
This is to do with how the system appeared to the user.
4. Security Design
This is to do with how the system is secured and protected from unauthorized access.
4.2. ARCHITECTURAL DESIGN
This section shows the structure of how the hardware components are arranged. The system
utilizes client/server architecture as shown below. Client server is a program relationship in
which one program (the client) requests a service or resource from another program (the server).
In this case the client is the web browser of the user which requests a service which are the web
pages of the system from the server on which the system is hosted. The system’s database was
implemented as software on the server.
15
Figure 1:showing the client server architecture
4.3. DATA DESIGN
This section shows E-R (Entity Relational) diagrams. It also gives a structural specification
consisting of a description of files and data types.
How Data is used in the database is illustrated using entity relationship diagrams and tables.
4.3.1. Entity Relation Schema
Pupil (Pupil-id, Pupuil_name, gender, Address)
Teacher (Teacher-id, Teacher_name, Phone_No, Email-address, address)
Subject (Subject-id, name)
Class (class-id, class_teacher)
Test (test-id, results)
Exercise (exercise-id)
16
4.3.2. ENTITY RELATION DIAGRAM
PUPIL
TEACHER
grade
CLASS
EXERCISESUBJECT has
TEST
has
takes
takes
has
Pupil-id
Class-id
Exercise-id
-id
Test-id
-id
17
KEY
Entity Relationship Entity type
Attribute
One to one relationship
One to many relationships
Optional association
Figure 2 showing entity relation diagram
4.3.3. DATABASE TABLES
The following are the data tables derived from the entity relationship diagram showing the fields,
their data types, size and description of each fields.
4.3.3.1. Pupil’s table
FIELD NAME DATA TYPE SIZE DESCRIPTION
Pupil-id Integer 10 Primary key uniquely identifies a pupil.
First-name Varchar 20 The first name of the pupil.
Last-name Varchar 20 The last name of the pupil.
Gender Enum The gender of pupil.
Class-id Varchar 8 Foreign key identifies the class the pupil belongs.
Address Varchar 30 The address of the pupil.
4.3.3.2. Teachers table
FIELD
NAME
DATA
TYPE
SIZE DESCRIPTION
Teacher-id Integer 10 Primary key uniquely identifies a teacher.
First-name Varchar 20 The first name of the teacher.
Last-name Varchar 20 The last name of the teacher.
E-mail Varchar 60 The working e-mail address of the teacher
Address Varchar 30 The address of the teacher
Subject-id Varchar 10 Foreign key identifies the subject the teacher teaches
Class-id Varchar 8 Foreign key identifies the class the teacher supervises.
18
4.3.3.3. Subject table
FIELD NAME DATA
TYPE
SIZE DESCRIPTION
test_id Int 100
test_questions Varchar 100 The first name of the pupil.
option_A Varchar 100
option_B Varchar 100
option_C Varchar 100
question_answer Varchar 100
test_name Varchar 30
teacher_id Varchar 11
subject_id Varchar 11 Primary key a subject.
4.3.3.4. Class table
FIELD
NAME
DATA
TYPE
SIZE DESCRIPTION
Class-id Integer 10 Primary key uniquely identifies a class.
Teacher-id Integer 10 Foreign key that identifies the teacher that supervises the
class.
Subject-id Integer 10 Foreign key that identifies the subjects the class has.
4.3.3.5. Test table
FIELD
NAME
DATA
TYPE
SIZE DESCRIPTION
Test-id Integer 10 Primary key uniquely identifies a test.
Teacher-id Integer 10 Foreign key identifies a teacher who prepares the test.
Subject-id Integer 10 Foreign key that identifies the subjects in which the test is
given.
Results Double 4 The marks obtained by the pupil.
4.3.3.6. Exercise table
FIELD
NAME
DATA
TYPE
SIZE DESCRIPTION
Exercise-id Integer 10 Primary key uniquely identifies an exercise.
19
Teacher-id Varchar 20 Foreign key identifies a teacher who prepares the exercise.
Subject-id Integer 10 Foreign key that identifies the subjects in which the exercise
is given.
4.4. APPLICATION DESIGN
4.4.1. Logic Design
The logical design provides the flow of logic in the system. It describes the design of an
application giving the modules to be added and showing how the modules interact to accomplish
the system’s objective or goal. Hierarchical Input Process Output (HIPO) diagrams is used for
the architecture design of the Interactive Online eLearning and Assessment System. Figure
below shows a decomposition of the system into respective modules.
The following are the modules and their description:
4.4.1.1. User Login Module
This module allowed users (Pupils, and Teachers) including the systems Administrator to log
into the system. It provided the users an interface to input their passwords and usernames. This
module established a connection and was able to inform the user. Because the technology for
distribution of the system is the web, the transport layer protocol that was used for this is the
Hypertext Transfer (or Transport) Protocol (HTTP).
4.4.1.2. Main Menu Module
This module displayed all the necessary categories upon logging in and it controls all processing.
Invokes programs to handle data entry.
4.4.1.3. Add User Module
This module is invoked by the System Administrator module to create a new user account for a
user. This includes giving each user a username and a password. To create a new user account,
the administrator was required to enter the pupil`s and teacher`s: first names, surnames,
identification numbers, gender, class, physical address and phone numbers.
4.4.1.4. User Logout Module
This module is for ‘Exiting’ or leaving the system; it leads to shutting down or closing of the
system. It will be invoked to logout from the various panels logged into (i.e., administrator, pupil
or teacher).
4.4.1.5. System Administrator Module
This module triggered the addition and deletion of various user accounts in the system. It is
therefore, a function meant for the System Administrator. This particular module also enabled all
Administrator Module Staff to keep track of all members of staff and all the available resources.
Generation of a report containing summarized information about drugs was also possible with
this module.
20
4.4.1.6. Teacher Module
The following information was required for registration of Teachers: identification number, first
name, surname, phone number, email address, and physical address
4.4.1.7. Pupil Module
The following information was required for registration of pupils: identification number, first
name, surname, gender, physical address.
4.4.1.8. Delete User Module
This module is invoked by the System Administrator module to remove user accounts from the
System.
4.4.1.9. Edit User Module
This module is invoked to edit user details by System Administrator module. Editing user details
include charging the usernames, passwords, granting or denying certain privileges
4.4.2. HIERARCHICAL INPUT PROCESS OUTPUT DIAGRAM (HIPO)
Figure 3 shows the HIPO diagram
4.5. USER INTERFACE DESIGN
This section describes how the user-interface of the main pages of the system appeared like, what
links are present and which input fields are available to the user.
Log in
Student
Notes Tests
Teacher Administrator
Exercises Upload content Edit results View results Add user Delete
user
21
Figure 4 shows user login page
22
Figure 5 shows home page
4.6. SECURITY DESIGN
Security design generally addresses the questions, how the system avoids unauthorized access,
who was allowed to modify of data in the system`s database, and how this was implemented?
Security on the website was implemented using PHP (Hypertext Pre-processor), security
certificates were used. There were three (3) password levels: one for the administrator(s) and one
for the pupil(s) and the other for the teachers.
The administrator(s) was given privileges to update the database and website.
Password was stored in the database with an MD5 encryption;
MD5 is a one-way encryption technique. The database was protected from SQL (Structured
Query Language) injection by the use of HTML5 entities, these changed any commands inputted
by the user to their representation in character. Each username was required to be unique and so
every user has a different and unique password and username combinations. [7]
23
5. CHAPTER FIVE
IMPLEMENTATION
24
5.1. INTRODUCTION
From the designs stage, the next step was to carry out the implementation of the system. This
chapter focuses on the tools that were used to implement the design of the system.
Implementation stage of software development is the process of converting a system’s design
specification into an executable system. It specified how the user requirements in the design
specification were satisfied.
This document describes the transition of the classified website into a system and focuses on the
implementation of the Learning System. This review looked at the following objectives:
 The system is able to record pupil’s details.
 The system is able to give pupil’s feedback from correct or wrong answers in practice
exercises.
 The System is able to grade the pupil’s performance immediately after taking a quiz and
give a detailed feedback.
5.2. IMPLEMENTATION TOOLS
A programming tool or Software development tool is a computer program that software
developers use to create, debug, maintain, or otherwise support other programs and applications.
5.2.1. Hardware
Pentium IV Computer with processing speed 1.5 GHz, 1 GB of Ram, 250 GB Hard disk space
was used.
5.2.2. Software
 XAMPP
 Notepad++
 Web Browser (Google Chrome)
5.2.2.1. XAMPP
XAMMP is the most popular PHP development environment.
It is a completely free, easy to install Apache distribution containing MYSQL, PHP and Perl.
The XAMPP open source package has been set up to be incredibly easy to install and to use. [8]
It allows web designers and programmers to test their work on their computers without any
access to the internet.
5.2.2.2. Notepad++
This is an open source code and text editor used for writing code in Hypertext Markup Language
(HTML5), PHP Hypertext Preprocessor (PHP), Cascading Style Sheet (CSS3) and JavaScript
(JS). [9]
25
5.2.2.3. Web Browser
Google Chrome was used as our choice to test or run our PHP, CSS, JS and HTML code on our
localhost.
5.2.3. Mark up and Scripting Programming languages
 Hypertext Markup Language (HTML5)
 PHP Hypertext Preprocessor (PHP)
 My-Structured Query Language(MySQL)
 JavaScript
 Cascading Style Sheet (CSS)
 Bootstrap
5.2.3.1. Hypertext Markup Language (HTML)
HTML is a markup language used for describing web pages [10]. It was used for the creation of
system pages; it was mostly used for creation of user input fields such as the login form, user
registration form, tables for easy display of data.
5.2.3.2. PHP Hypertext Preprocessor (PHP)
PHP is server scripting languages and a powerful tool for making dynamic and interactive web
pages [11]. It was used to create dynamic content on the system and all the interactions with the
database as well as handling all browser requests and sending information across the internet to
the user browser.
5.2.3.3. My-Structured Query Language Improved (MySQLi)
MySQL is a database system used on the web, it uses standard SQL statements, it is database
system that runs on a server and it is free to download and use. [12]
5.2.3.4. JavaScript
JavaScript is the scripting language of the web [13]. It was used for adding some functionality to
the system.
5.2.3.5. Cascading Style Sheet (CSS3)
CSS is style sheet language that describes the presentation of an HTML document. It describes
how elements must be rendered on screen, on paper, or in other media. [14]
CSS was used to design all the systems interfaces.
5.2.4. Bootstrap
Bootstrap is a free front-end framework for faster and easier web development. It includes
HTML and CSS based design templates for typography, forms, buttons, tables, navigation,
modals, image carousels and many other, as well as optional JavaScript plugins. Bootstrap also
gives you the ability to easily create responsive designs. [15]
26
6. CHAPTER SIX
SYSTEM EVALUATION AND TESTING
27
6.1. INTRODUCTION
This chapter describes the criteria used when testing the system. Testing and evaluation simply
outlines the ways in which the system was subjected to different tests in order to determine
whether or not the system performed in accordance with the requirements specified in the
requirement specification document. This was done on the complete integrated system to achieve
the functionality it was set to achieve. Testing provided the opportunity to detect errors and
inconsistency of the system before finally passing it to the users.
6.2. PURPOSE OF TESTING
The main purpose of testing was to ensure that the system was running in an error free
environment. Another objective was to uncover any improper functioning in the system.
Testing is time consuming but it is a vital activity, it is impossible that errors would not be
found in the system during testing. This may be due to incorrect programming,
misunderstanding or omissions of specifications.
The following were the motivations for the test
 To check that the requirements of the users were met and that the system adheres to
the user requirements.
 To make sure that the system was programmed correctly, that is, the
program logic constituted in the scripts performed the specific function that they
were intended to perform.
6.3. TESTING CRITERIA
Testing of the system was done using the commonly used testing phases which are; Unit testing,
integration testing, and finally System testing. Each of these testing criteria served a vital
purpose to the completion of the System with the aim of exploring the System to detect errors
underlying each layer of testing. At whatever stage and phase of testing the aim was to find
errors and inconsistency in the System.
6.3.1. UNIT TESTING
Unit testing is the testing of individual components or modules of the system. Unit testing was
done on individual modules.
 Home page: The homepage is the front page of the website that holds the links and buttons
to different user pages. The user that isn’t logged is able to view what the system offers and
cannot fully interact with the system.
28
Figure 6 showing home page
 Create Account Page: This page allows the administrator to fill in the form and submit to the
database. The Administrator fills in the form correctly in order to successfully create an account for
the user and no blank fields can be submitted.
29
Figure 7 creating user accounts
Adding pupils to database
<?php
session_start();
require('connection.php');
//initializing our variables
$user_name = $first_name = $last_name = $password1 = $password2 = $gender = $class_id =
$address = "";
if(isset($_POST["Register"])){
$first_name = mysql_real_escape_string($_POST["first_name"]);
$last_name = mysql_real_escape_string($_POST["last_name"]);
$user_name = mysql_real_escape_string($_POST["user_name"]);
$password = mysql_real_escape_string($_POST["password"]);
30
$password2 = mysql_real_escape_string($_POST["password2"]);
$address = mysql_real_escape_string($_POST['address']);
$class_id = mysql_real_escape_string($_POST['class_id']);
$gender = mysql_real_escape_string($_POST['gender']);
if($password === $password2){
$Sql = "INSERT INTO `pupil`(`pupil_id`, `user_name`, `first_Name`, `last_Name`, `gender`,
`class_id`, `address`, `password`)
VALUES('','$user_name','$first_name','$last_name','$gender','$class_id','$address','$password')";
//executing above query
$conn->query($Sql);
//setting session variable
$_SESSION['SignUp_success'] = $user_name;
header("location:ViewData.php");
}
elseif(!$password == $password2){
$_SESSION['SignUp_failure'] = 'failure';
header("location:SignUp_page.php");
}
else{
}
}
?>
 Login Page: This page allows the users to access their accounts.
The following where the tests carried out on the log in page:
 Entering a correct username and password
 Attempt to login with an incorrect username or password
 Attempt to login with either username or password incorrectly
 Attempt to login into the system without providing any login information.
31
Description Expected
results
Actual
Results
Login with correct
details
Login successful Login successful
Login with wrong
details
Login unsuccessful Login unsuccessful
Submitting empty
fields
No blank fields
accepted
No blank fields
accepted
Figure 8 login page
32
Figure 9 empty login
Figure 10 wrong username or password
33
Login code for all users
<?php
session_start();
require('connection.php');
if(isset($_POST['login_button']))
{
$user_name = $_POST['user_name'];
$password = $_POST['password'];
$user_name = stripslashes($user_name);
$password = stripslashes($password);
$user_name = mysqli_real_escape_string($conn,$_POST["user_name"]);
$password = mysqli_real_escape_string($conn,$_POST["password"]);
//Query statement for selecting details from database
$Sql = "SELECT * FROM pupil WHERE user_name = '".$user_name."' AND password =
'".$password."' ";
if(!$result = $conn->query($Sql))
{
echo $conn->error;
exit();
}
//else do this
if($result->num_rows == 1)//if num_rows == 1 then it means we have a user with that combo of
username and password
{
//fetching data from db as associative array
while($row=$result->fetch_assoc()){
//setting our SESSION variables
$_SESSION['login_success'] = $user_name;
34
$_SESSION['id'] = $row['pupil_id'];
$_SESSION['name'] = $row['user_name'];
}
header("location:student.php");
}
else {
//if num_rows == 0 then we have no user with that username and password combo
$_SESSION['login_failure'] = "failure";
header("location:LoginPage_student.php");
}
}
?>
 Viewing pupil’s page: This allows the Administrator to view all registered pupils, edit their
details and deleting them from the system
Figure 11 viewing pupil's in the system
View pupil’s code
<?php
session_start();
require('connection.php');
if(isset($_SESSION['connect_error'])){
echo ‘
<div class = "container">
35
<div class="alert alert-danger">Error connecting to database</div>
</div>';
unset($_SESSION['connect_error']);
}
elseif(isset($_SESSION['connect_success'])){
echo '
<div class = "container">
<div class="alert alert-success fade in">
<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
<strong>Success!</strong> Database connection established.
</div>
</div>';
unset($_SESSION['connect_success']);
}
$result = mysqli_query($conn,"SELECT * FROM pupil");
?>
<html>
<head>
</head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bootstrap.min.css">
<script src="jquery.min.js"></script>
<script src="bootstrap.min.js"></script>
<body>
<div id = "wrapper">
<div class="container">
<h2>PUPILS IN DATABASE</h2>
36
<table class="table table-hover">
<thead>
<tr>
<th>Pupil ID</th>
<th>Username</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Gender</th>
<th>Class ID</th>
<th>Address</th>
<th>Options</th>
</tr>
</thead>
<tbody>
<?php
$r =0;
while($pupils = mysqli_fetch_object($result))
{
$pupils->pupil_id;
$pupils->user_name;
$pupils->first_Name;
$pupils->last_Name;
$pupils->gender;
$pupils->class_id;
$pupils->address;
?>
<tr>
37
<td><?php echo $pupils->pupil_id;?> </td>
<td><?php echo $pupils->user_name;?></td>
<td><?php echo $pupils->first_Name;?></td>
<td><?php echo $pupils->last_Name;?></td>
<td><?php echo $pupils->gender;?></td>
<td><?php echo $pupils->class_id;?></td>
<td><?php echo $pupils->address;?></td>
<td><?php echo "<a href = 'delete.php?id=".$pupils->pupil_id."'><button type = 'button' class =
'btn btn-danger btn-xs'>Delete</button></a>"?>
<?php echo "<a href = 'edit_form.php?id= ".$pupils->pupil_id."'><button type = 'button' class =
'btn btn-default btn-xs'>Edit</button>"?></td>
</tr>
<?php
$r++;
}//end of while loop
?>
</tbody>
</table>
<?php
if (isset($_SESSION['operation_failure'])) {
echo '<div class="alert alert-danger">operation failure.</div>';
unset($_SESSION['Operation failure']);
}
elseif(isset($_SESSION['operation_success']))
{
echo '<div class="alert alert-success">Operation success</div>';
unset($_SESSION['operation_success']);
}
38
?>
</div>
</div>
</body>
</html>
Editing pupils code
<?php
// connect to the database
include('connection.php');
// check if the form has been submitted. If it has, start to process the form and save it to the
database
if(isset($_POST['submit'])){
// get form data, making sure it is valid
$pupil_id = $_GET['id'];
$username = mysqli_real_escape_string($conn, htmlspecialchars($_POST['user_name']));
$firstname = mysqli_real_escape_string($conn, htmlspecialchars($_POST['fname']));
$lastname = mysqli_real_escape_string($conn, htmlspecialchars($_POST['lname']));
$old_password = mysqli_real_escape_string($conn, htmlspecialchars($_POST['pwd1']));
$new_password = mysqli_real_escape_string($conn, htmlspecialchars($_POST['pwd2']));
$class_id = mysqli_real_escape_string($conn, htmlspecialchars($_POST['class_id']));
$gender = mysqli_real_escape_string($conn, htmlspecialchars($_POST['gender']));
$address = mysqli_real_escape_string($conn, htmlspecialchars($_POST['address']));
if(!empty($username)){
$sql = "update pupil set user_name = '$username' where pupil_id = '".$pupil_id."'";
$update = $conn->query($sql);
}
if(!empty($firstname)){
$sql = "update pupil set first_Name = '$firstname' where pupil_id = '".$pupil_id."'";
39
$update = $conn->query($sql);
}
if(!empty($lastname)){
$sql = "update pupil set last_Name = '$lastname' where pupil_id = '".$pupil_id."'";
$update = $conn->query($sql);
}
if(!empty($new_password)){
$sql = "update pupil set password = '$new_password' where pupil_id = '".$pupil_id."'";
$update = $conn->query($sql);
}
if(!empty($class_id)){
$sql = "update pupil set class_id = '$class_id' where pupil_id = '".$pupil_id."'";
$update = $conn->query($sql);
}
if(!empty($gender)){
$sql = "update pupil set gender = '$gender' where pupil_id = '".$pupil_id."'";
$update = $conn->query($sql);
}
if(!empty($address)){
$sql = "update pupil set address = '$address' where pupil_id = '".$pupil_id."'";
$update = $conn->query($sql);
}
header("Location: ViewData.php");
}
?>
 Exercise and teat pages: This page allows the pupils to take quick exercises and tests in
various subject.
40
Description Expected
result
Actual
Result
Correct answer Calculates score Calculates score
Wrong answer Does not earn you a score Does not earn you a score
Table 1
Figure 12 taking exercise
Quiz code
<script type="text/javascript">
//Set number of questions
var numQuest=6;
var ie=document.all
function showAnswer(el,ans){
ie? ie[el].innerHTML='The answer is: '+ ans : document.getElementById(el).innerHTML='The
answer is: '+ ans
}
function addup() {
var q, right, statement, total=0
questions=new Array();
for (i = 0; i < numQuest; i++)
questions[i]=0
41
if (document.forms.quiz.q1['right1']){
for (i = 0; i < numQuest; i++){
q="q"+(i+1)
right="right"+(i+1)
if (document.forms.quiz[q][right].checked)
questions[i]=1
}
}
else if (document.getElementById){
for (i = 0; i < numQuest; i++){
right="right"+(i+1)
if (document.getElementById(right).checked)
questions[i]=1
}
}
else
return;
for (i = 0; i < numQuest; i++)
total += questions[i]
//Set score response below.
statement='You scored '+ total +' out of '+ numQuest +' correct, '+
Math.round(total/numQuest*100) +'%'
ie? ie.results.innerHTML=statement :
document.getElementById('results').innerHTML=statement
}
function clearR(){
ie? ie.results.innerHTML='' : document.getElementById('results').innerHTML=''
for (i = 0; i < numQuest; i++)
42
ie? ie["ans"+(i+1)].innerHTML='' : document.getElementById("ans"+(i+1)).innerHTML=''
}
</script>
6.3.2. INTEGRATION TESTING
After coding all the modules, each module underwent unit testing which is performed on
individual modules to test program logic focusing on each unit of code. After testing, all the
errors that were detected were corrected. In testing the modules of the system, all modules were
connected to the database and all the unit requests of that module were tested and executed.
6.3.3. SYSTEM TESTING
This is the testing conducted on a complete system to evaluate the system’s compliance with the
specified requirements. The main aim of this test was to test for the compatibility of the modules
making up the system. Other reasons for the system testing included testing to assess whether the
system will cope with mainstream data and conditions, checking the system’s performance
behavior that is, checking how long the system will take to execute certain tasks. System testing
also tests the system to see how it handles errors and recovers from them. System testing falls
within the scope of black box testing, and as such, should require no knowledge of the inner
design of the code or logic.
43
7. CHAPTER SEVEN
CONCLUSION AND RECOMMENDATIONS
44
7.1. CONCLUSION
Our system mainly concentrates on the Zambian primary school education system. The system
was designed based on the requirements specifications. The system is able to record pupil’s
details and assess them on tests and exercises they take. It is also able to give immediate
feedback to pupil’s after taking a test or exercise.
The system saves time between marking and publication on results by giving immediate
feedback.
7.2. RECOMMENDATION
Being an E-learning system, the system should be able to support one word answers and essay
type of questions.
45
8. REFERENCE
46
References
[1] "www.virtual-college.co.uk," [Online]. Available: http://www.virtual-
college.co.uk/elearning/elearning.aspx. [Accessed 12 october 2016].
[2] J. H. E Pollard, Exploring e-learning, The Institute for Employement Studies, 2001.
[3] M. B. Y. D.-G. E. T. Sheizaf Rafaeli, "QSIA-a Web_based environment for learning, assessing and
knowledge sharing communities," 10 October 2005. [Online]. Available:
http://www.researchgate.net/publication/223869968. [Accessed 18 October 2016].
[4] M. B. Y. D.-G. E. T. Sheizaf Rafaeli *, "QSIA-a Web-based environment for learning, assessing and
knowledge sharing in communities," 10 October 2005. [Online]. Available:
https://www.researchgate.net/publication/223869968. [Accessed 18 October 2016].
[5] "School Management Software, eduWare School Software, Web portal and Mobile Applications,"
[Online]. Available: http://onlineschoolsoftware.jimbo.com/. [Accessed 2016].
[6] Notes of Guidance on Computer Science Project Deliverables.
[7] "w3shools.com," [Online]. Available: http://w3schools.com.
[8] "apachefriends.org," [Online]. Available: http://www.apachefriends.org/index.html.
[9] "notepad-plus-plus.org," [Online]. Available: http://notepad-plus-plus.org.
[10] "w3schools.com," [Online]. Available: http://www.w3schools.com/html/html_intro.html.
[11] "w3schools.com," [Online]. Available: http://www.w3schools.com/php/default.html.
[12] "w3schools.com," [Online]. Available: http://www.w3schools.com/php/php_mysql-intro.html.
[13] "w3schools.com," [Online]. Available: http://www.w3schools.com/js/default.html.
[14] "w3schools.com," [Online]. Available: http://w3schools.com/css/default.html.
[15] "w3schools.com," [Online]. Available: http://w3schools.com/bootstrap/default.html.
[16] C. Y. C.-s. C. Hsi-mei Chen, 13 5 2005. [Online]. Available: www.elsevier.com/locate/compedu.
[Accessed 2016].
[17] "School Management Software, eduWare School Software, Web Portal And Mobile Applications,"
[Online]. Available: http://onlineschoolsoftware.jimbo.com/. [Accessed 2016].
47
9. APPENDICES
48
9.1. APPENDIX I
9.1.1. PROJECT PROPOSAL
9.1.1.1. INTRODUCTION
E-learning is electronic learning, and typically this means using a computer to deliver part, or all
of a course whether it's in a school, part of your mandatory business training or a full distance
learning course (http://www.virtual-college.co.uk/elearning/elearning.aspx.).
The system proposed in this document provides a Question Sharing and Interactive system that
will enable pupils to take tests online unlike the current way of taking tests.
9.1.1.2. PROBLEM STATEMENT
Currently there are no e-learning systems dedicated to primary schools in Zambia, and so;
 It is costly to conduct tests due to the high prices of paper, ink and printing machines.
 There is no paper way of disposing of test paper and usually pupils burn the test
papers which can cause damage to the ozone layer.
9.1.1.3. THE PROPOSED SYSTEM
This document proposes to design a web based Questions Sharing and Interactive Assignments
system that will mainly focus on the current primary education system in Zambia.
The system will not only help in keeping pupil’s records, the system is also intended at helping
the teachers assess pupil’s performance in a more effective way, help pupil’s keep track of their
progress and see which areas they ought to improve in.
9.1.1.4. BENEFITS OF THE PROPOSED SYSTEM
The proposed system was able to:
 Let teachers to enhance the content and delivery of their subject matter through uploading
of materials on the site.
 Automatically grade responses, saving time for the instructor and providing more detailed
feedback to pupil’s.
 Let pupils have access to study materials from any location and on any device.
 Save time because results will be automatically and instantly calculated and
communicated to both pupils and teachers.
9.1.2. COMPONENT ACTIVITIES OF THE PROJECT
This project has the following components:
9.1.2.1. Meetings with supervisor
Frequent weekly meetings with the supervisor were conducted so as to seek guidance and
clarification on how the project should was to be done and to report on the milestones achieved.
49
9.1.2.2. Collection of Data
Data collection was done through research via the Internet; existing successful classified e-
learning systems were studied to learn how best the proposed system can be a success.
9.1.2.3. Draft of Requirements Specification Document
The requirements Specification Documents was derived from existing classified website of
which the supervisor as the client was consulted frequently.
9.1.2.4. Project Design
A projected design was created through the gathering and processing of the collected data
together with the system requirements. Only upon ratification of the project design by the client
was the proposed system moved to the next phase of development.
9.1.2.5. Project Development
Coding of the system began once the Design Specifications Document and project design have
been approved.
9.1.2.6. Software Testing
The different elements of the system were tested as components and also as an integrated whole,
to see how the system would operate when used by the intended users.
9.1.2.7. License Agreement
A license agreement document was prepared that will outlined the terms and conditions of use of
the system, of which when the user goes beyond or faults these terms and conditions the
administrators was given the right to delete the user’s advert and suspend the user. Users were
required to read through and accept the terms and conditions before being able to participate in
the system.
9.1.2.8. Quality Assurance
The review of the system and related documentation for completeness, correctness, reliability
and maintainability, was done after the entire system was complete.
9.1.2.9. Acceptance Testing
The final integrated system was tested with the supervisor before handing it over. This was done
to ensure that the developed system is functioning as expected meets the system requirements.
9.1.2.10. Handover of Product to Client
All relevant documents and the final product was submitted to the supervisor as the client. The
submitted product included all adjustments made and components that were added after
acceptance testing. This activity will be marked the end of the project.
50
9.1.3. BUDGET
Below are the proposed approximations of costs for the successful completion of the project:
ITEMS QUANTITY COSTS(K)
Transport 8 Trips 350
Internet 40GB 1000
Printing 10 Documents 250
Incidental costs
Total: 2,500
9.1.4. MILESTONES
The following have been outlined as project milestones and therefore critical to the whole project
being delivered to the client on time.
Table of Milestones
Activity Date For Deadline
1.Approved Project Proposal 11th
October,2016
2.Approved Literature Review 3rd
November,2016
3.Approved Requirements Specification 11rd
November,2016
4.Approved Design Specification 12th
December,2016
5.Coding And Testing 14th
February,2017
6.Integration of Modules 28th
February,2017
7.Approved Implementation Document 16th
March,2017
8.Acceptance Testing 21st
March, 2017
9.Approved Conclusion Document 23rd
March, 2017
10.Completed Project Report(Spiral Bound) 11th
April,2017
11. Project Submission 28th
May, 2017
51
9.1.5. GANTT CHART
The Gantt chart below shows the project schedule.
Months October November December January February March April
Weeks 1 2 3 4 1 2 3 4 5 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Project proposal
literature review
and Design and
Requirements
Specification
Coding and
Module testing
Integrating and
System Testing
Production of
User Manual
Production of
Installation
Manual
Acceptance
and testing
Documentation
Handover of
Product
52
9.2. APPENDIX II
9.2.1. USER MANUEL
INTRODUCTION
This appendix describes how the system can be used effectively and efficiently by all types of
users. The systems URL which will be used is http://localhost/learningSystem, however if the
system is installed on a remote machine, you will be required to use the actual URL to where the
application is installed.
HOW TO INSTALL THE SYSTEM
Installation of Apache, PHP and MYSQL is one of the most important parts of a running sever
from any machine. These parts can be installed at once by installing XAMPP. For the purpose of
this project the software has been downloaded and together with the root folder for the system in
the installation CD.
To install the system, we first need to install the XAMPP software that will run the web system.
Once you have installed XAMPP and it running, you can add the system to your new web server
by going to “C:xampphtdocs”. This will be where all the web pages of the system will be
located and should be stored.
To open the website, open your internet browser and type in the address of the site and click ‘go’
or press enter. You will be able to view various items on the home page.
USING THE SYSTEM
 Connection to the network
The computer should be connected to the serve machine having the system through a network.
 Open the web browser on the computer (examples of web browsers: Mozilla Firefox, Internet
explorer, Google Chrome)
 Once the browser has been started, the user will have to specify the uniform resource locater
(URL), which points to the address of a specific resource on the website address. Type the
URL in the address slot and press enter or click Go.
53
Figure 13 shows open web browser with URL typed
54
 After pressing enter you will be redirected to the home page.
Figure 14 showing home page
 To sign-up, the system administrator registers the users to the system. Users can be
signed-up as teacher or pupil.
55
Figure 15 shows student registration page in administrators view
 Users who have been registered to the system to the system can login using the login
credentials which have been given to the by the administrator. If a teacher or pupil wants
to login, he or she can click on the teacher and pupil login link respectively.
 When a teach logs in, he or she can upload notes and assignments. The teacher can also
prepare tests.
56
Figure 16 showing test preparation form
57
Figure 17 shows teacher page
 when the pupil logs in he can select a subject taken by the teacher present at that time or
any subject he wants to go through.
Figure 18showing students view after log in
 After choosing a subject the pupil is able to view the subject content, the notes posted by
the teacher, the assignments and take quick exercises. The pupil is also able to take tests
when the teacher prepares one.
58
Figure 19 geography page
59
9.3. APPENDIX III
Sample code
HOME PAGE
Index.php
<html>
<head>
<title>Project2017</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bootstrap.min.css">
<script src="js/js-image-slider.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/indexstyle.css" />
<script src="js/js-image-slider.js" type="text/javascript"></script>
</head>
<body>
<div id="wrapper">
<div class="container">
<navbar style="overflow: hidden;">
<a href="about_us.php" class="About_us_button"><button type="button" class="btn btn-
success btn-lg">About us</button></a>
<a href="contact.php" class="About_us_button"><button type="button" class="btn btn-
success btn-lg">Contact us</button></a>
<a href="LoginPage_admin.php" class="About_us_button"><button type="button"
class="btn btn-success btn-lg">Admin Login</button></a>
<a href="LoginPage_teacher.php" class="About_us_button"><button type="button"
class="btn btn-success btn-lg">Teacher Login</button></a>
<a href="LoginPage_student.php" class="About_us_button"><button type="button"
class="btn btn-success btn-lg">Student Login</button></a>
<br><br><br>
60
</navbar>
<div class="jumbotron" style="background-color: white;position: relative;text-
align:center;font-size: 4.00em;color: #4CAF50; height: 10%;"> <b>Welcome</b></div>
<hr/>
<div class="slider" id="main-slider">
<!-- outermost container element -->
<div class="slider-wrapper">
<!-- innermost wrapper element -->
<img src="img/DEMO-EEE-007.jpg" alt="First" class="slide" style="box-
shadow:none;"/>
<!-- slides -->
<img src="img/kids-studying.jpg" alt="Second" class="slide" style="box-shadow:none;"
/>
<img src="img/happy_young_black_girl.jpg" alt="Third" class="slide" style="box-
shadow:none;" />
<img src="img/I-love-learning-kid.jpg" alt="fourth" class="slide" style="box-
shadow:none;" />
<img src="img/slide5.jpg" alt="fith" class="slide" style="box-shadow:none;" />
<img src="img/slide6.jpg" alt="sixth" class="slide" style="box-shadow:none;" />
<img src="img/slide7.jpg" alt="seventh" class="slide" style="box-shadow:none;" />
<img src="img/slide8.jpg" alt="eighth" class="slide" style="box-shadow:none;" />
</div>
</div>
<hr/>
<div class = "well well-sm" style = "background-color: white;">
<h2 class="page-header">
What we offer:
</h2>
<div>
61
<div class="col-md-4">
<div class="panel panel-success">
<div class="panel-heading">
<h4><i class="fa fa-fw fa-check"></i> Maths</h4>
</div>
<div class="panel-body">
<p>Graph a two-variable equation,
Classify quadrilaterals, Experimental probabilityProportional relationships, phrases
and clauses,
connotations, climate change, world history, and more....</p>
<a href="LoginPage_student.php" class="btn btn-danger">Learn More</a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-success">
<div class="panel-heading">
<h4><i class="fa fa-fw fa-check"></i> Geography</h4>
</div>
<div class="panel-body">
<p> Oceans and Continents,
Foundations of Maya Civilization,
The Age of Exploration: origins, Life as a colonist,
Causes of the American Revolution: the French and Indian War, and more...</p>
<a href="LoginPage_student.php" class="btn btn-danger">Learn More</a>
</div>
</div>
62
</div>
<div class="col-md-4">
<div class="panel panel-success">
<div class="panel-heading">
<h4><i class="fa fa-fw fa-check"></i> Environmental Science</h4>
</div>
<div class="panel-body">
<p>Compare properties of materials,
Identify living and nonliving things,
Identify plants and animals,
Observe and compare traits,
Identify changes to Earth's surface,and many more</p>
<a href="LoginPage_student.php" class="btn btn-danger">Learn More</a>
</div>
</div>
</div>
<div id="footer" style = "color:white;">
<h3 style = "text-decoration:underline; color:white;float:left;">Contact us on:
</h3><br>
<div class="col-md-4 " id = "social-icons">
<ul class="list-inline social-buttons">
<li>
<a href="www.twitter.com">
<img src = "contact_us/Twitter.png" style = "width:50px;height:50px;border-
radius:100%;"/>
</a>
</li>
<li>
63
<a href="www.facebook.com">
<img src = "contact_us/Facebook.png" style = "width:50px;height:50px;border-
radius:100%;"/>
</a>
</li>
<li>
<a href="www.google.com">
<img src = "contact_us/Linkedin.png" style = "width:50px;height:50px;border-
radius:100%;"/>
</a>
</li>
<li>
<a href="">
<img src = "contact_us/WhatsApp.png" style = "width:50px;height:50px;border-
radius:100%;"/>
</a>
</li>
<li>
<a href="www.facebook.com">
<img src = "contact_us/Google+.png" style = "width:50px;height:50px;border-
radius:100%;"/>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
64
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
connection.php
<?php
//Defining connection variables
DEFINE('servername','localhost');
DEFINE('username','root');
DEFINE('password', '');
DEFINE('dbname','learningsystem2017');
// Create connection
$conn = new mysqli(servername, username, password, dbname);
// Check connection
if ($conn->connect_error) {
// Set session variables
$_SESSION['connect_error'] = 'connect_error';
die("Connection failed: " . $conn->connect_error);
} else{
// Set session variables
$_SESSION['connect_success'] = 'connect_success';
}
?>
GeographyTest1.php
<?php
require("connection.php");
65
$Sql ="SELECT * FROM `geography` WHERE subject_id ='GEO101' AND test_name = 'test1'
";
if(!$result = $conn->query($Sql))
{ echo $conn->error;
exit();
}
if($result = $conn->query($Sql)){
$questionNumber = 1;
$answer = 1;
$q = 0;
$ans = "";
$score = 0;
while($row=$result->fetch_assoc()){
$id = $row['test_id'];
$question = $row['test_questions'];
$option_A = $row['option_A'];
$option_B = $row['option_B'];
$option_C = $row['option_C'];
$q++;
?>
<html>
<head><title>GEOGRAPY TEST 1</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bootstrap.min.css">
<script>
function alertMessage(){
alert("WARNING!nPlease tick all questions.");
66
}
</script>
</head>
<body>
<form action="GEO101_test1_markingScript.php" method="POST" class="myform">
<div class = "well">
<label><?php echo$questionNumber.". ".$question;?></label><br>
<input type="radio" name = "<?php echo $q; ?>" value = "<?php echo $option_A; ?>"
><?php echo $option_A; ?><br>
<input type="radio" name = "<?php echo $q; ?>" value = "<?php echo $option_B; ?>"
><?php echo $option_B; ?><br>
<input type="radio" name = "<?php echo $q; ?>" value = "<?php echo $option_C; ?>"
><?php echo $option_C; ?>
</div>
<?php
$questionNumber++;
$answer++;
}
}
?>
<input type="submit" name="submit" onclick="alertMessage()">
</form>
</body>
</html>
viewGEO101_results_pupil.php
<?php
require_once('Login_student.php');
$pupil_id = $_SESSION['id'];
67
?>
<html>
<head>
<title>GEOGRAPHY TEST RESULTS</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bootstrap.min.css">
<script>
function alertMessage()
{
var x;
if (confirm("WARNING!Are you sure?") == true) {
x = "deleteENG101_Questions.php";
}
document.getElementById("demo").innerHTML = x;
}
</script>
</head>
<body>
<div class="fluid">
<h2 style="background-color: white;position: relative;text-align:center;font-size: 4.00em;color:
#4CAF50; height: 10%;">YOUR GEOGRAPHY TEST RESULTS</h2>
<table class="table table-hover">
<thead>
<tr>
<th>Pupil ID</th>
<th>First Name</th>
<th>Last Name</th>
68
<th>Test Name</th>
<th>Subject ID</th>
<th>Score</th>
</tr>
</thead>
<tbody>
<?php
$r =0;
$sql = "SELECT * FROM `tests` WHERE subject_id ='GEO101' AND pupil_id = '$pupil_id'
";
$result = $conn->query($sql);
$result = mysqli_query($conn,$sql) ;
while($row = $result->fetch_assoc())
{
$score = $row['score'];
$pupil_id = $row['pupil_id'];
$test_name = $row['test_name'];
$subject_id = $row['subject_id'];
$first_Name = $row['first_Name'];
$last_Name = $row['last_Name'];
?>
<tr>
<td><?php echo $pupil_id; ?></td>
<td><?php echo $first_Name; ?></td>
<td><?php echo $last_Name; ?></td>
<td><?php echo $test_name; ?></td>
69
<td><?php echo $subject_id; ?></td>
<td><?php echo $score ; ?> </td>
</tr>
<?php
$r++;
}
?>
</tbody>
</table>
LoginPage_teacher.php
<?php session_start();
if(isset($_SESSION['id'])){
header("location:teacher.php");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TEACHER LOGIN</title>
<link rel="stylesheet" href="bootstrap.min.css">
<link rel="stylesheet" href="Login.css">
</head>
<body><div class = "container-fluid">
<div id ="Welcome">
<div class = "jumbotron" style = "margin: 0 auto;color:#4CAF50;">
<h2>Teacher Login</h2></div>
70
</div>
<hr/>
<form class="login-form" method = "POST" action="Login_teacher.php" >
<div class="container">
<div class="top">
<h2 align="center" class="hidden" id="title"><span id="logo">Login to user
account</span></h2>
</div>
<div class="imgcontainer">
<img src="login_avatar.svg" alt="Avatar" class="avatar" style = "height: 50px; width:
50px;border-radius:100%;" >
</div>
<div class = "login-container">
<br/>
<input type= "text" required placeholder="Enter username" name = "user_name"
maxlength="15"></input>
<br/>
<input type= "password" required placeholder="Enter password" size="20" name =
"password" maxlength="20"></input>
<br/>
<div class ="login button">
<button class = "login_button" name="login_button">Login</button>
<br/>
</div>
<h5 id="register">
<p><a href="SignUp_page.php"></p><br><br><br><br></p><br><br><br><br>
</h5>
<?php
71
if (isset($_SESSION['login_success'])) {
echo '<div class="alert alert-success">You have been logged out...</div>';
unset($_SESSION['login_success']);
}
elseif(isset($_SESSION['login_failure']))
{
echo '<div class="alert alert-danger">Incorret Username or password...</div>';
unset($_SESSION['login_failure']);
}
?>
</div>
</div>
</form>
</div>
</body>
</html>
AddQuestions_form.php
<?php
require_once("Login_teacher.php");
$session_subject_id = $_SESSION['subject_id'];
?>
<!DOCTYPE html>
<html>
<head>
<title>ADD QUESTIONS VIEW</title>
<link rel="stylesheet" href="bootstrap.min.css">
<script>
72
function alertMessage(){
alert("WARNING!nFill in all fields.");
}
</script>
</head>
<body>
<div id = "wrapper">
<div class = "container" >
<h1 style = "margin-left:1%;color:#4CAF50;">ADD NEW <?php echo $session_subject_id ;
?> QUESTIONS</h1>
<div class = "well">
<h2 style = "color:#4CAF50;float: left;margin-right:70%;text-
decoration:underline;">SUBJECT IDs</h2><br><br><br><hr>
<ul>
<li class="text-danger"><?php echo $session_subject_id ;?></li> <hr>
<hr>
</ul>
</div>
<form action = "question_form.php" method = "post">
<div class="form-group">
<label for="subject_id">Enter Subject ID:</label>
<input type="text" placeholder="Enter subject id here" value = "<?php echo
$session_subject_id; ?>" class="form-control" autocomplete = "on" name = "subject_id"
disabled="disabled">
</div>
<div class="form-group">
<label for="subject_id">Enter Test name:</label>
<input type="text" placeholder="Enter test name here" class="form-control" autocomplete
= "on" name = "test_name" >
73
</div>
<div class="form-group">
<label for="teacher_id">Enter Teacher ID:</label>
<input type="text" placeholder="Enter teacher id here" class="form-control" autocomplete
= "on" name = "teacher_id" >
</div>
<div class="form-group">
<label for="question_area">Enter question:</label>
<textarea placeholder="Enter Questions here....." class="form-control" name =
"question_area"></textarea>
</div>
<div class="form-group">
<label for="option_A">Enter Option A:</label>
<input type="text" placeholder="Enter option A here" class="form-control" autocomplete
= "on" name = "option_A" >
</div>
<div class="form-group">
<label for="option_B">Enter Option B:</label>
<input type="text" placeholder="Enter option B here" class="form-control" autocomplete
= "on" name = "option_B">
</div>
<div class="form-group">
<label for="option_C">Enter Option C:</label>
<input type ="text" placeholder ="Enter option C here" class="form-control" autocomplete
= "on" name = "option_C">
</div>
<div class="form-group">
<label for="answer">Enter answer:</label>
74
<input type ="text" placeholder="Enter answer here" class="form-control" autocomplete =
"on"name = "answer" >
</div>
<input type="submit" value ="Submit" class="btn btn-danger btn-lg" name="submit_button"
onclick = "alertMessage()">
</form>
<?php
if (isset($_SESSION['submit_success'])) {
echo '<div class="alert alert-success">Submit successful!</div>';
unset($_SESSION['login_success']);
}
elseif(isset($_SESSION['submit_failure']))
{
echo '<div class="alert alert-danger">Failed to submit</div>';
unset($_SESSION['login_failure']);
}
?>
</div>
</body>
</html>
fileupload.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/indexstyle.css" />
75
</head>
<body>
<div id = "wrapper">
<div class = "container">
<form action="#" method="POST" enctype="multipart/form-data" id = "upload_form">
<h1><p>Select file to upload:</p></h1>
<p><input type="file" name="fileToUpload" id="fileToUpload" value = "Choose file to
upload"></p>
<input type="submit" value = "Upload file" name = "submit" id = "submit_button" onclick
= "uploadFile()"><br><hr>
<h3 id = "status" style = "float: left; padding: 10px 10px 10px 10px; ">Upload progress Bar
</h3>
<progress id = "progressBar" value = "0" max = "100" style = "width:300px; height:
40px;float:left; "></progress><br><br><br><br><hr>
<p id = "loaded_nd_total"></p>
</form><br>
<a href="ViewUploads.php" class="btn btn-default">Click here to See Uploaded
Content</a>
<?php
include('upload.php');
?>
</div>
</div>
</body>
<script type="text/javascript">
function _(el){
return document.getElementById(el);
}
function uploadFile(){
76
var file = _("fileToUpload").files[0];
//alert(file.name + " | " + file.size + " | " + file.type);
var formdata = new FormData();
formdata.append("fileToUpload", file);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST","upload.php");
ajax.send(formdata);
}
function progressHandler(event){
_("loaded_nd_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total + "
bytes";
var percent = (event.loaded/event.total) * 100;
_("progressBar").value = Math.round(percent);
_("status").innerHTML = Math.round(percent) + "% Uploaded.......Please wait";
}
function completeHandler(event){
_("status").innerHTML = event.target.responseText;
_("progressBar").value = 0;
}
function errorHandler(event){
_("status").innerHTML = "Upload failed";
}
function abortHandler(event){
77
_("status").innerHTML = "Upload aborted";
}
</script>
</html>
viewENV101_results_teacher.php
<?php
session_start();
include('connection.php');
?>
<html>
<head>
<title>VIEW ENV. SCIENCE RESULTS IN DATABASE</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bootstrap.min.css">
function alertMessage()
{
var x;
if (confirm("WARNING!Are you sure?") == true) {
x = "deleteENG101_Questions.php";
}
document.getElementById("demo").innerHTML = x;
}
</script>
</head>
<body>
<div class="fluid">
78
<h2 style="background-color: white;position: relative;text-align:center;font-size:
4.00em;color: #4CAF50; height: 10%;">VIEW ENV. SCIENCE RESULTS IN
DATABASE</h2>
<table class="table table-hover">
<thead>
<tr>
<th>Pupil ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Test Name</th>
<th>Subject ID</th>
<th>Score</th>
</tr>
</thead>
<tbody>
<?php
$r =0;
$sql = "SELECT * FROM `tests` WHERE subject_id ='ENV101' ";
$result = $conn->query($sql);
$result = mysqli_query($conn,$sql) ;
while($row = $result->fetch_assoc())
{
$score = $row['score'];
$pupil_id = $row['pupil_id'];
$test_name = $row['test_name'];
$subject_id = $row['subject_id'];
$first_Name = $row['first_Name'];
$last_Name = $row['last_Name'];
79
?>
<tr>
<td><?php echo $score ; ?> </td>
<td><?php echo $pupil_id; ?></td>
<td><?php echo $test_name; ?></td>
<td><?php echo $subject_id; ?></td>
<td><?php echo $first_Name; ?></td>
<td><?php echo $last_Name; ?></td>
</tr>
<?php
$r++;
}
?>
</tbody>
</table>
</body>
</html>
SignUp_page.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Pupil Registration Page</title>
<link rel = "stylesheet" href = "SignUp_page.css" type ="text/css">
<link rel="stylesheet" href="bootstrap.min.css">
</head>
<body>
80
<div id ="Welcome">
<h1>Add New Pupils To Database</h1>
</div>
<hr style = "width: 50%;"/>
<center>
<form class="login-form" method = "POST" action = "SignUp.php">
<div class="container">
<div class="top">
<h2 align="center" class="hidden" id="title"><span id="logo">Add New Pupil</span></h2>
</div>
<div class="imgcontainer">
<a href = ""
><img src="login_avatar.svg" alt="Avatar" class="avatar" style = "height: 50px; width:
50px;border-radius:100%;"></a>
</div>
<div class = "register-container">
<br/>
<input type= "text" required placeholder="Enter user name" minlength ="3" name =
"user_name" maxlength="20"/>
<br/>
<label for "first_name"></label>
<br/>
<input type= "text" required placeholder="Enter first name" minlength ="3" name =
"first_name" maxlength="20"/>
<br/>
<label for "last_name"></label>
<br/>
81
<input type= "text" placeholder="Enter last name" minlength ="3" name = "last_name"
maxlength="20" required/>
<br/>
<label for ="password"></label>
<input type= "password" name = "password" placeholder="Enter new password" size="20"
maxlength="20" required/>
<br/>
<label for ="Confirm password"></label>
<input type= "password" name = "password2" placeholder="Confirm password" size="20"
maxlength="20" required/>
<br/>
<input type= "text" placeholder="P.o box " minlength ="3" name = "address" maxlength="20"
required/>
<br/>
<br/>
<input type= "text" placeholder="class_id " minlength ="3" name = "class_id" maxlength="20"
required/>
<br/>
<div class = "radio_buttons" style = "text-align: left;margin-right:20px;">
<label for ="Choose Gender:">Choose Gender:</label><br>
<input type="radio" name="gender" value="male" checked> Male<br>
<input type="radio" name="gender" value="female"> Female<br>
<input type="radio" name="gender" value="Other"> Other
</div>
<br/>
<center>
<div class = "Register_Button">
<input type = "submit" name = "Register" value = "Register" class ="submit_button"><br/>
</div>
82
</center>
</div>
</div>
</form>
<?php
if (isset($_SESSION['SignUp_failure'])) {
echo '<div class="alert alert-danger">SignUp failure.</div>';
unset($_SESSION['Operation failure']);
}
elseif(isset($_SESSION['SignUp_success']))
{
echo '<div class="alert alert-success">Operation success</div>';
header("location: ViewData.php");
unset($_SESSION['SignUp success']);
}
?>
</body>
</html>
ViewData.php
<?php
session_start();
require('connection.php');
$sql = "SELECT * FROM pupil";
$result = mysqli_query($conn,$sql) ;
?>
<html>
83
<head>
</head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bootstrap.min.css">
<script src="jquery.min.js"></script>
<script src="bootstrap.min.js"></script>
<body>
<div id = "wrapper">
<div class="container">
<h2>PUPILS IN DATABASE</h2>
<table class="table table-hover">
<thead>
<tr>
<th>Pupil ID</th>
<th>Username</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Gender</th>
<th>Class ID</th>
<th>Address</th>
<th>Options</th>
</tr>
</thead>
<tbody>
<?php
$r =0;
while($pupils = mysqli_fetch_object($result))
84
{
$pupils->pupil_id;
$pupils->user_name;
$pupils->first_Name;
$pupils->last_Name;
$pupils->gender;
$pupils->class_id;
$pupils->address;
?>
<tr>
<td><?php echo $pupils->pupil_id; ?> </td>
<td><?php echo $pupils->user_name; ?></td>
<td><?php echo $pupils->first_Name; ?></td>
<td><?php echo $pupils->last_Name; ?></td>
<td><?php echo $pupils->gender; ?></td>
<td><?php echo $pupils->class_id; ?></td>
<td><?php echo $pupils->address; ?></td>
<td><?php echo "<a href = 'delete.php?id = ".$pupils->pupil_id."'><button type =
'button' class = 'btn btn-danger btn-xs'>Delete</button></a>"?>
<?php echo "<a href = 'edit_form.php?id= ".$pupils->pupil_id."'><button type =
'button' class = 'btn btn-default btn-xs'>Edit</button>"?></td>
</tr>
<?php
$r++;
}//end of while loop
?>
</tbody>
</table>
85
<?php
if (isset($_SESSION['operation_failure'])) {
echo '<div class="alert alert-danger">operation failure.</div>';
unset($_SESSION['Operation failure']);
}
elseif(isset($_SESSION['operation_success']))
{
echo '<div class="alert alert-success">Operation success</div>';
unset($_SESSION['operation_success']);
}
?>
</div>
</div>
</body>
</html>

More Related Content

Similar to Interactive Online Assessment System

000845202 kyar nyo thinn project
000845202 kyar nyo thinn project000845202 kyar nyo thinn project
000845202 kyar nyo thinn projectKyar Nyo
 
From the Director's Desk
From the Director's DeskFrom the Director's Desk
From the Director's DeskVideoguy
 
computer science internship report
computer science  internship reportcomputer science  internship report
computer science internship reportkaahwa Armstrong
 
Kaahwa armstrong intern report
Kaahwa armstrong intern reportKaahwa armstrong intern report
Kaahwa armstrong intern reportkaahwa Armstrong
 
Teachingandlearningwithweb2 0-110523172514-phpapp01
Teachingandlearningwithweb2 0-110523172514-phpapp01Teachingandlearningwithweb2 0-110523172514-phpapp01
Teachingandlearningwithweb2 0-110523172514-phpapp01Francesca Ferrante
 
ARTIFICIALLY INTELLIGENT FACE DETECTION AND INVESTIGATION SYSTEM BASED ON OPE...
ARTIFICIALLY INTELLIGENT FACE DETECTION AND INVESTIGATION SYSTEM BASED ON OPE...ARTIFICIALLY INTELLIGENT FACE DETECTION AND INVESTIGATION SYSTEM BASED ON OPE...
ARTIFICIALLY INTELLIGENT FACE DETECTION AND INVESTIGATION SYSTEM BASED ON OPE...Valerie Felton
 
Sưu tầm:THE IMPACTS OF FOREIGN DIRECT NVESTMENT ON SUSTAINABLE DEVELOPMENT G...
Sưu tầm:THE IMPACTS OF FOREIGN DIRECT NVESTMENT  ON SUSTAINABLE DEVELOPMENT G...Sưu tầm:THE IMPACTS OF FOREIGN DIRECT NVESTMENT  ON SUSTAINABLE DEVELOPMENT G...
Sưu tầm:THE IMPACTS OF FOREIGN DIRECT NVESTMENT ON SUSTAINABLE DEVELOPMENT G...lamluanvan.net Viết thuê luận văn
 
JULIUS KIPCHUMBA KEMBOI
JULIUS KIPCHUMBA KEMBOIJULIUS KIPCHUMBA KEMBOI
JULIUS KIPCHUMBA KEMBOIjulius kemboi
 
Internship_Report_Projects_have_done_Dur.pdf
Internship_Report_Projects_have_done_Dur.pdfInternship_Report_Projects_have_done_Dur.pdf
Internship_Report_Projects_have_done_Dur.pdfHikMan2
 
EFFECT OF INTERNET ON CHRISTIAN RELIGIOUS STUDIES STUDENTS: A CASE STUDY OF ...
 EFFECT OF INTERNET ON CHRISTIAN RELIGIOUS STUDIES STUDENTS: A CASE STUDY OF ... EFFECT OF INTERNET ON CHRISTIAN RELIGIOUS STUDIES STUDENTS: A CASE STUDY OF ...
EFFECT OF INTERNET ON CHRISTIAN RELIGIOUS STUDIES STUDENTS: A CASE STUDY OF ...Joseph Fayomi
 
Field Work Report on Front End Web Development
Field Work Report on Front End Web DevelopmentField Work Report on Front End Web Development
Field Work Report on Front End Web DevelopmentAL-Khalil
 

Similar to Interactive Online Assessment System (20)

000845202 kyar nyo thinn project
000845202 kyar nyo thinn project000845202 kyar nyo thinn project
000845202 kyar nyo thinn project
 
KAWEESI_FINAL
KAWEESI_FINALKAWEESI_FINAL
KAWEESI_FINAL
 
From the Director's Desk
From the Director's DeskFrom the Director's Desk
From the Director's Desk
 
MUHUMUZA ONAN
MUHUMUZA ONANMUHUMUZA ONAN
MUHUMUZA ONAN
 
computer science internship report
computer science  internship reportcomputer science  internship report
computer science internship report
 
Kaahwa armstrong intern report
Kaahwa armstrong intern reportKaahwa armstrong intern report
Kaahwa armstrong intern report
 
android report
android reportandroid report
android report
 
android report
android reportandroid report
android report
 
Attachment Report
Attachment ReportAttachment Report
Attachment Report
 
Teachingandlearningwithweb2 0-110523172514-phpapp01
Teachingandlearningwithweb2 0-110523172514-phpapp01Teachingandlearningwithweb2 0-110523172514-phpapp01
Teachingandlearningwithweb2 0-110523172514-phpapp01
 
Career_Guide
Career_GuideCareer_Guide
Career_Guide
 
ARTIFICIALLY INTELLIGENT FACE DETECTION AND INVESTIGATION SYSTEM BASED ON OPE...
ARTIFICIALLY INTELLIGENT FACE DETECTION AND INVESTIGATION SYSTEM BASED ON OPE...ARTIFICIALLY INTELLIGENT FACE DETECTION AND INVESTIGATION SYSTEM BASED ON OPE...
ARTIFICIALLY INTELLIGENT FACE DETECTION AND INVESTIGATION SYSTEM BASED ON OPE...
 
Sưu tầm:THE IMPACTS OF FOREIGN DIRECT NVESTMENT ON SUSTAINABLE DEVELOPMENT G...
Sưu tầm:THE IMPACTS OF FOREIGN DIRECT NVESTMENT  ON SUSTAINABLE DEVELOPMENT G...Sưu tầm:THE IMPACTS OF FOREIGN DIRECT NVESTMENT  ON SUSTAINABLE DEVELOPMENT G...
Sưu tầm:THE IMPACTS OF FOREIGN DIRECT NVESTMENT ON SUSTAINABLE DEVELOPMENT G...
 
Byrne, robert p.
Byrne, robert p.Byrne, robert p.
Byrne, robert p.
 
JULIUS KIPCHUMBA KEMBOI
JULIUS KIPCHUMBA KEMBOIJULIUS KIPCHUMBA KEMBOI
JULIUS KIPCHUMBA KEMBOI
 
Internship_Report_Projects_have_done_Dur.pdf
Internship_Report_Projects_have_done_Dur.pdfInternship_Report_Projects_have_done_Dur.pdf
Internship_Report_Projects_have_done_Dur.pdf
 
EFFECT OF INTERNET ON CHRISTIAN RELIGIOUS STUDIES STUDENTS: A CASE STUDY OF ...
 EFFECT OF INTERNET ON CHRISTIAN RELIGIOUS STUDIES STUDENTS: A CASE STUDY OF ... EFFECT OF INTERNET ON CHRISTIAN RELIGIOUS STUDIES STUDENTS: A CASE STUDY OF ...
EFFECT OF INTERNET ON CHRISTIAN RELIGIOUS STUDIES STUDENTS: A CASE STUDY OF ...
 
Final Year Project
Final Year ProjectFinal Year Project
Final Year Project
 
Field Work Report on Front End Web Development
Field Work Report on Front End Web DevelopmentField Work Report on Front End Web Development
Field Work Report on Front End Web Development
 
final report.docx
final report.docxfinal report.docx
final report.docx
 

Recently uploaded

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

Interactive Online Assessment System

  • 1. THE COPPERBELT UNIVERSITY SCHOOL OF MATHEMATICS AND NATURAL SCIENCES GROUP PROJECT TITLE: INTERACTIVE ONLINE ASSESSMENT SYSTEM SUMBMITTED IN PARTIAL FULFILLMENT FOR THE AWARD OF A BACHELOR OF SCIENCE IN COMPUTER SCIENCE. COURSE NAME: PROJECT MANAGEMENT COURSE CODE: CS 301 SUPERVISOR: MR. SHUMBA PROJECT COORDINATOR: MR. MUMBA PROGRAM: BSc COMPUTER SCIENCE YEAR OF STUDY: 3 GROUP MEMBERS: DANIEL NG’ANDU 14268088 MUSIALIKE MAKENA 14331851 MELVIN MALAYA 13053584 ANDREW SAPANOI 14462877
  • 2. II ABSTRACT Virtual education and online examinations are an emerging concept. Here the tests are not taken on paper in a classroom but through an electronic medium as a substitute. In this case a web page will contain test questions and course material. This type of learning and taking of examinations online are gaining importance every day and very soon they are going to be an integral part of our world, the academic world. Taking up these virtual tests through an electronic medium is termed as E-Learning. Today E- Learning is no more a technical word that only a few people know. It is turning to be a part of everyone's life whether a student, employee or a housewife, all tend to use E-Learning in one way or another. Larger organizations such as universities, are turning towards E-Learning solution for providing training digitally. This means less money spent on equipping various departments with realms of paper and printing machines. This also has a positive impact on the environment, as it means fewer tress are cut down for the purposes of paper production. As the number of Internet access points are growing rapidly in Zambia and around the world, E- Learning is also gaining a new peak. This electronic medium serves best for dissemination of information. E-Learning is proving itself as a boon for students/pupils especially for the disabled who are not able to go and attend the classes.
  • 3. III DECLARATION We hereby declare that this project is our work and that to the best of our knowledge and belief. It contains no material previously published or written by another person except where due acknowledgement is made. PARTICICIPANTS SIGNATURE DATE 1. DANIEL NG’ANDU ………………… ………………… 2. MUSIALIKE MAKENA ………………… …………………. 3.MELVIN MALAYA ………………… ………………….. 4. ANDREW SAPANOI ………………… ………………….. SUPERVISOR: MR. SHUMBA DATE Signature………………………… …………………
  • 4. IV DEDICATION To: Our parents All students pursuing s BSc Computer Science at The Copperbelt University And to Zambia our Mother Land.
  • 5. V ACKNOWLEDGEMENTS Our deepest gratitude goes to God who has provided all that was needed to complete this project. There was never lack or want. Throughout this entire study, He strengthened us even through most difficult times. Mr. Shumba has been the ideal thesis supervisor. His sage advice, insightful criticisms, and patient encouragement aided the writing of this thesis in innumerable ways. I would also like to thank Mr. Mumba whose steadfast support and guidance of this project was greatly needed and deeply appreciated. We also appreciate the government of the republic of Zambia for the financial assistance rendered to us to complete this project.
  • 6. VI Table of Contents 1. CHAPTER ONE...........................................................................................1 INTRODUCTION .....................................................................................................1 1.1. INTRODUCTION........................................................................................2 1.2. PROBLEM STATEMENT ..........................................................................2 1.3. PROPOSED SYSTEM.................................................................................2 1.4. OBJECTIVES...............................................................................................3 1.5. PROJECT SCOPE........................................................................................3 1.6. METHODOLOGY.......................................................................................3 2. CHAPTER TWO..........................................................................................5 LITERATURE REVIEW ..........................................................................................5 2.1. INTRODUCTION........................................................................................6 2.2. EXISTING SYSTEMS.................................................................................6 2.2.1. Questions Sharing and Interactive Assignments (QSIA) .............................6 2.2.2. Modular object-oriented dynamic learning environment (Moodle).............8 2.2.3. E-Homebook System (EHS).........................................................................8 2.2.4. EduWare........................................................................................................8 3. CHAPTER THREE....................................................................................10 REQUIREMENTS SPECIFICATION....................................................................10 3.1. INTRODUCTION......................................................................................11 3.2. SCOPE AND OBJECTIVE........................................................................11 3.3. BENEFITS AND OBJECTIVES OF PROPOSED SYSTEM...................11 3.4. FUNCTIONAL REQUIREMENTS...........................................................11 3.4.1. Input ...........................................................................................................11 3.4.2. Processing ..................................................................................................11 3.4.3. Storage .......................................................................................................12 3.4.4. Output.........................................................................................................12
  • 7. VII 3.5. NON-FUNCTIONAL REQUIREMENTS ................................................12 3.5.1. HARDWARE.............................................................................................12 3.5.2. SOFTWARE..............................................................................................12 4. CHAPTER FOUR ......................................................................................13 DESIGN SPECIFICATION ....................................................................................13 4.1. INTRODUCTION......................................................................................14 4.2. ARCHITECTURAL DESIGN...................................................................14 4.3. DATA DESIGN .........................................................................................15 4.4. APPLICATION DESIGN ..........................................................................19 4.4.1. Logic Design...............................................................................................19 4.4.2. HIERARCHICAL INPUT PROCESS OUTPUT DIAGRAM (HIPO) .....20 4.5. USER INTERFACE DESIGN ...................................................................20 4.6. SECURITY DESIGN.................................................................................22 5. CHAPTER FIVE........................................................................................23 IMPLEMENTATION..............................................................................................23 5.1. INTRODUCTION......................................................................................24 5.2. IMPLEMENTATION TOOLS ..................................................................24 5.2.1. Hardware....................................................................................................24 5.2.2. Software .....................................................................................................24 6. CHAPTER SIX...........................................................................................26 SYSTEM EVALUATION AND TESTING ...........................................................26 6.1. INTRODUCTION.....................................................................................27 6.2. PURPOSE OF TESTING..........................................................................27 6.3. TESTING CRITERIA...............................................................................27 6.3.1. UNIT TESTING ........................................................................................27 6.3.2. INTEGRATION TESTING.......................................................................42 6.3.3. SYSTEM TESTING ..................................................................................42
  • 8. VIII 7. CHAPTER SEVEN...................................................................................43 CONCLUSION AND RECOMMENDATIONS ....................................................43 7.1. CONCLUSION .........................................................................................44 7.2. RECOMMENDATION.............................................................................44 8. REFERENCE ............................................................................................45 References................................................................................................................46 9. APPENDICES...........................................................................................47 9.1. APPENDIX I.............................................................................................48 9.1.1. PROJECT PROPOSAL .............................................................................48 9.1.1.1. INTRODUCTION .....................................................................................48 9.1.1.2. PROBLEM STATEMENT........................................................................48 9.1.1.3. THE PROPOSED SYSTEM .....................................................................48 9.1.1.4. BENEFITS OF THE PROPOSED SYSTEM............................................48 9.1.2. COMPONENT ACTIVITIES OF THE PROJECT...................................48 9.1.2.1. Meetings with supervisor...........................................................................48 9.1.2.2. Collection of Data......................................................................................49 9.1.2.3. Draft of Requirements Specification Document........................................49 9.1.2.4. Project Design............................................................................................49 9.1.2.5. Project Development..................................................................................49 9.1.2.6. Software Testing ........................................................................................49 9.1.2.7. License Agreement ....................................................................................49 9.1.2.8. Quality Assurance......................................................................................49 9.1.2.9. Acceptance Testing....................................................................................49 9.1.2.10.Handover of Product to Client...................................................................49 9.1.3. BUDGET....................................................................................................50 9.1.4. MILESTONES ...........................................................................................50 9.1.5. GANTT CHART........................................................................................51
  • 9. IX 9.2. APPENDIX II.............................................................................................52 9.2.1. USER MANUAL.......................................................................................52 INTRODUCTION ...................................................................................................52 HOW TO INSTALL THE SYSTEM ......................................................................52 USING THE SYSTEM............................................................................................52 9.3. APPENDIX III ...........................................................................................59 SAMPLE CODE......................................................................................................59
  • 11. 2 1.1. INTRODUCTION What is e-learning? [1] Quite simply, e-learning is electronic learning, and typically this means using a computer to deliver part, or all of a course whether it's in a school, part of your mandatory business training or a full distance learning course (http://www.virtual-college.co.uk/elearning/elearning.aspx.). In the early days it received a bad press, as many people thought bringing computers into the classroom would remove that human element that some learners need, but as time has progressed technology has developed, and now we embrace smartphones and tablets in the classroom and office, as well as using a wealth of interactive designs that makes distance learning not only engaging for the users, but valuable as a lesson delivery medium. The introduction of ICT (Information and communicational technology) in most primary schools in Zambia and across the world has made it easy to share information on the wide world web regardless of location. The current case with most institutions of learning is the lack funds to buy papers and ink needed to print out examination papers and handouts for pupils, thus causing inconveniences to the current learning process, and also when the papers are used to write tests, there are not properly disposed of thus posing an environmental pollution when the papers are burnt. In the case of The Copperbelt University (C.B.U) last academic year, most departments had no paper and ink to prepare examinations papers when the time for examinations drew near. 1.2. PROBLEM STATEMENT According to our preliminary research we discovered that the old way of conducting examinations has a negative impact on the environment due to the unnecessary usage of paper as it means that trees are cut down to produce paper, which can lead to global warming and ultimately desertification. The unnecessary burning of paper after pupils write their exams or finish reading their handouts can cause damage to the ozone layer. And it has been noticed that the cost of conducting examinations is high due to buying of paper, ink and printing machines. 1.3. PROPOSED SYSTEM Our proposed web based Questions Sharing and Interactive Assignments system mainly focuses on the current primary school education system. This is a web based system that will not only help in keeping pupil`s records, the system is also intended at helping the teachers to assess pupil’s performance in a more effective way, help pupil`s keep track of their progress and see which areas they ought to improve in.
  • 12. 3 1.4. OBJECTIVES Objectives of the proposed system include: 1. Be able to record pupil’s details. 2. Be able to assess the pupil`s comprehension through tests. 3. System will be able to grade pupil’s performance immediately and give detailed feedback. 4. System will be able to give pupils feedback from correct or wrong answers. 5. Online tests can be more accessible to pupils with disabilities i.e. blindness who have assistive technologies built into their computers than handwritten tests are. 6. System should be able to save time between publication of results and marking of tests by teachers. 1.5. PROJECT SCOPE This project was developed in phases, first we developed a website that is user friendly using HTML and CSS, we used CSS3 for styling our pages. Then PHP (hypertext preprocessor) was used to create dynamic content on web pages and to interact with the database containing pupil`s records. This system is only available online. 1.6. METHODOLOGY DATA COLLECTION Data collection methods will include; INTERVIEWS Interviews, among many other methods used to collect data verbally, are a powerful tool as they give chance to get clarity and avoid possible misunderstandings between the interviewee and the interviewer. They were used for this reason and because it is often easier to schedule an interview with upper management than to have them, say, complete a questionnaire and because they are people who are not able to express themselves well in writing but can express their concerns in detail verbally. We interviewed management, and pupils at various primary schools in Kitwe on the challenges they face with the current system being used in primary schools of writing tests on paper, and printing costs for those preparing exams. PROGRAMMING LANGUAGES & TOOLS Since our proposed system is a web based system and it includes a database, the programming languages we used to achieve this include;
  • 13. 4 HTML5 & CSS Html (hypertext markup language) is a standard markup language that we used to create web pages, we also used it to create user input fields such as student registration forms. We used CSS3 for styling our pages. CSS stands for cascading style sheets. preferred integrated development environment(IDE) we choose for HTML5 is notepad++. PHP PHP (hypertext preprocessor) is one of the many server-side scripting languages. We used it to create dynamic content on web pages and to interact with the database containing pupil`s records. We found it is easy to learn, and it has an extensive documentation tool called the manual. Preferred integrated development environment(IDE) to be used to write our PHP code will be notepad++, Eclipse and NetBeans. MYSQL MySQL (Structured Query Language (SQL) a standard language used for relational database programming. This has become one of the widest used and powerful databases around. It was used because it interacts well with PHP. Preferred integrated development environment(IDE) to be used to write our database was Microsoft Access.
  • 15. 6 2.1. INTRODUCTION The delivery and establishment of learning opportunities and support via computer, networked with web–based technology to help individual performance and development. Interactive Online assessment system provides capabilities for pupils to learn, tests and records each user’s demonstration comprehension of the materials provided, provide educational material to multiple users and track student performance. [2] These systems vary in size, scope and capabilities, from capability, from packages that are implemented in relatively small organizations to cover students alone, to enterprise-wide solutions to aim to cover aspects of running large multi-campus organizations and their online schools with significant local responsibilities [3]. Many systems can be tailored to different levels of functionality to meet local needs. Since these systems are complex they have subsystems to manage students, which may include checking student performance, writing exams and many others. The interactive online assessment system focuses mainly on testing and recording each student’s demonstrated comprehension of the materials provided. Most e learning systems are online based and online personnel are lectures, tutors and students access them using unique user names and passwords. The existing systems to be considered are in our literature review include: Questions Sharing and Interactive Assignments System(QSIA), Moodle©, E-Homebook System (E.H.S), and EduWare©. 2.2. EXISTING SYSTEMS 2.2.1. Questions Sharing and Interactive Assignments (QSIA) This is a Web-based environment for learning, assessing and knowledge sharing in communities. QSIA means: Questions Sharing and Interactive Assignments. It off ers a unified infrastructure for developing, collecting, managing and sharing of knowledge items. QSIA enhances collaboration in authoring via online recommendations and generates communities of teachers and learners. At the same time, QSIA fosters individual learning and might promote high-order thinking skills among its users [4]. This system offers the following functionalities and benefits:  QSIA system enables users to create and edit different knowledge items such as questions or learning tasks. The knowledge items can range from simple low order thinking skill questions that require memorizing or seeking straightforward information, to complex assignments with high order thinking skills that require analysis and synthesis of the learning material. QSIA knowledge items are modular variety of types including multiple-choice questions, matching questions, true/ false questions or content items. QSIA as a Web-tool permits easy accessibility to a variety of knowledge databases that include written text, as well as interactive multimedia such as music, video films, special simulations and virtual tours to museums. It is a multi-lingual system and has been used in English, Hebrew, Arabic and Turkish [4].
  • 16. 7  QSIA focuses on knowledge sharing among participants, while maintaining a secure and private working environment. One of QSIA s sub-tasks is matching mates: the capability to make matches among recommenders and those seeking recommendations. Sharing knowledge via QSIA includes three aspects: Uploading knowledge items. Composing a question and allowing others to use it. QSIA has four different access levels: private (opened only to the owner), personal (opened to a selected set of users), partial (opened only to a selected set of learning groups) or public (opened to everybody). In each of these levels, the user can choose to restrict the access to a specific role (teachers, for example). Ranking knowledge items. Answering a question and then ranking it on a scale of 1–5, so others could benefit from one’s professional opinion and recommendations. Receiving recommendations. Looking at the average rank other participants (instructors or students) provided for a certain question. Thus, every user can benefit from the expertise of others. The recommendation system enables instructors and students to get targeted suggestions of knowledge items [4].  QSIA offers new prospects for individual assessment based on computerized follow-up and monitoring of the individual answering path chosen by each student. The QSIA online assessment activities are called assignments and have a number of applications. QSIA assignments can be seen both as a formal and informal evaluation of the students’ knowledge. The formal evaluation is carried out by a quiz given to the students simultaneously but not necessarily in the same place. The informal evaluation is represented by self-tests students can carry out any time and any place for detecting their difficulties and misunderstanding.  QSIA assignments can be reviewed by the instructor before distribution to the students. If there are no computer facilities, a hard copy of the assignments can be printed or exported to common word processor formats. When administered online, the instructor can monitor the progress of the students, according to parameters such as number of questions answered and more. The system allows the instructor to choose between several grading strategies, which may be added dynamically to the system in runtime. Instructors can view and analyse the grades of the students, according to three parameters: students, assignments or knowledge item. Furthermore, the system offers aggregate reports [4].  The educational line of work produces massive learning materials for both instructors and students. After years of learning and teaching, educators possess valuable lectures, working sheets, written projects, exercises, assignments and more. Scholars often have trouble organizing their papers, files and folders. Valuable psychometric history pertaining to items and their quality often gets lost in the shuffle. QSIA helps solve this problem. QSIA allows managing educational content using folders, search facility and editing tools. It enables users to create and manage a set of folders that includes all of the content owned by them. The folders allow users to manage their content s properties using centralized and time-saving methods. Content such as knowledge items, created by the QSIA user, can be indexed under a certain discipline. The list of personalized knowledge areas can be used afterwards in order
  • 17. 8 to retrieve the contents. The system keeps a list of disciplines or personalized knowledge areas suited for each user. Since QSIA is an online system, users can retrieve their personal educational contents any time and any place providing there is a computer with a connection to the Internet [4]. 2.2.2. Modular object-oriented dynamic learning environment (Moodle) This is a free and open-source software learning management system written in PHP and distributed under the GNU General Public License. Developed on pedagogical principles, Moodle is used for blended learning, distance education, flipped classroom and other e-learning projects in schools, universities, workplaces and other sectors. With customizable management features, it is used to create private websites with online courses for educators and trainers to achieve learning goals. Moodle (acronym for modular object-oriented dynamic learning environment) allows for extending and tailoring learning environments using community sourced plugins 2.2.3. E-Homebook System (EHS) This is web-based interactive education interface. E-Homebook System (EHS) has agents which provide a teacher–parent–student communication interface through Internet. The EHS comprises intelligent agents: interaction agent, instruction agent, information agent, evaluation agent and log agent. The agents manage a learning portfolio conception, observe and record students e- learning behaviour through the web log, and provide teachers a reference of portfolio information. The agents adopt a trigger function to analyse the students learning behaviour from Internet as well as from classroom, evaluate overall performance, then send an e-mail messages automatically to the teachers and parents to guide and assist the students who need to revise their learning attitude. Similarly, the agents will record parent’s participation portfolio, then teachers may draft better communication strategy. The EHS provides a better communication role between students–parents–teachers, implements an integrated performance measurement method, and conducts a better teaching strategy support interface for elementary education. 2.2.4. EduWare EduWare school management software is an online system that has been specially designed to maintain all the records of school or educational institutions. EduWare software helps to maintain all the administrative and financial activities of the school. It provides paperless management and easy management of students, staff and school records [5]. Functionalities and benefits:  Trustee or head of the educational institution can check the reports of fees collection and daily money transaction reports from anywhere.  Teachers can upload the marks with editing facility anytime from anywhere.  Management can check the attendance report of staff and students from any place.  Multiple branches can be managed.  No limitation of the data storage.  Data stores on web.
  • 18. 9  Bulk SMS facility available.  Attendance, exam and result management in easy way.  Staff can easily access any information about the student from anywhere
  • 20. 11 3.1. INTRODUCTION The System is intended to be an online system for primary school pupils in Zambia. Many systems fail because they do not meet the requirements of the intended users. This document seeks to deliver in detail the requirements specifications, which includes the features and functionality of the proposed system. This chapter outlines the operations of the required system, inputs, outputs, hardware and software required to develop the system. It basically sets out the user requirements as gathered during the requirements elicitation stage. The document highlights how the proposed system is expected to operate by describing both functional and non-functional requirements. 3.2. SCOPE AND OBJECTIVE This project was developed in phases, first we developed a website that is user friendly using HTML and CSS, we used CSS3 for styling our pages. Then PHP (hypertext preprocessor) was used to create dynamic content on web pages and to interact with the database containing pupil`s records. This system is only available online. 3.3. BENEFITS AND OBJECTIVES OF PROPOSED SYSTEM Objectives of the proposed system include: Be able to record pupil’s details. Be able to assess the pupil`s comprehension through tests. System will be able to grade pupil’s performance immediately and give detailed feedback. System will be able to give pupils feedback from correct or wrong answers. Online tests can be more accessible to pupils with disabilities i.e. blindness who have assistive technologies built into their computers than handwritten tests are. System should be able to save time between publication of results and marking of tests by teachers. 3.4. FUNCTIONAL REQUIREMENTS 3.4.1. Input All the inputs from the user is via keyboard input and mouse point click. The user navigates the website by clicking on the icons and links. The icons give appropriate response to the given input. The following are inputs the system will receive:  Uploading of course material and assignments.  Entering pupil’s assessment results.  Receiving user choice from a list of possible answers.  Adding of questions and answers to the database by system administrators.  Adding and deleting users. 3.4.2. Processing Processing of the system refers to the operations performed on data entered into the system to generate output such as:  Calculating C.A(Continuous Assessment).
  • 21. 12  Update student’s records.  Sorting of pupils marks from the highest to the lowest.  Modification of pupils details 3.4.3. Storage Data and all the files are stored on a database system. In addition, other important information such as administrator username and password is stored on a database as well as that of other local users such pupils. 3.4.4. Output  Show pupil’s details.  Produce results.  Produce class reports to the teacher.  Show search results of pupils ‘details by use of I.D (identification).  Should generate and display pupil’s performance. 3.5. NON-FUNCTIONAL REQUIREMENTS These are the constraints on the services or functions offered by the system. 3.5.1. HARDWARE The minimum hardware requirements are:  Processor Computer with a 600 MHz or faster processor (1 GHz or higher recommended)  RAM Minimum: 256 MB Recommended: 512 MB  Keyboard and mouse A mouse was needed for the manipulation of Graphical User Interface and keyboard for input.  Monitor A suitably sized monitor (preferably 14-inch or larger) was required for screen output. 3.5.2. SOFTWARE The minimum hardware requirements  An operating system (Windows 7 or Later version)  PHP and MYSQL server (XAMPP, WAMP)  Any web browser (Opera, Mozilla FireFox, Google, Internet Explorer)
  • 22. 13 4. CHAPTER FOUR DESIGN SPECIFICATION
  • 23. 14 4.1. INTRODUCTION This chapter has evolved out of the Requirements Specification preceding it. It outlines the design of how the proposed system will be implemented. The design specification document bridges the gap between Systems requirements and implementation of a system that satisfies those systems’ requirements. [6] The Design outlined in this document will describe: 1. Architectural Design This is to do with how the physical components of the system are arranged and resources accessed by the clients. 2. Data Design Data designs is concerned with data that our system used. This mainly involves database design which is illustrated using entity-relationship(ER) diagrams and tables that result from the data. 3. Interface Design This is to do with how the system appeared to the user. 4. Security Design This is to do with how the system is secured and protected from unauthorized access. 4.2. ARCHITECTURAL DESIGN This section shows the structure of how the hardware components are arranged. The system utilizes client/server architecture as shown below. Client server is a program relationship in which one program (the client) requests a service or resource from another program (the server). In this case the client is the web browser of the user which requests a service which are the web pages of the system from the server on which the system is hosted. The system’s database was implemented as software on the server.
  • 24. 15 Figure 1:showing the client server architecture 4.3. DATA DESIGN This section shows E-R (Entity Relational) diagrams. It also gives a structural specification consisting of a description of files and data types. How Data is used in the database is illustrated using entity relationship diagrams and tables. 4.3.1. Entity Relation Schema Pupil (Pupil-id, Pupuil_name, gender, Address) Teacher (Teacher-id, Teacher_name, Phone_No, Email-address, address) Subject (Subject-id, name) Class (class-id, class_teacher) Test (test-id, results) Exercise (exercise-id)
  • 25. 16 4.3.2. ENTITY RELATION DIAGRAM PUPIL TEACHER grade CLASS EXERCISESUBJECT has TEST has takes takes has Pupil-id Class-id Exercise-id -id Test-id -id
  • 26. 17 KEY Entity Relationship Entity type Attribute One to one relationship One to many relationships Optional association Figure 2 showing entity relation diagram 4.3.3. DATABASE TABLES The following are the data tables derived from the entity relationship diagram showing the fields, their data types, size and description of each fields. 4.3.3.1. Pupil’s table FIELD NAME DATA TYPE SIZE DESCRIPTION Pupil-id Integer 10 Primary key uniquely identifies a pupil. First-name Varchar 20 The first name of the pupil. Last-name Varchar 20 The last name of the pupil. Gender Enum The gender of pupil. Class-id Varchar 8 Foreign key identifies the class the pupil belongs. Address Varchar 30 The address of the pupil. 4.3.3.2. Teachers table FIELD NAME DATA TYPE SIZE DESCRIPTION Teacher-id Integer 10 Primary key uniquely identifies a teacher. First-name Varchar 20 The first name of the teacher. Last-name Varchar 20 The last name of the teacher. E-mail Varchar 60 The working e-mail address of the teacher Address Varchar 30 The address of the teacher Subject-id Varchar 10 Foreign key identifies the subject the teacher teaches Class-id Varchar 8 Foreign key identifies the class the teacher supervises.
  • 27. 18 4.3.3.3. Subject table FIELD NAME DATA TYPE SIZE DESCRIPTION test_id Int 100 test_questions Varchar 100 The first name of the pupil. option_A Varchar 100 option_B Varchar 100 option_C Varchar 100 question_answer Varchar 100 test_name Varchar 30 teacher_id Varchar 11 subject_id Varchar 11 Primary key a subject. 4.3.3.4. Class table FIELD NAME DATA TYPE SIZE DESCRIPTION Class-id Integer 10 Primary key uniquely identifies a class. Teacher-id Integer 10 Foreign key that identifies the teacher that supervises the class. Subject-id Integer 10 Foreign key that identifies the subjects the class has. 4.3.3.5. Test table FIELD NAME DATA TYPE SIZE DESCRIPTION Test-id Integer 10 Primary key uniquely identifies a test. Teacher-id Integer 10 Foreign key identifies a teacher who prepares the test. Subject-id Integer 10 Foreign key that identifies the subjects in which the test is given. Results Double 4 The marks obtained by the pupil. 4.3.3.6. Exercise table FIELD NAME DATA TYPE SIZE DESCRIPTION Exercise-id Integer 10 Primary key uniquely identifies an exercise.
  • 28. 19 Teacher-id Varchar 20 Foreign key identifies a teacher who prepares the exercise. Subject-id Integer 10 Foreign key that identifies the subjects in which the exercise is given. 4.4. APPLICATION DESIGN 4.4.1. Logic Design The logical design provides the flow of logic in the system. It describes the design of an application giving the modules to be added and showing how the modules interact to accomplish the system’s objective or goal. Hierarchical Input Process Output (HIPO) diagrams is used for the architecture design of the Interactive Online eLearning and Assessment System. Figure below shows a decomposition of the system into respective modules. The following are the modules and their description: 4.4.1.1. User Login Module This module allowed users (Pupils, and Teachers) including the systems Administrator to log into the system. It provided the users an interface to input their passwords and usernames. This module established a connection and was able to inform the user. Because the technology for distribution of the system is the web, the transport layer protocol that was used for this is the Hypertext Transfer (or Transport) Protocol (HTTP). 4.4.1.2. Main Menu Module This module displayed all the necessary categories upon logging in and it controls all processing. Invokes programs to handle data entry. 4.4.1.3. Add User Module This module is invoked by the System Administrator module to create a new user account for a user. This includes giving each user a username and a password. To create a new user account, the administrator was required to enter the pupil`s and teacher`s: first names, surnames, identification numbers, gender, class, physical address and phone numbers. 4.4.1.4. User Logout Module This module is for ‘Exiting’ or leaving the system; it leads to shutting down or closing of the system. It will be invoked to logout from the various panels logged into (i.e., administrator, pupil or teacher). 4.4.1.5. System Administrator Module This module triggered the addition and deletion of various user accounts in the system. It is therefore, a function meant for the System Administrator. This particular module also enabled all Administrator Module Staff to keep track of all members of staff and all the available resources. Generation of a report containing summarized information about drugs was also possible with this module.
  • 29. 20 4.4.1.6. Teacher Module The following information was required for registration of Teachers: identification number, first name, surname, phone number, email address, and physical address 4.4.1.7. Pupil Module The following information was required for registration of pupils: identification number, first name, surname, gender, physical address. 4.4.1.8. Delete User Module This module is invoked by the System Administrator module to remove user accounts from the System. 4.4.1.9. Edit User Module This module is invoked to edit user details by System Administrator module. Editing user details include charging the usernames, passwords, granting or denying certain privileges 4.4.2. HIERARCHICAL INPUT PROCESS OUTPUT DIAGRAM (HIPO) Figure 3 shows the HIPO diagram 4.5. USER INTERFACE DESIGN This section describes how the user-interface of the main pages of the system appeared like, what links are present and which input fields are available to the user. Log in Student Notes Tests Teacher Administrator Exercises Upload content Edit results View results Add user Delete user
  • 30. 21 Figure 4 shows user login page
  • 31. 22 Figure 5 shows home page 4.6. SECURITY DESIGN Security design generally addresses the questions, how the system avoids unauthorized access, who was allowed to modify of data in the system`s database, and how this was implemented? Security on the website was implemented using PHP (Hypertext Pre-processor), security certificates were used. There were three (3) password levels: one for the administrator(s) and one for the pupil(s) and the other for the teachers. The administrator(s) was given privileges to update the database and website. Password was stored in the database with an MD5 encryption; MD5 is a one-way encryption technique. The database was protected from SQL (Structured Query Language) injection by the use of HTML5 entities, these changed any commands inputted by the user to their representation in character. Each username was required to be unique and so every user has a different and unique password and username combinations. [7]
  • 33. 24 5.1. INTRODUCTION From the designs stage, the next step was to carry out the implementation of the system. This chapter focuses on the tools that were used to implement the design of the system. Implementation stage of software development is the process of converting a system’s design specification into an executable system. It specified how the user requirements in the design specification were satisfied. This document describes the transition of the classified website into a system and focuses on the implementation of the Learning System. This review looked at the following objectives:  The system is able to record pupil’s details.  The system is able to give pupil’s feedback from correct or wrong answers in practice exercises.  The System is able to grade the pupil’s performance immediately after taking a quiz and give a detailed feedback. 5.2. IMPLEMENTATION TOOLS A programming tool or Software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. 5.2.1. Hardware Pentium IV Computer with processing speed 1.5 GHz, 1 GB of Ram, 250 GB Hard disk space was used. 5.2.2. Software  XAMPP  Notepad++  Web Browser (Google Chrome) 5.2.2.1. XAMPP XAMMP is the most popular PHP development environment. It is a completely free, easy to install Apache distribution containing MYSQL, PHP and Perl. The XAMPP open source package has been set up to be incredibly easy to install and to use. [8] It allows web designers and programmers to test their work on their computers without any access to the internet. 5.2.2.2. Notepad++ This is an open source code and text editor used for writing code in Hypertext Markup Language (HTML5), PHP Hypertext Preprocessor (PHP), Cascading Style Sheet (CSS3) and JavaScript (JS). [9]
  • 34. 25 5.2.2.3. Web Browser Google Chrome was used as our choice to test or run our PHP, CSS, JS and HTML code on our localhost. 5.2.3. Mark up and Scripting Programming languages  Hypertext Markup Language (HTML5)  PHP Hypertext Preprocessor (PHP)  My-Structured Query Language(MySQL)  JavaScript  Cascading Style Sheet (CSS)  Bootstrap 5.2.3.1. Hypertext Markup Language (HTML) HTML is a markup language used for describing web pages [10]. It was used for the creation of system pages; it was mostly used for creation of user input fields such as the login form, user registration form, tables for easy display of data. 5.2.3.2. PHP Hypertext Preprocessor (PHP) PHP is server scripting languages and a powerful tool for making dynamic and interactive web pages [11]. It was used to create dynamic content on the system and all the interactions with the database as well as handling all browser requests and sending information across the internet to the user browser. 5.2.3.3. My-Structured Query Language Improved (MySQLi) MySQL is a database system used on the web, it uses standard SQL statements, it is database system that runs on a server and it is free to download and use. [12] 5.2.3.4. JavaScript JavaScript is the scripting language of the web [13]. It was used for adding some functionality to the system. 5.2.3.5. Cascading Style Sheet (CSS3) CSS is style sheet language that describes the presentation of an HTML document. It describes how elements must be rendered on screen, on paper, or in other media. [14] CSS was used to design all the systems interfaces. 5.2.4. Bootstrap Bootstrap is a free front-end framework for faster and easier web development. It includes HTML and CSS based design templates for typography, forms, buttons, tables, navigation, modals, image carousels and many other, as well as optional JavaScript plugins. Bootstrap also gives you the ability to easily create responsive designs. [15]
  • 35. 26 6. CHAPTER SIX SYSTEM EVALUATION AND TESTING
  • 36. 27 6.1. INTRODUCTION This chapter describes the criteria used when testing the system. Testing and evaluation simply outlines the ways in which the system was subjected to different tests in order to determine whether or not the system performed in accordance with the requirements specified in the requirement specification document. This was done on the complete integrated system to achieve the functionality it was set to achieve. Testing provided the opportunity to detect errors and inconsistency of the system before finally passing it to the users. 6.2. PURPOSE OF TESTING The main purpose of testing was to ensure that the system was running in an error free environment. Another objective was to uncover any improper functioning in the system. Testing is time consuming but it is a vital activity, it is impossible that errors would not be found in the system during testing. This may be due to incorrect programming, misunderstanding or omissions of specifications. The following were the motivations for the test  To check that the requirements of the users were met and that the system adheres to the user requirements.  To make sure that the system was programmed correctly, that is, the program logic constituted in the scripts performed the specific function that they were intended to perform. 6.3. TESTING CRITERIA Testing of the system was done using the commonly used testing phases which are; Unit testing, integration testing, and finally System testing. Each of these testing criteria served a vital purpose to the completion of the System with the aim of exploring the System to detect errors underlying each layer of testing. At whatever stage and phase of testing the aim was to find errors and inconsistency in the System. 6.3.1. UNIT TESTING Unit testing is the testing of individual components or modules of the system. Unit testing was done on individual modules.  Home page: The homepage is the front page of the website that holds the links and buttons to different user pages. The user that isn’t logged is able to view what the system offers and cannot fully interact with the system.
  • 37. 28 Figure 6 showing home page  Create Account Page: This page allows the administrator to fill in the form and submit to the database. The Administrator fills in the form correctly in order to successfully create an account for the user and no blank fields can be submitted.
  • 38. 29 Figure 7 creating user accounts Adding pupils to database <?php session_start(); require('connection.php'); //initializing our variables $user_name = $first_name = $last_name = $password1 = $password2 = $gender = $class_id = $address = ""; if(isset($_POST["Register"])){ $first_name = mysql_real_escape_string($_POST["first_name"]); $last_name = mysql_real_escape_string($_POST["last_name"]); $user_name = mysql_real_escape_string($_POST["user_name"]); $password = mysql_real_escape_string($_POST["password"]);
  • 39. 30 $password2 = mysql_real_escape_string($_POST["password2"]); $address = mysql_real_escape_string($_POST['address']); $class_id = mysql_real_escape_string($_POST['class_id']); $gender = mysql_real_escape_string($_POST['gender']); if($password === $password2){ $Sql = "INSERT INTO `pupil`(`pupil_id`, `user_name`, `first_Name`, `last_Name`, `gender`, `class_id`, `address`, `password`) VALUES('','$user_name','$first_name','$last_name','$gender','$class_id','$address','$password')"; //executing above query $conn->query($Sql); //setting session variable $_SESSION['SignUp_success'] = $user_name; header("location:ViewData.php"); } elseif(!$password == $password2){ $_SESSION['SignUp_failure'] = 'failure'; header("location:SignUp_page.php"); } else{ } } ?>  Login Page: This page allows the users to access their accounts. The following where the tests carried out on the log in page:  Entering a correct username and password  Attempt to login with an incorrect username or password  Attempt to login with either username or password incorrectly  Attempt to login into the system without providing any login information.
  • 40. 31 Description Expected results Actual Results Login with correct details Login successful Login successful Login with wrong details Login unsuccessful Login unsuccessful Submitting empty fields No blank fields accepted No blank fields accepted Figure 8 login page
  • 41. 32 Figure 9 empty login Figure 10 wrong username or password
  • 42. 33 Login code for all users <?php session_start(); require('connection.php'); if(isset($_POST['login_button'])) { $user_name = $_POST['user_name']; $password = $_POST['password']; $user_name = stripslashes($user_name); $password = stripslashes($password); $user_name = mysqli_real_escape_string($conn,$_POST["user_name"]); $password = mysqli_real_escape_string($conn,$_POST["password"]); //Query statement for selecting details from database $Sql = "SELECT * FROM pupil WHERE user_name = '".$user_name."' AND password = '".$password."' "; if(!$result = $conn->query($Sql)) { echo $conn->error; exit(); } //else do this if($result->num_rows == 1)//if num_rows == 1 then it means we have a user with that combo of username and password { //fetching data from db as associative array while($row=$result->fetch_assoc()){ //setting our SESSION variables $_SESSION['login_success'] = $user_name;
  • 43. 34 $_SESSION['id'] = $row['pupil_id']; $_SESSION['name'] = $row['user_name']; } header("location:student.php"); } else { //if num_rows == 0 then we have no user with that username and password combo $_SESSION['login_failure'] = "failure"; header("location:LoginPage_student.php"); } } ?>  Viewing pupil’s page: This allows the Administrator to view all registered pupils, edit their details and deleting them from the system Figure 11 viewing pupil's in the system View pupil’s code <?php session_start(); require('connection.php'); if(isset($_SESSION['connect_error'])){ echo ‘ <div class = "container">
  • 44. 35 <div class="alert alert-danger">Error connecting to database</div> </div>'; unset($_SESSION['connect_error']); } elseif(isset($_SESSION['connect_success'])){ echo ' <div class = "container"> <div class="alert alert-success fade in"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>Success!</strong> Database connection established. </div> </div>'; unset($_SESSION['connect_success']); } $result = mysqli_query($conn,"SELECT * FROM pupil"); ?> <html> <head> </head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap.min.css"> <script src="jquery.min.js"></script> <script src="bootstrap.min.js"></script> <body> <div id = "wrapper"> <div class="container"> <h2>PUPILS IN DATABASE</h2>
  • 45. 36 <table class="table table-hover"> <thead> <tr> <th>Pupil ID</th> <th>Username</th> <th>Firstname</th> <th>Lastname</th> <th>Gender</th> <th>Class ID</th> <th>Address</th> <th>Options</th> </tr> </thead> <tbody> <?php $r =0; while($pupils = mysqli_fetch_object($result)) { $pupils->pupil_id; $pupils->user_name; $pupils->first_Name; $pupils->last_Name; $pupils->gender; $pupils->class_id; $pupils->address; ?> <tr>
  • 46. 37 <td><?php echo $pupils->pupil_id;?> </td> <td><?php echo $pupils->user_name;?></td> <td><?php echo $pupils->first_Name;?></td> <td><?php echo $pupils->last_Name;?></td> <td><?php echo $pupils->gender;?></td> <td><?php echo $pupils->class_id;?></td> <td><?php echo $pupils->address;?></td> <td><?php echo "<a href = 'delete.php?id=".$pupils->pupil_id."'><button type = 'button' class = 'btn btn-danger btn-xs'>Delete</button></a>"?> <?php echo "<a href = 'edit_form.php?id= ".$pupils->pupil_id."'><button type = 'button' class = 'btn btn-default btn-xs'>Edit</button>"?></td> </tr> <?php $r++; }//end of while loop ?> </tbody> </table> <?php if (isset($_SESSION['operation_failure'])) { echo '<div class="alert alert-danger">operation failure.</div>'; unset($_SESSION['Operation failure']); } elseif(isset($_SESSION['operation_success'])) { echo '<div class="alert alert-success">Operation success</div>'; unset($_SESSION['operation_success']); }
  • 47. 38 ?> </div> </div> </body> </html> Editing pupils code <?php // connect to the database include('connection.php'); // check if the form has been submitted. If it has, start to process the form and save it to the database if(isset($_POST['submit'])){ // get form data, making sure it is valid $pupil_id = $_GET['id']; $username = mysqli_real_escape_string($conn, htmlspecialchars($_POST['user_name'])); $firstname = mysqli_real_escape_string($conn, htmlspecialchars($_POST['fname'])); $lastname = mysqli_real_escape_string($conn, htmlspecialchars($_POST['lname'])); $old_password = mysqli_real_escape_string($conn, htmlspecialchars($_POST['pwd1'])); $new_password = mysqli_real_escape_string($conn, htmlspecialchars($_POST['pwd2'])); $class_id = mysqli_real_escape_string($conn, htmlspecialchars($_POST['class_id'])); $gender = mysqli_real_escape_string($conn, htmlspecialchars($_POST['gender'])); $address = mysqli_real_escape_string($conn, htmlspecialchars($_POST['address'])); if(!empty($username)){ $sql = "update pupil set user_name = '$username' where pupil_id = '".$pupil_id."'"; $update = $conn->query($sql); } if(!empty($firstname)){ $sql = "update pupil set first_Name = '$firstname' where pupil_id = '".$pupil_id."'";
  • 48. 39 $update = $conn->query($sql); } if(!empty($lastname)){ $sql = "update pupil set last_Name = '$lastname' where pupil_id = '".$pupil_id."'"; $update = $conn->query($sql); } if(!empty($new_password)){ $sql = "update pupil set password = '$new_password' where pupil_id = '".$pupil_id."'"; $update = $conn->query($sql); } if(!empty($class_id)){ $sql = "update pupil set class_id = '$class_id' where pupil_id = '".$pupil_id."'"; $update = $conn->query($sql); } if(!empty($gender)){ $sql = "update pupil set gender = '$gender' where pupil_id = '".$pupil_id."'"; $update = $conn->query($sql); } if(!empty($address)){ $sql = "update pupil set address = '$address' where pupil_id = '".$pupil_id."'"; $update = $conn->query($sql); } header("Location: ViewData.php"); } ?>  Exercise and teat pages: This page allows the pupils to take quick exercises and tests in various subject.
  • 49. 40 Description Expected result Actual Result Correct answer Calculates score Calculates score Wrong answer Does not earn you a score Does not earn you a score Table 1 Figure 12 taking exercise Quiz code <script type="text/javascript"> //Set number of questions var numQuest=6; var ie=document.all function showAnswer(el,ans){ ie? ie[el].innerHTML='The answer is: '+ ans : document.getElementById(el).innerHTML='The answer is: '+ ans } function addup() { var q, right, statement, total=0 questions=new Array(); for (i = 0; i < numQuest; i++) questions[i]=0
  • 50. 41 if (document.forms.quiz.q1['right1']){ for (i = 0; i < numQuest; i++){ q="q"+(i+1) right="right"+(i+1) if (document.forms.quiz[q][right].checked) questions[i]=1 } } else if (document.getElementById){ for (i = 0; i < numQuest; i++){ right="right"+(i+1) if (document.getElementById(right).checked) questions[i]=1 } } else return; for (i = 0; i < numQuest; i++) total += questions[i] //Set score response below. statement='You scored '+ total +' out of '+ numQuest +' correct, '+ Math.round(total/numQuest*100) +'%' ie? ie.results.innerHTML=statement : document.getElementById('results').innerHTML=statement } function clearR(){ ie? ie.results.innerHTML='' : document.getElementById('results').innerHTML='' for (i = 0; i < numQuest; i++)
  • 51. 42 ie? ie["ans"+(i+1)].innerHTML='' : document.getElementById("ans"+(i+1)).innerHTML='' } </script> 6.3.2. INTEGRATION TESTING After coding all the modules, each module underwent unit testing which is performed on individual modules to test program logic focusing on each unit of code. After testing, all the errors that were detected were corrected. In testing the modules of the system, all modules were connected to the database and all the unit requests of that module were tested and executed. 6.3.3. SYSTEM TESTING This is the testing conducted on a complete system to evaluate the system’s compliance with the specified requirements. The main aim of this test was to test for the compatibility of the modules making up the system. Other reasons for the system testing included testing to assess whether the system will cope with mainstream data and conditions, checking the system’s performance behavior that is, checking how long the system will take to execute certain tasks. System testing also tests the system to see how it handles errors and recovers from them. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic.
  • 52. 43 7. CHAPTER SEVEN CONCLUSION AND RECOMMENDATIONS
  • 53. 44 7.1. CONCLUSION Our system mainly concentrates on the Zambian primary school education system. The system was designed based on the requirements specifications. The system is able to record pupil’s details and assess them on tests and exercises they take. It is also able to give immediate feedback to pupil’s after taking a test or exercise. The system saves time between marking and publication on results by giving immediate feedback. 7.2. RECOMMENDATION Being an E-learning system, the system should be able to support one word answers and essay type of questions.
  • 55. 46 References [1] "www.virtual-college.co.uk," [Online]. Available: http://www.virtual- college.co.uk/elearning/elearning.aspx. [Accessed 12 october 2016]. [2] J. H. E Pollard, Exploring e-learning, The Institute for Employement Studies, 2001. [3] M. B. Y. D.-G. E. T. Sheizaf Rafaeli, "QSIA-a Web_based environment for learning, assessing and knowledge sharing communities," 10 October 2005. [Online]. Available: http://www.researchgate.net/publication/223869968. [Accessed 18 October 2016]. [4] M. B. Y. D.-G. E. T. Sheizaf Rafaeli *, "QSIA-a Web-based environment for learning, assessing and knowledge sharing in communities," 10 October 2005. [Online]. Available: https://www.researchgate.net/publication/223869968. [Accessed 18 October 2016]. [5] "School Management Software, eduWare School Software, Web portal and Mobile Applications," [Online]. Available: http://onlineschoolsoftware.jimbo.com/. [Accessed 2016]. [6] Notes of Guidance on Computer Science Project Deliverables. [7] "w3shools.com," [Online]. Available: http://w3schools.com. [8] "apachefriends.org," [Online]. Available: http://www.apachefriends.org/index.html. [9] "notepad-plus-plus.org," [Online]. Available: http://notepad-plus-plus.org. [10] "w3schools.com," [Online]. Available: http://www.w3schools.com/html/html_intro.html. [11] "w3schools.com," [Online]. Available: http://www.w3schools.com/php/default.html. [12] "w3schools.com," [Online]. Available: http://www.w3schools.com/php/php_mysql-intro.html. [13] "w3schools.com," [Online]. Available: http://www.w3schools.com/js/default.html. [14] "w3schools.com," [Online]. Available: http://w3schools.com/css/default.html. [15] "w3schools.com," [Online]. Available: http://w3schools.com/bootstrap/default.html. [16] C. Y. C.-s. C. Hsi-mei Chen, 13 5 2005. [Online]. Available: www.elsevier.com/locate/compedu. [Accessed 2016]. [17] "School Management Software, eduWare School Software, Web Portal And Mobile Applications," [Online]. Available: http://onlineschoolsoftware.jimbo.com/. [Accessed 2016].
  • 57. 48 9.1. APPENDIX I 9.1.1. PROJECT PROPOSAL 9.1.1.1. INTRODUCTION E-learning is electronic learning, and typically this means using a computer to deliver part, or all of a course whether it's in a school, part of your mandatory business training or a full distance learning course (http://www.virtual-college.co.uk/elearning/elearning.aspx.). The system proposed in this document provides a Question Sharing and Interactive system that will enable pupils to take tests online unlike the current way of taking tests. 9.1.1.2. PROBLEM STATEMENT Currently there are no e-learning systems dedicated to primary schools in Zambia, and so;  It is costly to conduct tests due to the high prices of paper, ink and printing machines.  There is no paper way of disposing of test paper and usually pupils burn the test papers which can cause damage to the ozone layer. 9.1.1.3. THE PROPOSED SYSTEM This document proposes to design a web based Questions Sharing and Interactive Assignments system that will mainly focus on the current primary education system in Zambia. The system will not only help in keeping pupil’s records, the system is also intended at helping the teachers assess pupil’s performance in a more effective way, help pupil’s keep track of their progress and see which areas they ought to improve in. 9.1.1.4. BENEFITS OF THE PROPOSED SYSTEM The proposed system was able to:  Let teachers to enhance the content and delivery of their subject matter through uploading of materials on the site.  Automatically grade responses, saving time for the instructor and providing more detailed feedback to pupil’s.  Let pupils have access to study materials from any location and on any device.  Save time because results will be automatically and instantly calculated and communicated to both pupils and teachers. 9.1.2. COMPONENT ACTIVITIES OF THE PROJECT This project has the following components: 9.1.2.1. Meetings with supervisor Frequent weekly meetings with the supervisor were conducted so as to seek guidance and clarification on how the project should was to be done and to report on the milestones achieved.
  • 58. 49 9.1.2.2. Collection of Data Data collection was done through research via the Internet; existing successful classified e- learning systems were studied to learn how best the proposed system can be a success. 9.1.2.3. Draft of Requirements Specification Document The requirements Specification Documents was derived from existing classified website of which the supervisor as the client was consulted frequently. 9.1.2.4. Project Design A projected design was created through the gathering and processing of the collected data together with the system requirements. Only upon ratification of the project design by the client was the proposed system moved to the next phase of development. 9.1.2.5. Project Development Coding of the system began once the Design Specifications Document and project design have been approved. 9.1.2.6. Software Testing The different elements of the system were tested as components and also as an integrated whole, to see how the system would operate when used by the intended users. 9.1.2.7. License Agreement A license agreement document was prepared that will outlined the terms and conditions of use of the system, of which when the user goes beyond or faults these terms and conditions the administrators was given the right to delete the user’s advert and suspend the user. Users were required to read through and accept the terms and conditions before being able to participate in the system. 9.1.2.8. Quality Assurance The review of the system and related documentation for completeness, correctness, reliability and maintainability, was done after the entire system was complete. 9.1.2.9. Acceptance Testing The final integrated system was tested with the supervisor before handing it over. This was done to ensure that the developed system is functioning as expected meets the system requirements. 9.1.2.10. Handover of Product to Client All relevant documents and the final product was submitted to the supervisor as the client. The submitted product included all adjustments made and components that were added after acceptance testing. This activity will be marked the end of the project.
  • 59. 50 9.1.3. BUDGET Below are the proposed approximations of costs for the successful completion of the project: ITEMS QUANTITY COSTS(K) Transport 8 Trips 350 Internet 40GB 1000 Printing 10 Documents 250 Incidental costs Total: 2,500 9.1.4. MILESTONES The following have been outlined as project milestones and therefore critical to the whole project being delivered to the client on time. Table of Milestones Activity Date For Deadline 1.Approved Project Proposal 11th October,2016 2.Approved Literature Review 3rd November,2016 3.Approved Requirements Specification 11rd November,2016 4.Approved Design Specification 12th December,2016 5.Coding And Testing 14th February,2017 6.Integration of Modules 28th February,2017 7.Approved Implementation Document 16th March,2017 8.Acceptance Testing 21st March, 2017 9.Approved Conclusion Document 23rd March, 2017 10.Completed Project Report(Spiral Bound) 11th April,2017 11. Project Submission 28th May, 2017
  • 60. 51 9.1.5. GANTT CHART The Gantt chart below shows the project schedule. Months October November December January February March April Weeks 1 2 3 4 1 2 3 4 5 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Project proposal literature review and Design and Requirements Specification Coding and Module testing Integrating and System Testing Production of User Manual Production of Installation Manual Acceptance and testing Documentation Handover of Product
  • 61. 52 9.2. APPENDIX II 9.2.1. USER MANUEL INTRODUCTION This appendix describes how the system can be used effectively and efficiently by all types of users. The systems URL which will be used is http://localhost/learningSystem, however if the system is installed on a remote machine, you will be required to use the actual URL to where the application is installed. HOW TO INSTALL THE SYSTEM Installation of Apache, PHP and MYSQL is one of the most important parts of a running sever from any machine. These parts can be installed at once by installing XAMPP. For the purpose of this project the software has been downloaded and together with the root folder for the system in the installation CD. To install the system, we first need to install the XAMPP software that will run the web system. Once you have installed XAMPP and it running, you can add the system to your new web server by going to “C:xampphtdocs”. This will be where all the web pages of the system will be located and should be stored. To open the website, open your internet browser and type in the address of the site and click ‘go’ or press enter. You will be able to view various items on the home page. USING THE SYSTEM  Connection to the network The computer should be connected to the serve machine having the system through a network.  Open the web browser on the computer (examples of web browsers: Mozilla Firefox, Internet explorer, Google Chrome)  Once the browser has been started, the user will have to specify the uniform resource locater (URL), which points to the address of a specific resource on the website address. Type the URL in the address slot and press enter or click Go.
  • 62. 53 Figure 13 shows open web browser with URL typed
  • 63. 54  After pressing enter you will be redirected to the home page. Figure 14 showing home page  To sign-up, the system administrator registers the users to the system. Users can be signed-up as teacher or pupil.
  • 64. 55 Figure 15 shows student registration page in administrators view  Users who have been registered to the system to the system can login using the login credentials which have been given to the by the administrator. If a teacher or pupil wants to login, he or she can click on the teacher and pupil login link respectively.  When a teach logs in, he or she can upload notes and assignments. The teacher can also prepare tests.
  • 65. 56 Figure 16 showing test preparation form
  • 66. 57 Figure 17 shows teacher page  when the pupil logs in he can select a subject taken by the teacher present at that time or any subject he wants to go through. Figure 18showing students view after log in  After choosing a subject the pupil is able to view the subject content, the notes posted by the teacher, the assignments and take quick exercises. The pupil is also able to take tests when the teacher prepares one.
  • 68. 59 9.3. APPENDIX III Sample code HOME PAGE Index.php <html> <head> <title>Project2017</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap.min.css"> <script src="js/js-image-slider.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="css/indexstyle.css" /> <script src="js/js-image-slider.js" type="text/javascript"></script> </head> <body> <div id="wrapper"> <div class="container"> <navbar style="overflow: hidden;"> <a href="about_us.php" class="About_us_button"><button type="button" class="btn btn- success btn-lg">About us</button></a> <a href="contact.php" class="About_us_button"><button type="button" class="btn btn- success btn-lg">Contact us</button></a> <a href="LoginPage_admin.php" class="About_us_button"><button type="button" class="btn btn-success btn-lg">Admin Login</button></a> <a href="LoginPage_teacher.php" class="About_us_button"><button type="button" class="btn btn-success btn-lg">Teacher Login</button></a> <a href="LoginPage_student.php" class="About_us_button"><button type="button" class="btn btn-success btn-lg">Student Login</button></a> <br><br><br>
  • 69. 60 </navbar> <div class="jumbotron" style="background-color: white;position: relative;text- align:center;font-size: 4.00em;color: #4CAF50; height: 10%;"> <b>Welcome</b></div> <hr/> <div class="slider" id="main-slider"> <!-- outermost container element --> <div class="slider-wrapper"> <!-- innermost wrapper element --> <img src="img/DEMO-EEE-007.jpg" alt="First" class="slide" style="box- shadow:none;"/> <!-- slides --> <img src="img/kids-studying.jpg" alt="Second" class="slide" style="box-shadow:none;" /> <img src="img/happy_young_black_girl.jpg" alt="Third" class="slide" style="box- shadow:none;" /> <img src="img/I-love-learning-kid.jpg" alt="fourth" class="slide" style="box- shadow:none;" /> <img src="img/slide5.jpg" alt="fith" class="slide" style="box-shadow:none;" /> <img src="img/slide6.jpg" alt="sixth" class="slide" style="box-shadow:none;" /> <img src="img/slide7.jpg" alt="seventh" class="slide" style="box-shadow:none;" /> <img src="img/slide8.jpg" alt="eighth" class="slide" style="box-shadow:none;" /> </div> </div> <hr/> <div class = "well well-sm" style = "background-color: white;"> <h2 class="page-header"> What we offer: </h2> <div>
  • 70. 61 <div class="col-md-4"> <div class="panel panel-success"> <div class="panel-heading"> <h4><i class="fa fa-fw fa-check"></i> Maths</h4> </div> <div class="panel-body"> <p>Graph a two-variable equation, Classify quadrilaterals, Experimental probabilityProportional relationships, phrases and clauses, connotations, climate change, world history, and more....</p> <a href="LoginPage_student.php" class="btn btn-danger">Learn More</a> </div> </div> </div> <div class="col-md-4"> <div class="panel panel-success"> <div class="panel-heading"> <h4><i class="fa fa-fw fa-check"></i> Geography</h4> </div> <div class="panel-body"> <p> Oceans and Continents, Foundations of Maya Civilization, The Age of Exploration: origins, Life as a colonist, Causes of the American Revolution: the French and Indian War, and more...</p> <a href="LoginPage_student.php" class="btn btn-danger">Learn More</a> </div> </div>
  • 71. 62 </div> <div class="col-md-4"> <div class="panel panel-success"> <div class="panel-heading"> <h4><i class="fa fa-fw fa-check"></i> Environmental Science</h4> </div> <div class="panel-body"> <p>Compare properties of materials, Identify living and nonliving things, Identify plants and animals, Observe and compare traits, Identify changes to Earth's surface,and many more</p> <a href="LoginPage_student.php" class="btn btn-danger">Learn More</a> </div> </div> </div> <div id="footer" style = "color:white;"> <h3 style = "text-decoration:underline; color:white;float:left;">Contact us on: </h3><br> <div class="col-md-4 " id = "social-icons"> <ul class="list-inline social-buttons"> <li> <a href="www.twitter.com"> <img src = "contact_us/Twitter.png" style = "width:50px;height:50px;border- radius:100%;"/> </a> </li> <li>
  • 72. 63 <a href="www.facebook.com"> <img src = "contact_us/Facebook.png" style = "width:50px;height:50px;border- radius:100%;"/> </a> </li> <li> <a href="www.google.com"> <img src = "contact_us/Linkedin.png" style = "width:50px;height:50px;border- radius:100%;"/> </a> </li> <li> <a href=""> <img src = "contact_us/WhatsApp.png" style = "width:50px;height:50px;border- radius:100%;"/> </a> </li> <li> <a href="www.facebook.com"> <img src = "contact_us/Google+.png" style = "width:50px;height:50px;border- radius:100%;"/> </a> </li> </ul> </div> </div> </div> </div>
  • 73. 64 <script src="js/jquery-3.1.1.min.js"></script> <script src="js/bootstrap.min.js"></script> </body> </html> connection.php <?php //Defining connection variables DEFINE('servername','localhost'); DEFINE('username','root'); DEFINE('password', ''); DEFINE('dbname','learningsystem2017'); // Create connection $conn = new mysqli(servername, username, password, dbname); // Check connection if ($conn->connect_error) { // Set session variables $_SESSION['connect_error'] = 'connect_error'; die("Connection failed: " . $conn->connect_error); } else{ // Set session variables $_SESSION['connect_success'] = 'connect_success'; } ?> GeographyTest1.php <?php require("connection.php");
  • 74. 65 $Sql ="SELECT * FROM `geography` WHERE subject_id ='GEO101' AND test_name = 'test1' "; if(!$result = $conn->query($Sql)) { echo $conn->error; exit(); } if($result = $conn->query($Sql)){ $questionNumber = 1; $answer = 1; $q = 0; $ans = ""; $score = 0; while($row=$result->fetch_assoc()){ $id = $row['test_id']; $question = $row['test_questions']; $option_A = $row['option_A']; $option_B = $row['option_B']; $option_C = $row['option_C']; $q++; ?> <html> <head><title>GEOGRAPY TEST 1</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap.min.css"> <script> function alertMessage(){ alert("WARNING!nPlease tick all questions.");
  • 75. 66 } </script> </head> <body> <form action="GEO101_test1_markingScript.php" method="POST" class="myform"> <div class = "well"> <label><?php echo$questionNumber.". ".$question;?></label><br> <input type="radio" name = "<?php echo $q; ?>" value = "<?php echo $option_A; ?>" ><?php echo $option_A; ?><br> <input type="radio" name = "<?php echo $q; ?>" value = "<?php echo $option_B; ?>" ><?php echo $option_B; ?><br> <input type="radio" name = "<?php echo $q; ?>" value = "<?php echo $option_C; ?>" ><?php echo $option_C; ?> </div> <?php $questionNumber++; $answer++; } } ?> <input type="submit" name="submit" onclick="alertMessage()"> </form> </body> </html> viewGEO101_results_pupil.php <?php require_once('Login_student.php'); $pupil_id = $_SESSION['id'];
  • 76. 67 ?> <html> <head> <title>GEOGRAPHY TEST RESULTS</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap.min.css"> <script> function alertMessage() { var x; if (confirm("WARNING!Are you sure?") == true) { x = "deleteENG101_Questions.php"; } document.getElementById("demo").innerHTML = x; } </script> </head> <body> <div class="fluid"> <h2 style="background-color: white;position: relative;text-align:center;font-size: 4.00em;color: #4CAF50; height: 10%;">YOUR GEOGRAPHY TEST RESULTS</h2> <table class="table table-hover"> <thead> <tr> <th>Pupil ID</th> <th>First Name</th> <th>Last Name</th>
  • 77. 68 <th>Test Name</th> <th>Subject ID</th> <th>Score</th> </tr> </thead> <tbody> <?php $r =0; $sql = "SELECT * FROM `tests` WHERE subject_id ='GEO101' AND pupil_id = '$pupil_id' "; $result = $conn->query($sql); $result = mysqli_query($conn,$sql) ; while($row = $result->fetch_assoc()) { $score = $row['score']; $pupil_id = $row['pupil_id']; $test_name = $row['test_name']; $subject_id = $row['subject_id']; $first_Name = $row['first_Name']; $last_Name = $row['last_Name']; ?> <tr> <td><?php echo $pupil_id; ?></td> <td><?php echo $first_Name; ?></td> <td><?php echo $last_Name; ?></td> <td><?php echo $test_name; ?></td>
  • 78. 69 <td><?php echo $subject_id; ?></td> <td><?php echo $score ; ?> </td> </tr> <?php $r++; } ?> </tbody> </table> LoginPage_teacher.php <?php session_start(); if(isset($_SESSION['id'])){ header("location:teacher.php"); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>TEACHER LOGIN</title> <link rel="stylesheet" href="bootstrap.min.css"> <link rel="stylesheet" href="Login.css"> </head> <body><div class = "container-fluid"> <div id ="Welcome"> <div class = "jumbotron" style = "margin: 0 auto;color:#4CAF50;"> <h2>Teacher Login</h2></div>
  • 79. 70 </div> <hr/> <form class="login-form" method = "POST" action="Login_teacher.php" > <div class="container"> <div class="top"> <h2 align="center" class="hidden" id="title"><span id="logo">Login to user account</span></h2> </div> <div class="imgcontainer"> <img src="login_avatar.svg" alt="Avatar" class="avatar" style = "height: 50px; width: 50px;border-radius:100%;" > </div> <div class = "login-container"> <br/> <input type= "text" required placeholder="Enter username" name = "user_name" maxlength="15"></input> <br/> <input type= "password" required placeholder="Enter password" size="20" name = "password" maxlength="20"></input> <br/> <div class ="login button"> <button class = "login_button" name="login_button">Login</button> <br/> </div> <h5 id="register"> <p><a href="SignUp_page.php"></p><br><br><br><br></p><br><br><br><br> </h5> <?php
  • 80. 71 if (isset($_SESSION['login_success'])) { echo '<div class="alert alert-success">You have been logged out...</div>'; unset($_SESSION['login_success']); } elseif(isset($_SESSION['login_failure'])) { echo '<div class="alert alert-danger">Incorret Username or password...</div>'; unset($_SESSION['login_failure']); } ?> </div> </div> </form> </div> </body> </html> AddQuestions_form.php <?php require_once("Login_teacher.php"); $session_subject_id = $_SESSION['subject_id']; ?> <!DOCTYPE html> <html> <head> <title>ADD QUESTIONS VIEW</title> <link rel="stylesheet" href="bootstrap.min.css"> <script>
  • 81. 72 function alertMessage(){ alert("WARNING!nFill in all fields."); } </script> </head> <body> <div id = "wrapper"> <div class = "container" > <h1 style = "margin-left:1%;color:#4CAF50;">ADD NEW <?php echo $session_subject_id ; ?> QUESTIONS</h1> <div class = "well"> <h2 style = "color:#4CAF50;float: left;margin-right:70%;text- decoration:underline;">SUBJECT IDs</h2><br><br><br><hr> <ul> <li class="text-danger"><?php echo $session_subject_id ;?></li> <hr> <hr> </ul> </div> <form action = "question_form.php" method = "post"> <div class="form-group"> <label for="subject_id">Enter Subject ID:</label> <input type="text" placeholder="Enter subject id here" value = "<?php echo $session_subject_id; ?>" class="form-control" autocomplete = "on" name = "subject_id" disabled="disabled"> </div> <div class="form-group"> <label for="subject_id">Enter Test name:</label> <input type="text" placeholder="Enter test name here" class="form-control" autocomplete = "on" name = "test_name" >
  • 82. 73 </div> <div class="form-group"> <label for="teacher_id">Enter Teacher ID:</label> <input type="text" placeholder="Enter teacher id here" class="form-control" autocomplete = "on" name = "teacher_id" > </div> <div class="form-group"> <label for="question_area">Enter question:</label> <textarea placeholder="Enter Questions here....." class="form-control" name = "question_area"></textarea> </div> <div class="form-group"> <label for="option_A">Enter Option A:</label> <input type="text" placeholder="Enter option A here" class="form-control" autocomplete = "on" name = "option_A" > </div> <div class="form-group"> <label for="option_B">Enter Option B:</label> <input type="text" placeholder="Enter option B here" class="form-control" autocomplete = "on" name = "option_B"> </div> <div class="form-group"> <label for="option_C">Enter Option C:</label> <input type ="text" placeholder ="Enter option C here" class="form-control" autocomplete = "on" name = "option_C"> </div> <div class="form-group"> <label for="answer">Enter answer:</label>
  • 83. 74 <input type ="text" placeholder="Enter answer here" class="form-control" autocomplete = "on"name = "answer" > </div> <input type="submit" value ="Submit" class="btn btn-danger btn-lg" name="submit_button" onclick = "alertMessage()"> </form> <?php if (isset($_SESSION['submit_success'])) { echo '<div class="alert alert-success">Submit successful!</div>'; unset($_SESSION['login_success']); } elseif(isset($_SESSION['submit_failure'])) { echo '<div class="alert alert-danger">Failed to submit</div>'; unset($_SESSION['login_failure']); } ?> </div> </body> </html> fileupload.php <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="css/indexstyle.css" />
  • 84. 75 </head> <body> <div id = "wrapper"> <div class = "container"> <form action="#" method="POST" enctype="multipart/form-data" id = "upload_form"> <h1><p>Select file to upload:</p></h1> <p><input type="file" name="fileToUpload" id="fileToUpload" value = "Choose file to upload"></p> <input type="submit" value = "Upload file" name = "submit" id = "submit_button" onclick = "uploadFile()"><br><hr> <h3 id = "status" style = "float: left; padding: 10px 10px 10px 10px; ">Upload progress Bar </h3> <progress id = "progressBar" value = "0" max = "100" style = "width:300px; height: 40px;float:left; "></progress><br><br><br><br><hr> <p id = "loaded_nd_total"></p> </form><br> <a href="ViewUploads.php" class="btn btn-default">Click here to See Uploaded Content</a> <?php include('upload.php'); ?> </div> </div> </body> <script type="text/javascript"> function _(el){ return document.getElementById(el); } function uploadFile(){
  • 85. 76 var file = _("fileToUpload").files[0]; //alert(file.name + " | " + file.size + " | " + file.type); var formdata = new FormData(); formdata.append("fileToUpload", file); var ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", progressHandler, false); ajax.addEventListener("load", completeHandler, false); ajax.addEventListener("error", errorHandler, false); ajax.addEventListener("abort", abortHandler, false); ajax.open("POST","upload.php"); ajax.send(formdata); } function progressHandler(event){ _("loaded_nd_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total + " bytes"; var percent = (event.loaded/event.total) * 100; _("progressBar").value = Math.round(percent); _("status").innerHTML = Math.round(percent) + "% Uploaded.......Please wait"; } function completeHandler(event){ _("status").innerHTML = event.target.responseText; _("progressBar").value = 0; } function errorHandler(event){ _("status").innerHTML = "Upload failed"; } function abortHandler(event){
  • 86. 77 _("status").innerHTML = "Upload aborted"; } </script> </html> viewENV101_results_teacher.php <?php session_start(); include('connection.php'); ?> <html> <head> <title>VIEW ENV. SCIENCE RESULTS IN DATABASE</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap.min.css"> function alertMessage() { var x; if (confirm("WARNING!Are you sure?") == true) { x = "deleteENG101_Questions.php"; } document.getElementById("demo").innerHTML = x; } </script> </head> <body> <div class="fluid">
  • 87. 78 <h2 style="background-color: white;position: relative;text-align:center;font-size: 4.00em;color: #4CAF50; height: 10%;">VIEW ENV. SCIENCE RESULTS IN DATABASE</h2> <table class="table table-hover"> <thead> <tr> <th>Pupil ID</th> <th>First Name</th> <th>Last Name</th> <th>Test Name</th> <th>Subject ID</th> <th>Score</th> </tr> </thead> <tbody> <?php $r =0; $sql = "SELECT * FROM `tests` WHERE subject_id ='ENV101' "; $result = $conn->query($sql); $result = mysqli_query($conn,$sql) ; while($row = $result->fetch_assoc()) { $score = $row['score']; $pupil_id = $row['pupil_id']; $test_name = $row['test_name']; $subject_id = $row['subject_id']; $first_Name = $row['first_Name']; $last_Name = $row['last_Name'];
  • 88. 79 ?> <tr> <td><?php echo $score ; ?> </td> <td><?php echo $pupil_id; ?></td> <td><?php echo $test_name; ?></td> <td><?php echo $subject_id; ?></td> <td><?php echo $first_Name; ?></td> <td><?php echo $last_Name; ?></td> </tr> <?php $r++; } ?> </tbody> </table> </body> </html> SignUp_page.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Pupil Registration Page</title> <link rel = "stylesheet" href = "SignUp_page.css" type ="text/css"> <link rel="stylesheet" href="bootstrap.min.css"> </head> <body>
  • 89. 80 <div id ="Welcome"> <h1>Add New Pupils To Database</h1> </div> <hr style = "width: 50%;"/> <center> <form class="login-form" method = "POST" action = "SignUp.php"> <div class="container"> <div class="top"> <h2 align="center" class="hidden" id="title"><span id="logo">Add New Pupil</span></h2> </div> <div class="imgcontainer"> <a href = "" ><img src="login_avatar.svg" alt="Avatar" class="avatar" style = "height: 50px; width: 50px;border-radius:100%;"></a> </div> <div class = "register-container"> <br/> <input type= "text" required placeholder="Enter user name" minlength ="3" name = "user_name" maxlength="20"/> <br/> <label for "first_name"></label> <br/> <input type= "text" required placeholder="Enter first name" minlength ="3" name = "first_name" maxlength="20"/> <br/> <label for "last_name"></label> <br/>
  • 90. 81 <input type= "text" placeholder="Enter last name" minlength ="3" name = "last_name" maxlength="20" required/> <br/> <label for ="password"></label> <input type= "password" name = "password" placeholder="Enter new password" size="20" maxlength="20" required/> <br/> <label for ="Confirm password"></label> <input type= "password" name = "password2" placeholder="Confirm password" size="20" maxlength="20" required/> <br/> <input type= "text" placeholder="P.o box " minlength ="3" name = "address" maxlength="20" required/> <br/> <br/> <input type= "text" placeholder="class_id " minlength ="3" name = "class_id" maxlength="20" required/> <br/> <div class = "radio_buttons" style = "text-align: left;margin-right:20px;"> <label for ="Choose Gender:">Choose Gender:</label><br> <input type="radio" name="gender" value="male" checked> Male<br> <input type="radio" name="gender" value="female"> Female<br> <input type="radio" name="gender" value="Other"> Other </div> <br/> <center> <div class = "Register_Button"> <input type = "submit" name = "Register" value = "Register" class ="submit_button"><br/> </div>
  • 91. 82 </center> </div> </div> </form> <?php if (isset($_SESSION['SignUp_failure'])) { echo '<div class="alert alert-danger">SignUp failure.</div>'; unset($_SESSION['Operation failure']); } elseif(isset($_SESSION['SignUp_success'])) { echo '<div class="alert alert-success">Operation success</div>'; header("location: ViewData.php"); unset($_SESSION['SignUp success']); } ?> </body> </html> ViewData.php <?php session_start(); require('connection.php'); $sql = "SELECT * FROM pupil"; $result = mysqli_query($conn,$sql) ; ?> <html>
  • 92. 83 <head> </head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap.min.css"> <script src="jquery.min.js"></script> <script src="bootstrap.min.js"></script> <body> <div id = "wrapper"> <div class="container"> <h2>PUPILS IN DATABASE</h2> <table class="table table-hover"> <thead> <tr> <th>Pupil ID</th> <th>Username</th> <th>Firstname</th> <th>Lastname</th> <th>Gender</th> <th>Class ID</th> <th>Address</th> <th>Options</th> </tr> </thead> <tbody> <?php $r =0; while($pupils = mysqli_fetch_object($result))
  • 93. 84 { $pupils->pupil_id; $pupils->user_name; $pupils->first_Name; $pupils->last_Name; $pupils->gender; $pupils->class_id; $pupils->address; ?> <tr> <td><?php echo $pupils->pupil_id; ?> </td> <td><?php echo $pupils->user_name; ?></td> <td><?php echo $pupils->first_Name; ?></td> <td><?php echo $pupils->last_Name; ?></td> <td><?php echo $pupils->gender; ?></td> <td><?php echo $pupils->class_id; ?></td> <td><?php echo $pupils->address; ?></td> <td><?php echo "<a href = 'delete.php?id = ".$pupils->pupil_id."'><button type = 'button' class = 'btn btn-danger btn-xs'>Delete</button></a>"?> <?php echo "<a href = 'edit_form.php?id= ".$pupils->pupil_id."'><button type = 'button' class = 'btn btn-default btn-xs'>Edit</button>"?></td> </tr> <?php $r++; }//end of while loop ?> </tbody> </table>
  • 94. 85 <?php if (isset($_SESSION['operation_failure'])) { echo '<div class="alert alert-danger">operation failure.</div>'; unset($_SESSION['Operation failure']); } elseif(isset($_SESSION['operation_success'])) { echo '<div class="alert alert-success">Operation success</div>'; unset($_SESSION['operation_success']); } ?> </div> </div> </body> </html>