Professional Documents
Culture Documents
Cambridge International AS and A Level Computing Advanced Level Unit 9691/04: Computing Project
Cambridge International AS and A Level Computing Advanced Level Unit 9691/04: Computing Project
!
!
Cambridge International AS and A Level Computing
Advanced Level
Unit 9691/04: Computing Project
!
!
Examination Series: June 2014
Project Name:
Candidate Name:
Candidate Number:
2402
Centre Name:
Centre Number:
ID047
!
!
!
!
!
Page 1 of 65
Table of Contents
(d)
Documentation
(i)
Systems
maintenance
documentation
...
59
(ii)
User
documentation
.
61
(e)
Evaluation
(i)
Discussion
of
the
degree
of
success
in
meeting
the
original
objectives
..
64
(ii)
Evaluate
the
clients
and
users
response
to
the
system
..
65
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Page 2 of 65
Bina Bangsa School is an international school based in Jakarta, which uses the
Cambridge O-Levels and A-Levels curriculum as its basis for teaching.
The typical academic year consists of 4 terms. For all terms, the grades will
consist of tests, quizzes, and homework. In addition to these, term 2 includes
grades from the Mid Year Exam, and term 4 includes grades from the Final
Year Exam.
The teachers of the school will be the end users for this project. It aims to
improve the system used for inputting and managing student grades, and the
generation of student progress reports (Term 1 and Term 3) and report cards
(Term 2 and Term 4).
be provided by the administration ocers for the teachers to make use of. This
data is created at the beginning of each academic year, when enrolment
commences.
!
!
Page 4 of 65
Investigation
The purpose of the investigation is to collect detailed information regarding the
current system in use, and the improvements that need to be made to the
system. An interview will be conducted to obtain this information. The
interviewee is Ms Ine Medyawati, a chemistry teacher and the head of the
Exam Committee. She manages the whole process of reviewing, mail merging
and printing the grade reports for each student.
!
Dear Ms Ine,
!
I would like to schedule an interview with you this Thursday, 25th of April. The
interview will consist of questions regarding the current grading system in use by
the teachers, and the planned new system that I am going to build. Thank you.
Regards,
Evan Putra Limanto
Evan: Can you give an outline of how the current system works?
Ms Ine: At the beginning of every academic year, we create a standard
spreadsheet template which already contains formulas that will allow us to
easily calculate the final grades that are required. Student grades that will be
input consist of homework, quizzes, tests, and practical exams (for laboratory
sciences). We update our spreadsheet files everyday. At the end of each term,
every teacher will need to submit his/her spreadsheet files to the
administration ocer. Mail merge is used to generate the grade reports for
students in each class. I will then supervise the printing process for the grade
reports. Finally, these will be distributed to the students through the form
teachers of each class.
Evan: Can you explain more about the mail merge process?
Ms Ine: Yes. I am in charge of the entire process. First, we will generate grade
report templates for each class, which contain predefined fields for us to merge
Page 5 of 65
data from spreadsheets. Every subject that each class takes will be included in
these templates. Then, mail merge software will be used to insert the student
name, class name, student ID, final grades, remarks and conduct into the grade
reports. This process is repeated for every class, so it is extremely tedious and
repetitive.
Evan: What methods of validation and verification are used to ensure that the
data input are entirely correct?
Ms Ine: Every time we input student grades, we double check with the paper
records to ensure that the values in the spreadsheet match with those in our
grade books. Once all the marks for each student has been collected over a
term, each of us look through all the individual records to ensure that there is
no missing information or spelling error. Also, the spreadsheet software helps
us to validate the marks, classes and student data by ensuring that they are in
the correct format.
Evan: What methods of security are used to ensure that other people are not
able to manipulate or view the grades?
Ms Ine: Every spreadsheet that contains student grades is protected by a
password. This ensures that no one but teachers is able to access these files to
modify or read the grades.
Evan: Are the spreadsheets backed up in case of a data corruption or loss?
Ms Ine:
Evan: What do you think are the major problems in using the current system?
Ms Ine: In my opinion, the whole process is too exhaustive. The processes of
data input, creating formulas, generating templates and printing the report
cards are too exhaustive and repetitive. If these were automated, it would save
us a lot of time.
Evan: What do you think are the necessary improvements that need to be
made to the current system?
Ms Ine: In my opinion, we need a new system which automates the input of
grades and generation of grade reports. Mail merging and the generation of
templates should be the primary features of this system.
!
!
!
!
!
!
!
Page 6 of 65
TEACHER
GENERATES GRADE
REPORTS FROM
TEMPLATES
START
STUDENTS SUBMIT
QUIZ/ASSIGNMENT/
TEST
TEACHER SUBMIT
REPORTS TO
ADMINISTRATION
OFFICER FOR PRINTING
TEACHER INPUTS
GRADE INTO
SPREADSHEET
IS TODAY
REPORT PRINTING
DAY?
No
END
Yes
Page 7 of 65
Hardware Requirements
Currently, all teachers have their own personal notebooks. Input methods
involve solely the keyboard and mouse, which are sucient.
As there are grade reports to be printed every academic term, the system will
be using the laser printer in the teachers room.
Software Requirements
The new system will have to be browser-based, to avoid operating system
compatibility issues. This will allow any browser-enabled device to use the new
system.
Requirement Specification
During the interview, Ms Ine specified certain aspects of the new system that
are to be present.
Page 8 of 65
Input Requirements
- Teachers will only be able to view and edit data for the subject classes they
are teaching.
- The administration ocers and the school principal will have full privileges
to modify and view any data excluding grades.
Processing Requirements
- System checks that all data are unique and are not repeated.
- Full validation checks on all inputs.
Output Requirements
- Grade reports generated every end of academic term, in the form of PDF
files.
- A summary page showing the final grades for each student in every class.
Miscellaneous Requirements
- A user-friendly interface, compatible with most browsers.
!
Design
Design Specification
The requirement specification has been agreed to by the end user. The following
design specification is how the requirements will be implemented into the new
system.
Input Requirement
Details
Processing Requirements
Details
!
!
Page 9 of 65
Output Requirements
Details
!
Miscellaneous Requirements
Details
!
Data Flow Diagrams
!
!
1.1 Receive
Submit coursework
Teachers receive
assignments, tests and
quizzes from students
Student
Informa7on
is
stored
in
spreadsheets
D1 Grades
Coursework
1.2 Input
Grade data
1.3 Output
Student
data
!
!
!
!
!
!
!
!
!
!
D2 Students
!
!
Page 10 of 65
!
Table Designs
!
CCA Table
Field Name
Field Type
Validation
Example
Origin
CCAID
Number
Serial Number
on creation.
Increments from
1. Required
value. Unique,
numeric values
only.
CCAName
Text
Required value.
Basketball
Entering it in the
CCA
Name of a class
Field Name
Field Type
Validation
Example
Origin
Use
ClassID
Number
Serial Number
on creation.
Increments from
1. Required
value. Unique,
numeric values
only.
ClassName
Text
Required value.
10 Automatic
following
creation of a
new CCA
Use
Automatically
generated
identification
Class Table
10 Automatic
following
creation of a
new class
Sec 2 Spurgeon
Entering it in the
Class form
Example
Origin
Automatically
generated
identification
Name of a class
Components Table
Field Name
ID
Number
Serial Number on
creation. Increments
from 1. Required
value. Unique, numeric
values only.
SubjectID
Number
Required value.
Numeric values only.
ComponentID
Number
Required value.
Numeric values only.
10 SubjectComponen ID of a subject
ts Table
component
ClassID
Number
Required value.
Numeric values only.
10 Class Table
ID of a class
TeacherID
Number
Required value.
Numeric values only.
10 Teacher Table
ID of a teacher
Name
Text
Required value.
Numeric values only.
10 Entering it in the
Components form
Name of a
component for a
specific subject
class
Page 11 of 65
10 Automatic
following creation
of a new class
Use
Automatically
generated
identification
ID of a subject
Field Type
Validation
Example
Origin
Use
TeacherID
Number
Required value.
Numeric values
only.
10 Teacher Table
ID of a teacher
ClassID
Number
Required value.
Numeric values
only.
10 Class Table
ID of a class
Field Type
Validation
Example
Origin
Use
ID
Number
Serial Number
on creation.
Increments from
1. Required
value. Unique,
numeric values
only.
10 Automatic
following
creation of a
new MYE / FYE
ID of a FYE /
MYE
StudentID
Number
Required value.
Numeric values
only.
10 Class Table
ID of a class
SubjectID
Number
Required value.
Numeric values
only.
10 Subject Table
ID of a subject
Grade
Number
Numeric values
only. Less than
or equal to 100.
58 Entering it in the
FYE form
Grade of a FYE /
MYE
NonAcademic Table
Field Name
Field Type
Validation
Example
ID
Number
Required value.
Numeric values
only.
10 Automatic
following
creation of a
new non
academic
subject
ID of a FYE /
MYE
StudentID
Number
Required value.
Numeric values
only.
10 Class Table
ID of a class
SubjectID
Number
Required value.
Numeric values
only.
10 Subject Table
ID of a subject
Grade
Character
Either A, B,
C, D, or E.
Origin
Entering it in the
Subject form
Use
Grade of a non
academic
subject
Page 12 of 65
Student Table
Field Name
Field Type
Validation
StudentID
Number
Serial Number
on creation.
Increments from
1. Required
value. Unique,
numeric values
only.
StudentName
Text
Required value.
Alphabetic
characters only.
Status
Text
Required value.
Either Active or
Inactive only.
Example
Origin
10 Automatic
following
creation of a
new student
John Doe
Use
ID of a FYE /
MYE
Entering it in the
Student form
Name of a
student
10 Entering it in the
Student form
Status of a
student
StudentCCA Table
Field Name
Field Type
Validation
Example
Origin
ID
Number
Serial Number
on creation.
Increments from
1. Required
value. Unique,
numeric values
only.
StudentID
Text
Required value.
Alphanumeric
characters only.
CCAID
Text
Required value.
Either Active or
Inactive only.
Grade1
Character
Either A, B,
C, D, or E.
Entering it in the
CCA form
CCA Grade of a
student in the
first semester
Grade2
Character
Either A, B,
C, D, or E.
Entering it in the
CCA form
CCA Grade of a
student in the
second
semester
10 Automatic
following
creation of a
new student
John Doe
Use
ID of a FYE /
MYE
Entering it in the
Student form
Name of a
student
10 Entering it in the
Student form
Status of a
student
!
!
!
!
!
!
!
Page 13 of 65
StudentClass Table
Field Name
Field Type
Validation
Example
Origin
Use
StudentID
Number
Required value.
Numeric values
only.
10 Student Table
ID of a student
ClassID
Number
Required value.
Numeric values
only.
10 Class Table
ID of a class
StudentFormClass Table
Field Name
Field Type
Validation
Example
Origin
Use
StudentID
Number
Required value.
Numeric values
only.
10 Student Table
ID of a teacher
Attendance1
Number
Numeric values
only.
10 Entering it in the
Form Class form
Attendance of
the student in
Semester 1
Attendance2
Number
Numeric values
only.
10 Entering it in the
Form Class form
Attendance of
the student in
Semester 2
Conduct1
Character
Either A, B,
C, D, or E.
Entering it in the
Form Class form
Conduct of the
student in
Semester 1
Conduct2
Character
Either A, B,
C, D, or E.
Entering it in the
Form Class form
Conduct of the
student in
Semester 2
MYERemark
Text
Alphanumeric
characters only.
Entering it in the
Form Class form
Remarks by the
form teacher for
the student in
Semester 1
FYERemark
Text
Alphanumeric
characters only.
Entering it in the
Form Class form
Remarks by the
form teacher for
the student in
Semester 2
!
!
!
!
!
!
!
!
!
Page 14 of 65
StudentGrades Table
Field Name
Field Type
Validation
Example
Origin
Use
ID
Number
Required value.
Numeric values
only.
10 Student Table
ID of a subject
component
grade of a
student
ComponentID
Number
Required value.
Numeric values
only.
10 Components
Table
ID of a
component
StudentID
Number
Required value.
Numeric values
only.
10 Student Table
ID of a student
Grade
Number
Numeric values
only. Less than
or equal to 100.
Entering it in the
Subject Teacher
form
Grade of the
student for a
specific subject
component
Field Name
Field Type
Validation
Example
Origin
Use
SubjectID
Number
Serial Number
on creation.
Increments from
1. Required
value. Unique,
numeric values
only.
SubjectName
Text
Required value.
Numeric values
only.
Mathematics
Entering it in the
Subject form
Name of a
subject
AddInfo
Text
Alphanumeric
characters only.
Level 2 (for
Chinese subject
only)
Entering it in the
Subject form
Miscellaneous
information
regarding a
subject
Subject Table
10 Automatic
following
creation of a
new subject
ID of a subject
!
!
!
!
!
!
!
!
!
!
!
Page 15 of 65
ComponentID
Number
Required value.
Numeric values
only.
10 SubjectCompon
ents Table
ID of a subject
component
SubjectID
Number
Required value.
Numeric values
only.
10 Subject Table
ID of a subject
ComponentName
Text
Alphanumeric
characters only.
ComponentPercentage Number
Example
Tests
Required value.
Numeric values
only.
Origin
Use
Example
Origin
Use
ID
Number
Serial Number
on creation.
Increments from
1. Required
value. Unique,
numeric values
only.
10 Automatic
following
creation of a
subject teacher
ID of a subject
teacher
TeacherID
Number
Required value.
Numeric values
only.
10 Teacher Table
ID of a teacher
SubjectID
Number
Required value.
Numeric values
only.
10 Subject Table
ID of a subject
ClassID
Number
Required value.
Numeric values
only.
10 Class Table
ID of a class
!
!
!
!
!
!
!
!
!
!
Page 16 of 65
Teacher Table
Field Name
Example
Origin
TeacherID
Number
Serial Number
on creation.
Increments from
1. Required
value. Unique,
numeric values
only.
TeacherName
Text
Required value.
Alphabetic
characters only.
John Doe
Entering it in the
Teacher Form
Name of a user
(Username of an
account)
Password
Text
Required value.
Alphanumeric
values only.
johndoe123
Entering it in the
Teacher Form
Password of an
account
Status
Text
Required value.
admin or
teacher only.
admin
Entering it in the
Teacher Form
Whether the
user is a teacher
or an
administration
officer
10 Automatic
following
creation of a
teacher
Use
ID of a teacher
Software
The new grading system will be run on web browsers; hence, it should be
compatible with almost any device and operating system.
Hardware
The minimum hardware requirements to run a web browser is minimal. 128 MB of
RAM and at least 100 MB of internal memory are sucient for the usage of the
new grading system.
Printer
The grade reports will be printed using the network laser printer in the teachers
room, the HP Deskjet P1003.
!
!
!
!
!
!
!
!
!
!
Page 17 of 65
Form Designs
Login Page
This form will be the login page for the new system. The user will enter his / her
username and password into the form, and click the Login button to log into the
system.
User Interactions
No
!
!
!
!
!
!
!
!
!
!
!
!
Interactions Details
1 Username
A text box where the user can input his / her username.
2 Password
A text box where the user can input his / her password.
3 Sign In
On clicking this button, the system validates the username and password, and
redirects the user the the appropriate page.
4 Reset
Page 18 of 65
User Interactions
Index
Interactions Details
1 Form Class A hyperlink to the Form Class page, which is only available for form
teachers.
!
!
!
!
!
!
!
!
!
!
2 MYE
A hyperlink to the Mid Year Exam page, where subject teachers can input
and edit grades specifically for the Mid Year Exam.
3 FYE
A hyperlink to the Final Year Exam page, where subject teachers can input
and edit grades specifically for the Final Year Exam.
4 Edit
A hyperlink which brings the user a page where data for the specified
component item can be edited.
5 Delete
6 Add
Page 19 of 65
User Interactions
Index
Interactions Details
1 Name
A text box where the name of the component item can be modified.
2 Grade
Each field contains the grade of the specified student, and is editable
by the user.
3 Update
On clicking this button, the all the grades for this component item will
updated in the database.
4 Back
This button will take the user to the previous page he / she visited.
Page 20 of 65
User Interactions
Index
Interactions Details
1 Name
2 Submit
Form Class
This form is where a form teacher can modify the non-academic data for each
student in his / her class. Clicking on an Edit button will allow the editing of data
for the specified student. Clicking on a CCA button will allow the adding,
removing, and editing of Co-Curricular Activities for that specific student.
User Interactions
Index
Interactions
Details
6 Edit
On clicking this button, the user will be redirected to a page where the students
non-academic data can be modified.
7 CCA
On clicking this button, the user will be redirected to a page where the student's
Co-Curricular Activities can be modified.
!
!
!
!
Interactions
Details
1 Fields
2 Submit
Page 21 of 65
!
Mid Year Exams / Final Year Exams
This form is where the MYE / FYE grades can be viewed and modified, for every
subject class the teacher is teaching.
User Interactions
Index
!
!
!
Interactions Details
1 Name
2 Grade
This field contains the grade of the student for his / her MYE or FYE.
3 Edt
On clicking this button, the user is able to edit the a specific grade.
Page 22 of 65
User Interactions
Index
!
!
!
Interactions
Details
1 Grade
This field is where the MYE / FYE grade of the student can
be changed and updated.
2 Submit
Page 23 of 65
User Interactions
Index
Interactions
Details
3 Grades
This field displays the current final grade of the student for
the specific subject, excluding the MYE and FYE.
4 Links
!
!
User Interactions
Index
!
!
Interactions
Details
1 Add CCA
2 Home
3 Edit
4 Remove
Page 24 of 65
User Interactions
Index
Interactions Details
1 Field
This field is where the name of the specified CCA can be modified.
2 Submit
User Interactions
Index
!
!
!
!
!
!
!
!
!
Interactions Details
1 Field
This field is where the name of the new CCA can be input.
2 Submit
On clicking this button, the new CCA will be added to the list.
Page 25 of 65
Modify Classes
This form is where the administration ocer can view, add, edit or remove data for
all the classes.
User Interactions
Index
Interactions Details
1 Add Class
On clicking this button, the user will be able to add a new class to the list.
2 Edit
On clicking this button, the user will be able to edit the specified class name.
3 Remove
On clicking this button, the specified class will be removed from the list.
Modify Class
This form is where the administration ocer can change the name of a specific
class.
User Interactions
Index
!
!
Interactions
Details
1 Class Name
2 Submit
Page 26 of 65
Add Class
This form is where the administration ocer can add a new class to the list.
User Interactions
Index
Interactions
Details
1 Class Name
This field is where the name of the new class can be input.
2 Submit
On clicking this button, the new class will be added to the list.
Modify Teachers
This form is where the administration ocer can view, add, edit or remove data for
all the teachers.
User Interactions
Index
Interactions
Details
1 Add Teacher
On clicking this button, the user will be able to add a new teacher or
administration officer to the list. This new record acts as an account for the
teacher to access the system.
2 Edit
On clicking this button, the user will be able to modify the data for the
specified person.
3 Remove
On clicking this button, the specified person will be removed from the list.
Page 27 of 65
!
Modify Teacher
This form is where the administration ocer can change data for a specific teacher.
User Interactions
Index
Interactions Details
1 Fields
These fields contain the requisite data for every teacher, and can be modified.
2 Submit
On clicking this button, all the data in the fields will be updated.
Add Teacher
This form is where the administration ocer can add a new teacher to the list.
User Interactions
Index
Interactions Details
1 Fields
These fields are requisite data to be filled in for every new teacher.
2 Submit
On clicking this button, the new teacher will be added to the list.
User Interactions
Index
Interactions
Details
1 Add Subject Teacher On clicking this button, the user will be able to assign a teacher to a specific
subject class.
2 Edit
On clicking this button, the user will be able to modify the subject teacher
data.
3 Remove
User Interactions
Index
!
!
Interactions Details
1 Fields
These drop down boxes allow the data of the subject teacher to be changed.
2 Submit
Page 29 of 65
User Interactions
Index
Interactions
Details
1 Add Form Teacher This button will allow the user to create a new form teacher assignment.
2 Edit
3 Remove
On clicking this button, the specified assignment will be removed from the list.
User Interactions
Index
Interactions
Details
1 Fields
These drop down boxes will allow the data of the form teacher to be changed.
2 Submit
Modify Subjects
Page 30 of 65
This form will allow the administration ocer to view, add, edit or remove data for
all the available subjects.
User Interactions
Index
Interactions
Details
1 Add Subject On clicking this button, the user is able to add a new subject to the list.
2 Edit
On clicking this button, the user is able to modify the data for a specific subject.
3 Remove
User Interactions
Index
Interactions Details
1 Fields
2 Submit
On clicking this button, the new subject will be added to the list.
Modify Students
This form will allow the administration ocer to view, add, edit or remove data for
all the students in the school.
Page 31 of 65
User Interactions
Index
Interactions
Details
1 Add Student On clicking this button, the user will be able to add a new student to the list.
2 Edit
On clicking this button, the user will be able to modify the data of the specified
student.
3 Remove
On clicking this button, the specified student will be removed from the list.
Modify Student
This form will allow the administration ocer to modify all the data of a student.
User Interactions
Index
!
!
!
!
!
!
!
!
!
Interactions
Details
1 Fields
These fields will allow the user to modify all the students data.
2 Submit
Page 32 of 65
Add Student
This form will allow the administration ocer to add a new student to the list.
!
User Interactions
Index
Interactions
Details
1 Fields
These fields will allow the user to input the student data.
2 Submit
On clicking this button, the new student will be added to the list.
Modify Components
This form will allow the administration ocer to view, add, edit or remove data for
all the components for each subject.
User Interactions
Index
Interactions
Details
1 Add Component On clicking this button, the user will be able to add a new subject
component.
2 Edit
On clicking this button, the user will be able to modify the data for a
subject component.
3 Remove
Page 33 of 65
!
Modify Component / Add Component
This form will allow the user to modify data for a specific subject component.
The form for adding a new component is the same.
User Interactions
Index
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Interactions
Details
1 Fields
These fields will allow the user to modify the data for the specific
component.
2 Submit
Page 34 of 65
Progress Report
!
Page 35 of 65
!
Report Card
Page 36 of 65
Also, the clean and sleek user interface is very user-friendly. It can be accessed
from any device which is browser-enabled, making it very accessible. Therefore,
this system can potentially be accessed outside the school, allowing teachers to
work at home.
Also, the database file could get very large quickly with each passing day. This
will potentially slow down the speed of the system. Therefore, it would be
good to change the database used from MySQL to a better database solution.
Currently, the system can only be accessed from within the school, when the
device is connected to the local network. A potential improvement would
therefore be to link the system to a website so that teachers can access it from
anywhere.
!
!
!
!
!
!
Page 37 of 65
File Size
Integer : 4 bytes
Text : 20 bytes (estimated)
Character : 1 byte
Table
Records
CCA
24
10
240
Class
24
20
480
Components
44
450
19800
FormTeacher
20
160
FYE
16
3000
48000
MYE
16
3000
48000
NonAcademic
13
2500
32500
Student
30
5500
165000
StudentCCA
52
2000
104000
StudentClass
500
4000
142
500
71000
StudentGrades
16
16000
256000
Subject
44
10
440
SubjectComponents
32
40
1280
SubjectTeacher
16
150
2400
Teacher
54
50
2700
StudentFormClass
Total (Bytes)
!
!
!
!
!
!
!
!
!
!
!
Total (KiloBytes)
756000
738
Page 38 of 65
Software Development
Program Listing
!
!
!
!
Page 39 of 65
Page 40 of 65
!
!
!
Page 41 of 65
!
!
!
Page 42 of 65
ii. Programming
Since most of the code are repetitive, only main program code will be shown
here. Most of the PHP code is quite self-explanatory.
1. home.php
<?php
require("include.php");
$bbs = new bbs("");
//if the user removes an item, this "if " will be executed
if(isset($_GET["remove"])){
$componentid = $_GET["remove"];
$bbs->conn->query("DELETE FROM `Components` WHERE `ID` = '$componentid'");
$bbs->conn->query("DELETE FROM `StudentGrades` WHERE `ComponentID` =
'$componentid'");
}
<body>
<div class="container">
<?=$bbs->navbar($_COOKIE["name"],"main")?>
<div class="row clearfix">
<div class="col-md-12 column">
<h3>Today is <?php date_default_timezone_set($userTimezone); echo date("l");?>. Below is
the list of classes you currently teach.</h3><br/><br/>
</div>
<div class="col-md-12 column">
<?php
//get teacher id from cookie
$tid = $teachers[$_COOKIE["name"]];
while($row = $rs->fetch_assoc()){
$sid = $row["SubjectID"]; $cid = $row["ClassID"];
$rs1 = $bbs->conn->query("SELECT * FROM `Subject` WHERE `SubjectID` = '$sid'");
$row1 = $rs1->fetch_assoc();
</body>
</html>
2. include.php
<?php
class bbs{
public $conn;
function __construct(){
//connecting to the database
$mysql_host = "localhost";
$mysql_database = "bbs2";
$mysql_user = "root";
$mysql_password = "root";
function formclass($class){
$q = mysql_query("SELECT * FROM `studentList` WHERE `class` = '{$class}'") or
die(mysql_error());
$str = "<table class='table table-bordered table-striped'>";
$str .= "<thead><tr><th>Name</th></tr></thead><tbody>";
while($row = mysql_fetch_array($q)){
$str .= "<tr><td>" . $row["name"] . "</td></tr>";
}
$str .= "</tbody></table>";
!
!
echo $str;
}
//contains code for the navbar
function navbar($name, $main = "admin1"){
Page 45 of 65
}
}
?>
3. login.php
<?php
require("include.php");
$bbs = new bbs(""); session_start();
//if the user is trying to log in, this "if " block will be executed
if(isset($_POST["user"]) && isset($_POST["pass"])){
//get username and password
$username = $_POST["user"];
$password = $_POST["pass"];
$bbs->header("login");
?>
<body>
<div class="container">
<div class="row">
<h1 align="center">BBS Grading System</h1>
<div class="col-md-6 col-md-oset-3">
<div class="panel panel-default">
<div class="panel-heading">
<span class="glyphicon glyphicon-lock"></span> Login</div>
<div class="panel-body">
<form class="form-horizontal" role="form" action="login.php" method="POST">
<div class="form-group">
<label for="user" class="col-sm-3 control-label">
Username</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="user" name="user"
placeholder="Username" required>
</div>
</div>
<div class="form-group">
<label for="pass" class="col-sm-3 control-label">
Page 47 of 65
Password</label>
<div class="col-sm-9">
<input type="password" class="form-control" id="pass" name="pass"
placeholder="Password" required>
</div>
</div>
<div class="form-group last">
<div class="col-sm-oset-3 col-sm-9">
<button type="submit" class="btn btn-success btn-sm">
Sign in</button>
<button type="reset" class="btn btn-default btn-sm">
Reset</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
3. generateReport.php
<?php
//function for generating report card
function generateAssess($name, $class, $teacher, $studentID, $ca, $sa, $attendance, $conduct,
$nonacademic, $remarks, $semester = 1){
$bbs = new bbs("");
$classes = array(); $subjects = array();
$rs = $bbs->conn->query("SELECT * FROM `Class`");
while($row = $rs->fetch_assoc()){
$classes[$row["ClassID"]] = $row["ClassName"];
}
$rs = $bbs->conn->query("SELECT * FROM `Subject`");
while($row = $rs->fetch_assoc()){
$subjects[$row["SubjectID"]] = $row["SubjectName"];
}
//the prewritten html code for the PDF
$html = "
<style>
@page { sheet-size: 210mm 325mm; }
hr{
background-color:black;
height:1px;
}
td{
text-align: center;
}
Page 48 of 65
table{
width:100%;
}
</style>
<div id='header' style='width:100%; height:auto; font-family:\"Times New Roman\", Times,
serif; margin:0; padding:0;'>
<img src='img/logo.png' width='125' height='100' style='margin:0; padding:0;margin-left:
280px;'><br/>
<p align='center' style='margin-top:0; padding-top:0; margin-bottom:0; padding-bottom:
0;'><b>
Kebon Jeruk<br/>
{$class}<br/>
<i>
Academic Transcript<br/>
Semester {$semeseter}
</i></b></p>
</div>
<div id='body' style='width:100%; font-family:\"Times New Roman\", Times, serif;'>
<p align='right' style='font-size:14px;'><b><i>December 2013</i></b></p>
<div style='float:left; display:inline; padding:0; margin:0; width:
450px;'><b><i>Name : {$name}</i></b></
div>
<div style='float:right; display:inline; padding:0; margin:0; width:210px;'><b><i>Student's
ID: " . $studentID . "</i></b></div>
<div style='display:inline; padding:0; margin:
0;'><b><i>Class : " . $class . "</i></
b></div>
<hr>
<table>
<tbody>
<tr><td></td><td><b><i>CA1</i></b></td><td><b><i>SA1</i></b></
td><td><b><i>Semester 1</i></b></td></tr>
<tr><td width='300' style='text-align:left;'><b><i>Subject</i></b></td><td></
td><td><b><i>Mid-Year Exam</i></b></td><td><b><i>Marks</i></b></td></tr>
<tr><td></td><td><b><i>(20%)</i></b></td><td><b><i>(25%)</i></b></
td><td><b><i>(45%)</i></b></td></tr>
</tbody>
</table>
<hr>
<table id='grades'>
<tbody>";
$sum = 0; $cnt = 0;
foreach($ca as $key=>$value){
$avg = roundToNearest($value * 20 / 45 + $sa[$key] * 25 / 45,1);
$cnt++; $sum += $avg;
}
$html .= "</tbody>
</table>
<hr>
<b><i><div style='display:inline;float:left;width:300px;padding:0;margin:0;'>Non Academic
Subjects</div>
<div style='display:inline;float:right;width:95px;margin-right:50px;padding:0;margin:
0;'>Grades</div></i></b>
<br/><hr>
<table>";
foreach($nonacademic as $key=>$val){
$html .= "<tr><td style='text-align:left;'><b><i>{$subjects[$key]}</i></b></td><td
style='float:right;' width='140'><b><i>{$val}</i></b></td></tr>";
}
$html .= "</table>
<br/><hr>
<div style='display:inline;float:left;width:250px;'><b><i>Weighted Average: " .
roundToNearest($sum / $cnt, 1) . "%</i></b></div>
<div style='display:inline;float:left;width:220px;'><b><i>Attendance: " . $attendance . "/95</
i></b></div>
<div style='display:inline;float:left;width:200px;'><b><i>Conduct: " . $conduct . "</i></b></
div>
<p><b><i>Remarks:</i></b> " . $remarks . "</p><br/><br/><br/><br/><br/><br/>
</div>
";
$foot = "<table style='position:absolute; bottom:0; margin-bottom:0; padding-bottom:0;'>
<tr><td width='20'></td><td width='165' style='border-bottom:1px solid black;'></td><td></
td><td width='165' style='border-bottom:1px solid black;'></td><td></td><td width='165'
style='border-bottom:1px solid black;'></td><td></td></tr>
<tr><td></td><td>Form Teacher</td><td></td><td>Ms. Martha Hapsari</td><td></
td><td>Parent</td></tr>
<tr><td></td><td></td><td></td><td>Principal</td><td></td><td></td><td></td></tr>
</table>";
$name = str_replace(' ', '', $name);
if(!file_exists('./pdf_dir/' . $class)){
mkdir('./pdf_dir/' . $class, 0777, true);
}
$filename = "./pdf_dir/{$class}/Report Card - {$name}.pdf ";
//output the PDF which contains the HTML code in the form of real items
$sz = array(210,297);
$pdf = new mPDF('c',$sz);
$pdf->WriteHTML($html);
Page 50 of 65
$pdf->SetHTMLFooter($foot);
$pdf->Output($filename,'F');
}
?>
3. addCCA.php
<?php
require("include.php");
$bbs = new bbs("");
//if the user has inserted an item
if(isset($_POST["CCAID"])){
$ccaid = $_POST["CCAID"]; $studentid = $_POST["StudentID"];
$rs = $bbs->conn->query("INSERT INTO `StudentCCA`
(`StudentID`,`CCAID`,`Grade1`,`Grade2`) VALUES('$studentid','$ccaid',' ',' ')");
header("location: editCCA.php?id=".$studentid);
}
$id = $_GET["id"];
$bbs->header("home");
$class = array(); $cca = array();
$rs = $bbs->conn->query("SELECT * FROM `Class`");
while($row = $rs->fetch_assoc()){
$classes[$row["ClassName"]] = $row["ClassID"];
}
$rs = $bbs->conn->query("SELECT * FROM `CCA`");
while($row = $rs->fetch_assoc()){
$cca[$row["CCAID"]] = $row["CCAName"];
}
?>
<body>
<div class="container">
<?=$bbs->navbar($_COOKIE["name"],"admin1")?>
<div class="row clearfix">
<div class="col-md-12 column">
<h3>Today is <?php date_default_timezone_set($userTimezone); echo date("l");?>.</h3><br/
><br/>
</div>
<div class="col-md-12 column">
<form class="form-horizontal" role="form" action="addCCA.php" method="post">
<div class="form-group">
<label class="col-sm-2 control-label">CCA</label>
<div class="col-sm-10">
<select class="form-control" name="CCAID"><?php foreach($cca as $k=>$v) echo "<option
value='{$k}'>{$cca[$k]}</option>";?></select>
</div>
</div>
<div class="form-group">
<div class="col-sm-oset-2 col-sm-10">
<button type="submit" class="btn btn-md btn-primary">Add</button>
Page 51 of 65
3. editCCA.php
<?php
require("include.php");
$bbs = new bbs("");
$bbs->header("home");
//if the user has removed an item
if(isset($_GET["remove"])){
$studentid = $_GET["sid"]; $ccaid = $_GET["remove"];
$rs = $bbs->conn->query("DELETE FROM `StudentCCA` WHERE `StudentID` =
'$studentid' AND `CCAID` = '$ccaid'");
}
<body>
<div class="container">
<?=$bbs->navbar($_COOKIE["name"],"main")?>
<div class="row clearfix">
<div class="col-md-12 column">
<h3>Today is <?php date_default_timezone_set($userTimezone); echo date("l");?>.</h3><br/
><br/>
</div>
<div class="col-md-12 column">
Page 52 of 65
3. editCCA.php
<?php
require("include.php");
$bbs = new bbs("");
if(!$bbs->redirect()) $bbs->movePage("login.php");
}
else{
//retrieve the data required to display the current CCA
$id = $_GET["id"];
$rs = $bbs->conn->query("SELECT * FROM `CCA` WHERE `CCAID` = '$id'");
$row = $rs->fetch_assoc();
$ccaname = $row["CCAName"];
}
$bbs->header("home");
?>
<body>
<div class="container">
<?=$bbs->navbar($_COOKIE["name"],"admin1")?>
<div class="row clearfix">
<div class="col-md-12 column">
<h3>Today is <?php date_default_timezone_set($userTimezone); echo date("l");?>.</h3><br/
><br/>
</div>
<div class="col-md-12 column">
<form class="form-horizontal" role="form" action="modifyCCAs.php" method="post">
<div class="form-group">
<label class="col-sm-2 control-label">CCA Name</label>
<div class="col-sm-10">
<?php echo '<input type="text" value="'.$ccaname.'" class="form-control"
name="CCAName" placeholder="CCA Name">'; ?>
</div>
</div>
<div class="form-group">
<div class="col-sm-oset-2 col-sm-10">
<button type="submit" class="btn btn-md btn-primary">Submit</button>
<?php if(isset($msg)) echo "<font color='red' style='margin-left:20px;'>".$msg."</font>";?>
</div>
<?php echo "<input type='hidden' name='CCAID' style='width:0px;height:0px;' value='".
$id."'>";?>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
!
!
!
!
!
!
!
Page 54 of 65
iii. Testing
The testing is done with mostly abnormal data and extreme data.
Test Plan
No
Objective
Test Data
Expected Outcome
Actual Outcome
3 Test if a grade
exceeding 100 can be
input into the system.
5 Test if a conduct
grade can be a
number
John123
Test 1:
Test 2:
Page 55 of 65
!
Test 3:
!
!
Test 4:
Test 5:
Page 56 of 65
Test 6:
!
!
iv. Installation
Alternatives Methods
Solution
Advantages
Disadvantages
Parallel Running
Phased Implementation
Pilot Running
Direct Changeover
The chosen implementation for this system will be parallel running. The other
methods were considered, but they are unsuitable, considering the size of the
Page 57 of 65
organisation. Parallel running allows for the evaluation of the eectiveness and
accuracy of the new system, while having the old system in place in case of a
failure.
Gantt Chart
Tasks
Duration (Days)
Installation
1/2
1/2
Make
adjustments
Show teacher
Day 1
Day 2
Day 3
Day 4
Day 5
1
1/2
User training
Solve issues
Changeover
1/2
Installation
- Install the completed solution on the schools server.
Make adjustments
- Alter system settings if required.
Show teacher
- Introduce and demonstrate the system to the teachers.
User training
- Done after introduction to teachers.
- Every teacher learns to use the system.
- Has guidance from the training documentation and the user guide.
Solve issues
- Answer any questions the teachers have.
- Solve all their issues.
!
!
!
Page 58 of 65
Changeover
- Teacher in charge signs o the solution, stating that they are satisfied with the end
result.
!
!
Documentation
Section References
Most of the sections required for the system maintenance documentation already
occur previously in this document :
Section
Page reference
39 - 42
10
Form Designs
18 - 34
43 - 54
17
!
!
!
!
!
!
!
!
!
!
Page 59 of 65
Back-Up Procedure
To back-up the system, a database dump can be done from the phpMyAdmin web
interface, in the Export tab.
To restore the system, the SQL dump can be uploaded to phpMyAdmin, and it will
completely restore all data tables.
!
Page 60 of 65
The MySQL database dump can be saved to a flash drive. To back-up the system,
use 2 USB flash drives with at least 2 GB of free space. One drive will be used to
make daily back-ups, and the other one will be used to make weekly backups.
!
ii. User documentation
!
A. Logging into the system
!
3. Enter the username and password given by the administration ocer, and click
on the Sign in button.
(1)
(2)
(3)
1. This is the home page you will be taken to once you log in. It shows all the
classes you teach and all the component items that have been created for each
subject class. Here, you can perform a few actions.
Page 61 of 65
2. Clicking on (1) will allow you to add one item of that component to this
subject class.
3. Clicking on (2) will allow you to edit all the grades of the students in the
subject class, for the specified component item.
4. Clicking on (3) will delete that specific component item.
5. Clicking on Form Class will allow you to view and edit form class data.
6. Clicking on MYE or FYE will allow you to view and edit the MYE and
FYE grades for all your students.
1. This is the home page you will be taken to once you log in. It shows you all the
students in each class, and their current final grades for each subject.
2. To generated a report card or progress report, click on their respective buttons.
3. The navigation bar at the top of the page contains many links to other pages in
the system.
Page 62 of 65
1. Each field in the Grade column corresponds to each student. The name of the
component item and the grades can all be modified.
2. On clicking the Update button, all the data will be updated.
D. Form Class
1. This page displays all students of your form class, and the respective attendances
and conducts.
2. On clicking the Edit button, you will be able to edit the attendance, conduct
and remarks for the student in semester 1 and semester 2.
3. On clicking the CCA button, you will be able to add / remove CCAs for that
student, and change his CCA grades.
E. Editing / Adding
!
!
Page 63 of 65
1. This is a page where you can view all the available CCAs. Also, you can add,
edit or remove a CCA here.
2. The other pages where you can add, remove or modify data are similar in their
operations.
3. To edit data for a specific CCA, click the Edit button.
4. To remove a CCA, click the Remove button.
5. To add a CCA, click the Add CCA button.
!
!
Evaluation
Details
Evidence
Miscellaneous Requirements
Details
Evidence
A user-friendly interface,
compatible with most
browsers.
Page 64 of 65
Output Requirements
Details
Evidence
Input Requirement
Details
Evidence
From the evaluation and evidence presented, it can be concluded that all
requirements are fully met.
According to her:
- The design is very clean and user friendly. The system is very easy to work with,
even without a user manual.
- The system can be used for a few years ahead. However, along the way, some
adaptive maintenance has to be done.
- The system has fulfilled all of her requirements, and will certainly ease the jobs of
teachers and save a lot of their time.
Page 65 of 65