Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
KEMAMAN ZOO TICKETING SYSTEM (KZTS)USING FILTERING METHOD
NUR AIRA FAZLEEN BINTI MOHD ROSDI
BACHELOR OF COMPUTER SCIENCE
(SOFTWARE DEVELOPMENT) WITH HONOURS
UNIVERSITI SULTAN ZAINAL ABIDIN
2018
KEMAMAN ZOO TICKETING SYSTEM (KZTS)
USING FILTERING METHOD
NUR AIRA FAZLEEN BINTI MOHD ROSDI
BACHELOR OF COMPUTER SCIENCE (SOFTWARE DEVELOPMENT)
WITH HONOURS
FACULTY OF INFORMATICS AND COMPUTING
UNIVERSITI SULTAN ZAINAL ABIDIN, TERENGGANU, MALAYSIA
AUGUST 2018
i
DECLARATION
I hereby declare that this report is based on my original work except for quotations
and citations, which have been duly acknowledged. I also declare that it has not been
previously or concurrently submitted for any other degree at Universiti Sultan Zainal
Abidin or other institutions.
________________________________
Name : ..................................................
Date : ..................................................
ii
CONFIRMATION
This is to confirm that:
The project work entitled “Kemaman Zoo Ticketing System (KZTS) Using Filtering
Method” being submitted to Universiti Sultan Zainal Abidin (UniSZA) by Nur Aira
Fazleen Binti Mohd Rosdi with matric number BTAL15040798 has been found
satisfactory in terms of scope, quality and presentation as partial fulfillment for the
awarded degree of Bachelor of Computer Science (Software Development) With
Honours. This project is a bonafide record of work conducted by her, under my
guidance and supervision.
________________________________
Name : ..................................................
Date : ..................................................
iii
ACKNOWLEDGEMENT
First and foremost, I thank to Allah the Most Gracious and the Most Merciful for His
blessing in giving me the opportunity to undergo and complete this stage of life and
my studies in finishing up this final year project report. Throughout the whole process,
I took in a great amount of stress and worries. I would love to thank everyone who
walked with me and for me through the time. My parents, my beloved siblings, my
dear The Fated Five friends and of course, my valued supervisor, Puan Hasni Binti
Hassan. Puan Hasni had showered me with her guidance, patience, kindness and
touching words. She was so helpful that it motivated me to work harder. Thank you
again everyone for everything.
Lastly, thank you to Sultan Zainal Abidin University’s Faculty of Informatics and
Computing for giving me the chance to discover and explore my abilities then more
skills in computing while working through this project.
iv
ABSTRACT
Zoological Park or commonly known and called as zoo, is the place where animals
are housed within enclosures, displayed to the public, and in which they may also be
bred. This Kemaman Zoo Ticketing System (KZTS) Using Filtering Method deals
with the ticketing of visitors to Kemaman Mini Zoo and Recreational Park (TRZK).
Using this system, users can view, opt for their preferred tickets and buy those entry
tickets offered by the Kemaman Mini Zoo and Recreational Park. Different prices are
offered appropriate according to the choices made by the users. There will be lesser
need for them to be at the venue and get in lines for example just to buy the tickets.
After selecting tickets or packages and making the online payment, they’ll be
provided with the invoice regarding the purchases made. Currently, the ticketing is
managed manually by the manager and staffs at the zoo. Manual information
management is time-consuming and inefficient. Storing all the important information
digitally not only can reduce the manual effort, time and use of papers but also
minimizes errors in the management of the data. The methodology implemented into
this system is filtering method and later, the System Usability Scale (SUS) approach
will be used to measure the functionality and effectiveness of the system.
v
ABSTRAK
Taman haiwan atau lebih dikenali sebagai zoo adalah tempat dimana pelbagai jenis
haiwan ditempatkan secara berkumpulan di suatu tempat, kemudian, dipamerkan
kepada orang awam. Zoo juga boleh dikatakan tempat dimana haiwan-haiwan ini
akan dibiakkan dan dibesarkan. Sistem ‘Kemaman Zoo Ticketing System (KZTS)
Using Filtering Method’ ini adalah untuk menguruskan pembelian tiket ke Taman
Rekreasi dan Mini Zoo Kemaman (TRZK) secara atas talian. Melalui sistem ini,
pengunjung boleh melihat jenis-jenis tiket dan tawaran eksklusif yang disediakan,
pilih jenis tiket yang diingini dan secara terus, membeli dan membuat bayaran.
Harga yang berlainan akan ditawarkan kepada pengguna bersesuain mengikut jenis
tiket yang dipilih mereka. Ini adalah untuk memudahkan mereka untuk tidak beratur
lama di kaunter untuk membeli tiket. Setelah pembelian selesai dengan bayaran yang
diterima oleh sistem, mereka akan diberikan invois atau resit elektronik sebagai bukti
pembelian. Pada masa ini, setiap pengurusan oleh pengurus zoo dan staf-stafnya
tentang tiket adalah secara manual. Pengurusan maklumat secara manual adalah
mengambil masa dan tidak cekap. Pengurusan maklumat secara digital atau ‘online’
bukan sahaja mampu mengurangkan tenaga manual malah boleh mengurangkan
masa, penggunaan kertas serta kesilapan dalam menguruskan maklumat tersebut.
Teknik yang akan digunakan ke atas sistem ini adalah teknik ‘filtering’ dan kemudian,
mempraktikkan pendekatan ‘System Usability Scale (SUS)’ untuk mengukur
keberkesanan fungsi sistem.
vi
TABLE OF CONTENTS
CHAPTER TITLE PAGE
DECLARATION i
CONFIRMATION ii
ACKNOWLEDGEMENT iii
ABSTRACT iv
ABSTRAK v
TABLE OF CONTENTS vi
LIST OF TABLES ix
LIST OF DIAGRAMS x
LIST OF ABBREVIATIONS xiv
LIST OF APPENDICES xv
1 INTRODUCTION 1
1.1 BACKGROUND 1
1.2 PROBLEMS STATEMENT 3
1.3 OBJECTIVES 5
1.4 SCOPES
1.4.1 ADMINISTRATOR
1.4.2 USERS
6
6
7
1.5 REPORT ORGANIZATION 8
2 LITERATURE REVIEW 9
vii
2.1 INTRODUCTION 9
2.2 RELATED LITERATURES 10
2.3 REVIEW OF COMPARISON 16
2.4 CHAPTER SUMMARY 17
3 METHODOLOGY AND SYSTEM DESIGN 18
3.1 INTRODUCTION 18
3.2 PROJECT METHODOLOGY
3.2.1 FILTERINGMETHOD
3.2.2 SYSTEM USABILITY SCALE (SUS)
19
19
21
3.3 SOFTWARE AND HARDWARE
REQUIREMENTS
3.3.1 HARDWARE
3.3.2 SOFTWARE
3.3.3 WORKSPACE
24
24
25
25
3.4 CONTEXT DIAGRAM 26
3.5 DATA FLOW DIAGRAM
3.5.1 DFD LEVEL 0
3.5.2 DFD LEVEL 1
28
28
31
3.6 ENTITY RELATIONSHIP DIAGRAM 37
3.7 FRAMEWORK OF SYSTEM 38
3.8 CHAPTER SUMMARY 40
4 IMPLEMENTATION 41
4.1 INTRODUCTION 41
4.2 DATABASE DESIGN 42
viii
SPECIFICATION
4.3 USER MANUAL (USER) 47
4.4 USER MANUAL (ADMINISTRATOR) 56
4.5 CHAPTER SUMMARY 73
5 TESTING AND RESULT 74
5.1 INTRODUCTION 74
5.2 TESTING APPROACH 75
5.3 TESTING AND ANALYSIS
RESULTS/SCREENSHOTS
77
5.4 CHAPTER SUMMARY 83
6 CONCLUSION AND DISCUSSION 84
6.1 INTRODUCTION 84
6.2 PROJECT CONTRIBUTION 85
6.3 PROJECT CONTRAINTS 86
6.4 FUTURE WORK 87
6.5 CONCLUSION 88
REFERENCES 89
APPENDICES 91
ix
LIST OF TABLES
NO. OF
TABLE
TITLE PAGE
2.2 RELATED LITERATURES TO PROPOSED
SYSTEM
10-15
4.2.1 TABLE ‘ADMIN’ 42
4.2.2 TABLE ‘USER’ 43
4.2.3 TABLE ‘TICKET’ 44
4.2.4 TABLE ‘SALE’ 45
4.2.5 TABLE ‘PAYMENT’ 46
x
LIST OF DIAGRAMS
NO. OF
FIGURE
TITLE PAGE
1 SUS Score Comparison 23
2 Context Diagram 26
3 Data Flow Diagram Level 0 28
3.1 DFD Level 1 Login Process 31
3.2 DFD Level 1 Manage Profile Process 32
3.3 DFD Level 1 Manage Ticket Process 33
3.4 DFD Level 1 Manage Order Process 34
3.5 DFD Level 1 Payment Process 35
3.6 DFD Level 1 Report Process 36
4 Entity Relationship Diagram 37
5 Framework Of System 38
4.3.1 Homepage for user 47
4.3.2 Registration interface for new users 48
4.3.3 Interface for login page 48
4.3.4 Interface for users to update their profiles 49
4.3.5 Part of the interface of the page for users to
purchase tickets
49
4.3.6 Interface for users to purchase tickets (1) 50
xi
Interface for users to purchase tickets (2)
Interface for users to purchase tickets (3)
51
52
4.3.7 Interface for users to update their preference of
the ticket (date/quantity) before checking out
52
4.3.8 Interface for users to delete the type of ticket
placed before checking out
53
4.3.9 Interface for users on checkout procedure (1)
Interface for users on checkout procedure (2)
53
54
4.3.10 Interface for showing that the order has been
placed and will be processed
54
4.3.11 Receipt of proof for purchases made could be
viewed and downloaded
55
4.4.1 Homepage for administrator after a successful
login with displayed username of the
administrator
56
4.4.2 Login interface for administrator 57
4.4.3 Registration page for admin (1)
Registration page for admin (2)
58
58
4.4.4 Interface for administrator to update profile (1)
Interface for administrator to update profile (2)
59
59
4.4.5 Interface to add new tickets 60
4.4.6 Interface to update tickets (1)
Interface to update tickets (2)
61
61
4.4.7 Interface to delete tickets (1)
Interface to delete tickets (2)
62
62
xii
4.4.8 Interface for updating the orders placed by users
(1)
Interface for updating (total, status) the orders
placed by users (2)
63
63
4.4.9 Interface for administrator to delete order from
the list
64
4.4.10 Interface for updating the payments made by
users (1)
Interface for updating the payments (Order ID,
phone number, email, total, method, status) made
by users (2)
64
65
4.4.11 Interface for administrator to delete payment
from the list
66
4.4.12 Interface of users list 66
4.4.13 Interface of a list of tickets 67
4.4.14 Interface of a list of all sale/orders submitted by
users and have been updated by administrator
68
4.4.15 Interface of a list of all payments submitted by
users and have been updated by administrator
69
4.4.16 The filtering of first name and last name of users
at a part of the list of users list page (input is
entered)
The filtering of first name and last name of users
at a part of the list of users list page (result)
70
70
4.4.17 The filtering of first name and last name of users 71
xiii
at a part of the list of orders list page
4.4.18 The filtering of first name and last name of users
at a part of the list of payments list page
72
5.3.1 Administrator does not key in password whenlogging-in
77
5.3.2 Administrator need to fill in the form completely
to register/add a new kind of tickets
78
5.3.3 Administrator need to fill in the form completely
to update ticket
79
5.3.4 Adding new ticket is successful by the
administrator
79
5.3.5 Administrator successfully updated a ticket 80
5.3.6 Administrator successfully deleted a ticket 80
5.3.7 User successfully log in into the system/website 81
5.3.8 User successfully checkout the order 81
5.3.9 User successfully placed an order 82
5.3.10 User clicked on the LOGOUT button to logout 82
xiv
LIST OF ABBREVIATIONS / TERMS / SYMBOLS
KZTS Kemaman Zoo Ticketing System
TRZK Kemaman Zoo and Recreation Park
SUS System Usability Scale
ZIMS Zoo Information Management System
PHP Hypertext Preprocessor
DB Database
RFID Radio Frequency Identification
ISIS International Species Information System
CD Context Diagram
DFD Data Flow Diagram
ERD Entity Relationship Diagram
xv
LIST OF APPENDICES
APPENDIX TITLE PAGE
A SUS FORMS 91
B SUS RESULT 92
C CODING 94
1
CHAPTER 1
INTRODUCTION
1.1 BACKGROUND
A zoo, short for zoological park is also known as a menagerie, is the common
facility known to keep many kinds of animals in a place at the same time and for
public viewing. In the facility, they may be bred for the continuity of their breed at
the park.
The term "zoological garden" refers to zoology, the study of animals, a term
deriving from the Greek zōon ('animal’) and lógos ('study'). The abbreviation "zoo"
was first used of the London Zoological Gardens, which was opened for scientific
study in 1828 and to the public in 1857. (Wikipedia, 2018)
The animals in the park could be animals taken from their own natural habitats,
animals that are injured and therefore, saved or they could also be the offspring of
2
other zoo animals. Zoo animals live in enclosures that often attempt to replicate their
natural habitats or behavioral patterns, for the benefit of both the animals and visitors.
There are many types of zoos existed nowadays. The type varies from safari
parks, aquariums, roadside zoos, petting zoos and animal theme parks. These variety
of zoos places different kinds of animals suitable to the environment of their natural
habitats accordingly.
3
1.2 PROBLEMS STATEMENT
Kemaman Zoo and Recreation Park (TRZK) was opened in 11 August 2009 and
is the only zoo located in the East Coast Zone of Peninsular Malaysia. With a breadth
of 35 acres, is the combination of mini zoo, garden, fruits, herbs, orchid, tropical
plants, bonsai, water theme park and the biggest natural habitat of animals in
Terengganu state.
TRZK is home to 54 different species including lions, tigers, elephants, orang
utans, crocodiles copper, various species of birds and various more. TRZK is located
at a strategic location that can be reached by road namely Jalan Mak Chili and Jalan
Kerteh or by water namely Bukit Kuang River.
TRZK plays an important role as center of wildlife conservation and reservation
besides empowering knowledge about flora and fauna to visitors. However, TRZK
does not have an existing system that would let the users or visitors to make a quick
and easy purchases of entry tickets to the mini zoo. Therefore, TRZK is lacking an
online ticketing system.
The need for this Kemaman Zoo Ticketing System Using Filtering Method is
concerned with the Kemaman Zoo and Recreation Park (TRZK) information handling
and keeping all of the data in the most proper way without errors. Also, to make sure
4
TRZK maximizes the sale of tickets yearly in the most efficient and systematic way
of conduct.
The main focus of this whole system is to provide an easy access to users in
purchasing tickets to the zoo. It is unfortunate that there is not an existing system to
TRZK that actually applies that matter to the public yet. As there are many animals
been put at the zoo currently alongside other attractions, the management of the
whole zoo including ticketing-wise is burdensome to the manager and staffs. An
online ticketing system that could replace the manual system is a big time saviour for
them.
5
1.3 OBJECTIVES
Objectives are crucial in every project development as they are to be
implemented into the system and are keys to solve problems arisen from the project.
There are a few important objectives in this Kemaman Zoo Ticketing System (KZTS)
Using Filtering Method and they are as stated below :
1) To design a ticketing system that can manage online ticketing of tickets to
visitors of TRZK.
2) To develop the proposed system by implementing the filtering method for the
convenience of the administrator.
3) To test the functionality and effectiveness of the proposed system using System
Usability Scale (SUS) approach.
6
1.4 SCOPES
The scope for this proposed system is the people who manages the Kemaman
Zoo and Recreation Park (TRZK), Kemaman, Terengganu, Malaysia. This system is
for the manager or the administrator in the effort to assist him/her in managing the
ticketing. Also, for users or online visitors of the system. Therefore, there are two
types of entities in this system.
1.4.1 ADMINISTRATOR
One of the type of users in the system is the administrator. There could only be
one administrator at a time managing the system entirely. Administrator needs to be
successfully logged-in in order to manage the system. Administrator can manage the
users of the system. Then, the administrator can manage the ticketing to visitors of
TRZK. The administrator can register new types of tickets by carefully entering the
detailed data. Later, updating the data of the tickets like the types and prices to name
a few. Updating is important because for example, prices of tickets could be seasonal,
changes according to numbers of people and there could also be discounts. The
administrator can delete or remove certain data of tickets or a certain ticket as a whole
from the system too. Last but not least, the administrator is able to generate reports of
the ticketing.
7
1.4.2 USERS
The other target user of this proposed system is the users or online visitors that
are interested in zoos and parks. They are interested into purchasing entry tickets to
TRZK. Users do not need to be a member or log-in into the system to browse through
the website. This is to ease the access for possible visitors of the zoo to gather
information and when they have made the decision to pay a visit to TRZK, they can
purchase tickets after registration and logging-in into the website. The details and
related information of the tickets will be displayed on the website then. There will be
choices and options asked and users need to choose the choices according to their
needs so that in the end, they will be purchasing the right ticket. A quick and easy
online payment is to be done and later, receipts or invoice of the purchases will be
sent to the users’ accounts for proof. Users could also opt for the manual transferring
method for the payment of their orders.
8
1.5 REPORT ORGANIZATION
CHAPTER 1 of this document explains on this proposed system of which it
involves the background introduction to zoo, problems statement, objectives, and
scopes of the system. Next, CHAPTER 2 explains on the literature reviews of the
related literature to the topic of this proposed system. It includes a review of the
existing system, comparison of aims and objectives of the systems, a research on the
techniques used by them, findings, a review of comparison and conclusion that can be
made from the literature review. Later, in CHAPTER 3, the methodology or
technique in use for the development of this system is discussed. As well as an
analysis of the system requirements specification and the process models designed for
the system. CHAPTER 4 discusses on the data modelling, interface design and
system menu design of the system. Meanwhile, CHAPTER 5 is about the
implementation and testing of the developed system. Conclusion of this proposed
system and of the whole project is included in the last chapter of this document,
CHAPTER 6. Lastly, APPENDIX is where the collected SUS forms, it’s result and
some coding writings are placed in this report.
9
CHAPTER 2
LITERATURE REVIEW
2.1 INTRODUCTION
In this second chapter, continuation on the previous researches, articles and
existing or similar systems related to Kemaman Zoo Ticketing System (KZTS) Using
Filtering Method is done. This literature review will reveal the research done for some
of the existing systems that are found to be similar for comparison of aim or
objectives and methodology mainly. The reason for a research like this is to help
understanding the system to be developed with the possible most suitable
methodology for execution into the system. Other than that, is to give the developer
more ideas and an in-depth look into developing the system. The research is displayed
in a table for easy review to readers.
10
2.2 RELATED LITERATURES
No. Year Title
and
Authors
Aims or
Objectives
Methodology Findings Conclusions
1 April
2012
Zoo
Informa
tion
Manage
ment
System
(ZIMS)
;
Thiruth
aniyesa
n
Kanaga
sabai
To manage
information
handling
and keeping
all the data
in a proper
way that can
be
maintained
without any
error data.
To maintain
the visitor
entries by
providing
the entry
tickets to be
saved into
the
Cloud
Computing
The system
is developed
as requested
to replace
and improve
the existing
manual
system of
Anna
Zoological
Park.
This ZIMS
system is
helpful and
convenient
in
managemen
t to the
manager
and staffs.
The staffs
could
maintain the
animals’
details very
efficiently.
11
database.
To keep
track of
animals
data.
2 2017 DBMS
Mini
Project
-
Wildlife
Sanctua
ry
Manage
ment
System
; Aadil
Shaikh
To design a
system for
smooth
administrati
on and to
get a brief
idea of the
overall
expenses
and profit
the
sanctuary
deals.
To create a
backup of
the tourist
data which
includes
This report
discusses the
result of the
work done in
development
of Wildlife
Sanctuary
Management
on PHP as
the front-end
platform and
“Mongo DB”
as the
back-end
platform.
Specifying
the
application
and various
components
of the
architecture.
Specifying
the bindings
between the
tasks and
the
resources
either
manually or
by the
design.
The system
with this
technology
are very
fast,
accurate,
and reliable.
12
their ticket
details, the
fare they
pay and the
donations
they make.
3 2008 WEBM
OZIS –
Web-Ba
sed and
Mobile
Zoo
Informa
tion
System
- A
Case
Study
For The
City Of
Osnabru
eck ;
Ulrich
Michel,
Christia
To
develop a
mobile zoo
information
system for
Pocket PCs
and smart
phones
(Michel, U.,
2007).
Spatial
Database ,
Mobile
Application,
3D
Visualization
The visitor
will be able
to access for
example a
map
displaying
the natural
distribution
area of the
animal, to
see
pictures of
this area,
short video
clips
showing the
animal in
action
and/or in his
The online
visitors not
only be able
to view the
information
on the
animals but
also to view
in 3D the
animals in
their
habitats
through the
application.
13
n Plass,
Cons
tanze
Tschritt
er,
Manfre
d Ehlers
natural
environment
, hear
animal
sounds, or
listen to
interviews
with the zoo
keepers and
veterinarian.
4 2014 E-Ticke
ting
Systems
In
Culture
and
Tourism
:
Experie
nces
From
Croatia
;
Vedran
Majstor
"Pay- As-
You -Go"
feature
(paying for
the actual
distance
travelled).
To create a
system that
has
increased
usability .
Cloud-Ticket
ing, RFID
Electronic
ticketing is
associated
with travel
and
specifically
with the use
of a
transportatio
n service.
The
customer
obtains an
electronic
This system
uses the
concept of
the new
trend which
is
cloud-ticket
ing.
Among
benefits of
cloud-ticket
ing are that
it supports
for multiple
client types
14
ovic ticket
medium
(smart card)
which is the
storage
location for
electronic
tickets.
and it has
better
maintainabil
ity.
5 2015 Online
Airline
Ticketin
g
System
;
Pooja
Gautam
To provide
the access to
hundreds of
flight paths,
their prices
and other
services at
the click of
a button.
Client-server
Architecture
E-commerc
e related
system
Ticketing of
airline made
purchases
online
possible to
many
audiences
effectively.
6 2012 The
Effect
of
Experie
nce on
System
Usabilit
y Scale
To look at
the effects
of user
profiles on
ratings for
commercial
products.
System
Usability
Scale (SUS)
SUS is a
useful,
practical
quantitative
tool for
supplementi
ng more
direct
SUS ratings
are
influenced
by several
factors in
addition to
the usability
of the
15
Ratings;
Sam
McLella
n,
Andrew
Muddi
mer and
S.Camil
le Peres
To find the
effectivenes
s of SUS on
a system.
observations
or reviews
about
software
use.
product
being
evaluated.
There are
factors like
user
experience
that our
own
practical
experience
shows can
dramatically
affect
overall SUS
scores for
domain
products.
TABLE 2.2 : RELATED LITERATURES TO PROPOSED SYSTEM
16
2.3 REVIEW OF COMPARISON
In comparison to all the mentioned systems, it is found that most of them uses the
methodology of cloud computing in designing their systems. Then, techniques of
mobile computing or application and RFID are also used by certain systems. Mostly,
these systems that currently exist and used were built to store and manage a collection
of data on the animals in certain zoos specifically and then, to keep records of the
ticketing to the zoos. Other than that, there are also systems that uses the
methodology System Usability Scale (SUS) but they are not the kind of systems that
have direct connection or to solve problems of ticketing to a zoo. Zoo Information
Management System (ZIMS) by Thiruthaniyesan Kanagasabai which was built for
Anna Zoological Park and the Wildlife Sanctuary Management System by Aadil
Shaikh are some examples of such system. Meanwhile, the E-Ticketing Systems In
Culture and Tourism : Experiences From Croatia by Vedran Majstorovic uses the
latest trend in cloud which is cloud-ticketing. This is exceptionally different from the
other systems in the way that cloud-ticketing supports multiple client types. There is a
global organization that provides a database system for convenient use of all zoo
administrators or any related parties that shares the information and health on the
animals with management of the animals and zoos. The organization is known as
Species360, formerly known as International Species Information System (ISIS), and
the system or software developed by them is known to be Zoological Information
Management System (ZIMS).
17
2.4 CHAPTER SUMMARY
There is quite a lot of zoo management system already in existing nowadays but
there are a few that actually apply the ease of technology and make their system
available online. They still prefer the manual system to collect data and keep all their
zoos information. Especially mini zoos, things are still done that way. In my research,
I found out that there is only a few zoos that have very good management system
applied by them on their zoos for ticketing of visitors. There are even less systems
that let the online users to purchase admission tickets directly on the websites. None
of the existing zoo management systems uses the approach of filtering and SUS into
construction of their systems too. KZTS is a proposed system that allows the
administrator to manage information on the tickets. Users could easily purchase their
tickets online and after the payment is completed, they will receive an invoice or a
receipt of proof for confirmation of tickets purchased.
18
CHAPTER 3
METHODOLOGYAND SYSTEM DESIGN
3.1 INTRODUCTION
Project Methodology is one of the implementation plans for the developer in
making sure that the system to be developed works properly. In this chapter, the
methodology used in the effort to develop this particular system will be discussed.
The details of each and one of the ways of how filtering method and System Usability
Scale (SUS) approach are used in this project development will be explained further.
This chapter will also state the design requirements of this proposed system. In the
design, details about the system functions, the method and approach used, database
designation and interfaces of the system will be shown. The process models for this
system include Context Diagram (CD) and Data Flow Diagram (DFD) with the
addition of a data model that is Entity Relationship Diagram (ERD) are included in
this chapter too.
19
3.2 PROJECT METHODOLOGY
3.2.1 FILTERINGMETHOD
In computer programming, a filter is a program or section of code that is
designed to examine each input or output request, or a stream, for certain qualifying
criteria and then process or forward it accordingly producing another stream. This
term was used in UNIX systems and is now used in other operating systems. A filter
is "pass-through" code that takes input data, makes some specific decision about it
and possible transformation of it, and passes it on to another program in a kind of
pipeline. Usually, a filter does no input/output operation on its own. Filters are
sometimes used to remove or insert headers or control characters in data. While a
single filter can be used individually, they are frequently strung together to form a
pipeline.
In Unix and Unix-like operating systems, a filter is a program that gets most of
its data from its standard input (the main input stream) and writes its main results to
its standard output (the main output stream). Auxiliary input may come from
command line flags or configuration files, while auxiliary output may go to standard
error. The command syntax for getting data from a device or file other than standard
input is the input operator (<). Similarly, to send data to a device or file other than
standard output is the output operator (>). To append data lines to an existing output
file, one can use the append operator (>>). Filters may be strung together into a
pipeline with the pipe operator ("|"). This operator signifies that the main output of
the command to the left is passed as main input to the command on the right.
20
Filter methods use a feature relevance criteria. Two standard filters from the early
days of DOS-based computers are find and sort. Data filtering in IT can refer to a
wide range of strategies or solutions for refining data sets. This means the data sets
are refined into simply what a user (or set of users) needs, without including other
data that can be repetitive, irrelevant or even sensitive. Different types of data filters
can be used to amend reports, query results, or other kinds of information results.
Typically, data filtering will involve taking out information that is useless to a
reader or information that can be confusing. Generated reports and query results from
database tools often result in large and complex data sets. Redundant or impartial
pieces of data can confuse or disorient a user. Filtering data can also make results
more efficient.
This proposed system uses filtering method at the administrator’s side to filter
out certain data that is important to the administrator. As for the users, to buy an entry
ticket or a package to the zoo, users need to sign-up as users on the website and log in.
Users have to fill in the information about himself/herself before continuing to the
purchasing process. Users will be then start choosing information or completing the
requirements needed to classify which ticket the users prefer. There are two types of
users which are Local and Foreigner, two categories of users which are Adults and
Kids, and three types of attractions classed into Mini Zoo, Swimming Pool and
Waterpark and Firefly. Users need to be stressing on the total number of people the
ticket/tickets is/are for. Different kinds of tickets with a variety of prices will be
21
offered to users based on the information they choose for the ticket information, the
total number of people and if any, the seasonal discounts.
3.2.2 SYSTEM USABILITY SCALE (SUS)
System Usability Scale (SUS) is a quick usability scale or tool to evaluate
systems and their websites usability. This approach is thought to be useful for
KZTS as later users can give feedback in using the system and this would later
helps developer to rate the website’s or the system’s usability, functionality and
effectiveness.
Among the advantages of this approach is that it is a quick way or technique
to administer, it is also cheap to start with in a project, SUS could give a website
a clear and reasonably precise score and it is one of the most efficient ways of
gathering statistically valid data.
SUS uses a Likert Scale that includes a 10 questions form of which users of
the website will answer. The 10 item questionnaire are provided with five
response options for respondents; from Strongly agree to Strongly disagree. SUS
is not diagnostic because its use is in classifying the ease of use of the site,
application or environment being tested.
22
To interpret the scores, the participant’s scores for each question are
converted to a new number, added together and then multiplied by 2.5 to convert
the original scores of 0-40 to 0-100. Though the scores are 0-100, these are not
percentages and should be considered only in terms of their percentile ranking.
Based on research, a SUS score of 68 is average, anything above a 68 would be
considered above average and anything below 68 is below average.
To use this SUS approach, it is important that users of the system or website
are asked to first experience the website and then, to participate in the SUS. SUS
can also be used to compare designs of the website. This is another advanced way
to use the SUS approach. This works by asking one half of the users or sample
group to experience version A of the website, and take the SUS after
experiencing that version, and a separate half of those users to experience version
B of the website, and take the SUS after experiencing that version. Compare the
scores and the version with a higher SUS score wins.
23
Group One → Experiences Version One → Evaluates Version One with SUSGroup Two → Experiences Version Two → Evaluates Version Two with SUS
Figure 1 : SUS Score Comparison
24
3.3 SOFTWARE AND HARDWARE REQUIREMENTS
The requirements of both hardware and software are crucial in promising a
successful project or product. In every software or project development environment,
the requirements of hardware and software are really needed and carefully thought
over for many reasons.
3.3.1 Hardware
The hardware requirements for this project includes of :
i) Laptop (HP Notebook)
Processor : Intel® Core ™ i3-5005U CPU @ 2.00GHz 2.00 GHz
Memory (RAM) : 4.00 GB
System Type : 64-bit operating system, x64-based processor
ii) Printer
iii) Broadband
iv) Pendrive
25
3.3.2 Software
The software requirements for this project includes of :
i) Microsoft Word
ii) WPS Presentation
iii) WPS Spreadsheet
iv) Windows 10
v) Mozilla Firefox
vi) Google Chrome
vii) MySQL
viii)Xampp
ix) Notepad++
x) Adobe Photoshop
3.3.3 Workspace
The workspace for this project includes of :
i) Web-based system
26
3.4 CONTEXT DIAGRAM
A Context Diagram (CD) will explain the flow of the system based on the main
user and main process involved in the system’s functionality. Shown in the figure
below is the CD for this proposed system.
Diagram 2 : Context Diagram
27
Kemaman Zoo Ticketing System Using Filtering Method is at the center of the
diagram. The two entities (ADMINISTRATOR, USER) are placed at the top and
below the central process. 12 data flows are involved in the interaction between the
central process and the entities. The ADMINISTRATOR entity has 3 (staff detail,
ticket detail, generate report) outgoing data flows and 5 (staff record, payment record,
ticket record, order record, summary report) in-going data flows. The USER entity
has 3 (user detail, ticket detail, payment detail) outgoing data flows and 2 (user record,
payment record) in-going data flows altogether.
28
3.5 DATA FLOW DIAGRAM
Data Flow Diagram (DFD) is a diagram that shows the flows of data in a system.
3.5.1 DFD LEVEL 0
Diagram 3 : Data Flow Diagram
29
This DFD has 2 entities which are the ADMINISTRATOR and USER. There are
6 processes involved in the system which are LOGIN, MANAGE PROFILE,
MANAGE TICKET, MANAGE ORDER, PAYMENT and REPORT. Then, there are
5 data stores created in the system known as USER, ADMIN, TICKET, SALE and
PAYMENT.
1. USER inputs login detail into LOGIN process which outputs login detail into
USER data store.
2. ADMINISTRATOR inputs login detail into LOGIN process which outputs
login detail into ADMIN data store.
3. login detail from LOGIN process is sent to MANAGE PROFILE process.
4. USER inputs user detail into MANAGE PROFILE process which outputs
user detail into USER data store.
5. ADMINISTRATOR inputs staff detail into MANAGE PROFILE process
which outputs staff detail into ADMIN data store.
6. staff detail from MANAGE PROFILE process is sent to MANAGE TICKET
process.
7. user detail from USER data store is sent to PAYMENT process.
8. user detail from the USER data store is sent to REPORT process which
outputs user report and is sent to ADMINISTRATOR.
9. USER inputs order detail into MANAGE ORDER process which outputs
order detail into SALE data store.
10. ticket detail from MANAGE TICKET process is sent to MANAGE ORDER
process.
11. ticket detail from TICKET data store is sent to MANAGE ORDER process.
30
12. order detail from SALE data store is sent to PAYMENT process.
13. Order detail from MANAGE ORDER process is sent to PAYMENT process.
14. USER inputs payment detail into PAYMENT process which outputs
payment detail into PAYMENT data store.
15. payment detail from the PAYMENT data store is sent to REPORT process
which outputs payment report and then is sent to ADMINISTRATOR.
16. ADMINISTRATOR inputs ticket detail into MANAGE TICKET process
which outputs ticket detail into TICKET data store.
17. order detail from SALE data store is sent to REPORT process which outputs
order report and is sent to ADMINISTRATOR.
18. ticket detail from TICKET data store is sent to REPORT process which
outputs ticket report and is sent to ADMINISTRATOR.
31
3.5.2 DFD LEVEL 1
3.5.2.1 LOGIN
Diagram 3.1 : DFD Level 1 Login Process
1) USER input login detail into LOGIN process which sends output into
USER data store.
2) ADMINISTRATOR input login detail into LOGIN process which sends
output into ADMIN data store.
3) login detail from LOGIN process is sent to MANAGE PROFILE process.
32
3.5.2.2 MANAGE PROFILE
Diagram 3.2 : DFD Level 1 Manage Profile Process
1) USER input user detail into MANAGE PROFILE process which sends
output into USER data store.
2) ADMINISTRATOR input staff detail into MANAGE PROFILE process
which sends output into ADMIN data store.
3) user detail is sent from MANAGE PROFILE process to MANAGE ORDER
process.
4) order detail from MANAGE ORDER process is sent to PAYMENT process.
5) user detail from USER data store is sent to PAYMENT process.
33
3.5.2.3 MANAGE TICKET
Diagram 3.3 : DFD Level 1 Manage Ticket Process
1) ADMINISTRATOR input ticket detail into INSERT TICKET process which
sends output into TICKET data store.
2) ADMINISTRATOR input ticket detail into UPDATE TICKET process
which sends output into TICKET data store.
3) ADMINISTRATOR input ticket detail into DELETE TICKET process
which sends output into TICKET data store.
34
3.5.2.4 MANAGE ORDER
Diagram 3.4 : DFD Level 1 Order Process
1) USER input order detail into MANAGE ORDER process which sends the
output to SALE data store.
2) order detail is sent from MANAGE ORDER process is sent to the
PAYMENT process.
3) order detail from SALE data store is sent to PAYMENT process.
4) order detail from SALE data store is sent to REPORT process which outputs
order report to the ADMINISTRATOR.
35
3.5.2.5 PAYMENT
Diagram 3.5 : DFD Level 1 Payment Process
5) USER input login detail into LOGIN process which sends the output to
USER data store.
6) login detail is sent from LOGIN process to the MANAGE PROFILE
process.
7) user detail from USER data store is sent to MANAGE PROFILE process.
8) User detail from USER data store is sent to PAYMENT data store.
9) order detail from SALE data store is sent to MANAGE ORDER process.
10) order detail from MANAGE ORDER process is sent to PAYMENT process.
36
11) USER input payment detail into PAYMENT process which sends output into
PAYMENT data store.
3.5.2.6 REPORT
Diagram 3.6 : DFD Level 1 Report Process
1) user detail from USER data store is sent to REPORT process which
outputs user report to ADMINISTRATOR.
2) ticket detail from TICKET data store is sent to REPORT process which
outputs ticket report to ADMINISTRATOR.
3) payment detail from SALE data store is sent to REPORT process which
outputs payment report to ADMINISTRATOR.
4) payment detail from PAYMENT data store is sent to REPORT process
which outputs payment report to ADMINISTRATOR.
37
3.6 ENTITY RELATIONSHIP DIAGRAM
An Entity-Relationship Diagram (ERD) illustrates system’s entities information
and relationship. ERD is composed of 3 things that is identifying and defining
identities, determine identities interactions and cardinalities of the relationships.
Diagram 4 : Entity Relationship Diagram
38
3.7 FRAMEWORK OF THE SYSTEM
The diagram of framework below shows how this proposed system works in a
general way of conduct. SUS evaluation forms are to be distributed out to users. The
SUS is introduced to evaluate this proposed system for improvement and future work.
Diagram 5 : Framework Of System
39
The online visitors can login into the website to get the privileges of using the
system. They can either choose to keep on browsing through the website while
checking their registered account or history on the website before logging out. Other
than that, the website can be used by them to make purchases of tickets and making
payment for them. They will get an invoice of purchase later. Their actions on the
website are recorded into the web server and database of this proposed system. After
using the website, some SUS forms are distributed to personnel close to the developer
and collected afterwards so that the website can be evaluated manually by the
developer.
40
3.8 CHAPTER SUMMARY
In conclusion, the third chapter of this document tells about the methodology and
approach used in the development phase of this proposed system. It is very important
in a project development, the methodology is specified and chosen well suitable to the
project to be developed and helps to solve the problems. It is found that filtering can
be used as a suitable method for this proposed system. Moreover, SUS is known to be
a convenient and fast technique to be used in evaluating systems. This proposed
system needs to be evaluated by its users in terms of its functionality and
effectiveness. This is to serve the aim to make the system a better working system
used by the target users. Lastly, the specification of software and hardware
requirements are to make sure that before a project or a system could be developed
and the tools needed for the construction are fulfilled to avoid drawbacks in later days.
Preparation and readiness is crucial in every project development.
41
CHAPTER 4
IMPLEMENTATION
4.1 INTRODUCTION
In this chapter, interfaces of this proposed system will be introduced and shown
to users. The database specification of the system are to be displayed in this chapter
too. A user manual is a full-length manual on how to operate this system. It is divided
by modules according to this system’s user types. There are two kinds of users for
this KZTS system.
42
4.2 DATABASE DESIGN SPECIFICATION
A database is the main important part of a system because this is where all the
data and information in a system is kept and used by the system to work properly. A
database is also convenient in showing the available data of a system and making sure
that they are correctly inserted and stored for future use by the manager. The name of
KZTS database is ‘kzts’. This database contains 5 tables and they are ‘admin’, ‘user’,
‘ticket’, ‘sale’ and ‘payment’. The following are the lists of tables with some
description and data.
4.2.1 Table ‘admin’
Table 4.2.1 : Table ‘admin’
43
4.2.2 Table ‘user’
Table 4.2.2 : Table ‘user’
44
4.2.3 Table ‘ticket’
Table 4.2.3 : Table ‘ticket’
45
4.2.4 Table ‘sale’
Table 4.2.4 : Table ‘sale’
46
4.2.5 Table ‘payment’
Table 4.2.5 : Table ‘payment’
47
4.3 USER MANUAL (USER)
Firstly, this part of user manual is for the online users or visitors of this system. It
shows how users could use this system for their convenience.
4.3.1 User Homepage
Figure 4.3.1 : Homepage for user
48
4.3.2 Registration page
Figure 4.3.2 : Registration interface for new users
4.3.3 Login page
Figure 4.3.3 : Interface for login page
49
4.3.4 Update profile page
Figure 4.3.4 : Interface for users to update their profiles
4.3.5 Tickets & Packages page
Figure 4.3.5 : Part of the interface of the page for users to purchase tickets
50
4.3.6 Purchasing Ticket
Figure 4.3.6 : Interface for users to purchase tickets (1)
51
Figure 4.3.6 : Interface for users to purchase tickets (2)
52
Figure 4.3.6 : Interface for users to purchase tickets (3)
4.3.7 Update placed ticket before checkout page
Figure 4.3.7 : Interface for users to update their preference of the ticket
(date/quantity) before checking out
53
4.3.8 Delete placed ticket before checkout page
Figure 4.3.8 : Interface for users to delete the type of ticket placed before
checking out
4.3.9 Checkout page
Figure 4.3.9 : Interface for users on checkout procedure (1)
54
Figure 4.3.9 : Interface for users on checkout procedure (2)
4.3.10 Order is placed page
Figure 4.3.10 : Interface for showing that the order has been placed and will be
processed
55
4.3.11 Print receipt page
Figure 4.3.11 : Receipt of proof for purchases made could be viewed and
downloaded
56
4.4 USER MANUAL (ADMINISTRATOR)
Last but not least, the user manual for the latter type of user, the administrator, is
to show how an administrator of this system can discover the functions and processes
involved in the system to operate through it properly.
4.4.1 Administrator’s Homepage
Figure 4.4.1 : Homepage for administrator after a successful login with displayed
username of the administrator
57
4.4.2 Login page
Figure 4.4.2 : Login interface for administrator
58
4.4.3 Registration page
Figure 4.4.3 : Registration page for admin (1)
Figure 4.4.3 : Registration page for admin (2)
59
4.4.4 Update profile page
Figure 4.4.4 : Interface for administrator to update profile (1)
Figure 4.4.4 : Interface for administrator to update profile (2)
60
4.4.5 Add new ticket page
Figure 4.4.5 : Interface to add new tickets
61
4.4.6 Update ticket page
Figure 4.4.6 : Interface to update tickets (1)
Figure 4.4.6 : Interface to update tickets (2)
62
4.4.7 Delete ticket page
Figure 4.4.7 : Interface to delete tickets (1)
Figure 4.4.7 : Interface to delete tickets (2)
63
4.4.8 Update order page
Figure 4.4.8 : Interface for updating the orders placed by users (1)
Figure 4.4.8 : Interface for updating (total, status) the orders placed by users (2)
64
4.4.9 Delete order page
Figure 4.4.9 : Interface for administrator to delete order from the list
4.4.10 Update payment page
Figure 4.4.10 : Interface for updating the payments made by users (1)
65
Figure 4.4.10 : Interface for updating the payments (Order ID, phone number,
email, total, method, status) made by users (2)
66
4.4.11 Delete payment page
Figure 4.4.11 : Interface for administrator to delete payment from the list
4.4.12 Users list page
Figure 4.4.12 : Interface of users list
67
4.4.13 Types of tickets list page
Figure 4.4.13 : Interface of a list of tickets
68
4.4.14 Sales list page
Figure 4.4.14 : Interface of a list of all sale/orders submitted by users and have
been updated by administrator
69
4.4.15 Payments list page
Figure 4.4.15 : Interface of a list of all payments submitted by users and have
been updated by administrator
70
4.4.16 Filtering at list of users page
Figure 4.4.16 : The filtering of first name and last name of users at a part of the
list of users list page (input is entered)
Figure 4.4.16 : The filtering of first name and last name of users at a part of the
list of users list page (result)
71
4.4.17 Filtering at list of orders page
Figure 4.4.17 : The filtering of first name and last name of users at a part of the
list of orders list page
72
4.4.18 Filtering at list of payments page
Figure 4.4.18 : The filtering of first name and last name of users at a part of the
list of payments list page
73
4.5 CHAPTER SUMMARY
It is hoped that both kind of users could understand basically on how to use this
Kemaman Zoo Ticketing System Using Filtering Method system through this user
manuals.
74
CHAPTER 5
TESTINGAND RESULT
5.1 INTRODUCTION
This testing and result chapter of this document is about the tests carried onto the
system built by the developer. Testing should be done throughout the implementation
process. Testing and identifying results are two processes of a project development
important for checking errors and results of the system. It shows the actions done,
expected system response to those actions and the result from the actions carried out
as well as the errors if any.
75
5.2 TESTING AND ANALYSIS APPROACHES
The testing approaches adopted by this Kemaman Zoo Ticketing System (KZTS)
Using Filtering Method are the verification test (BVT) and performance capability
tests. The BVT is a way to verify that the various components of implementation
were installed and configured as documented. White-Box Testing is a method of
testing software that tests performance capabilities of internal structures or workings
of an application. White-Box Testing is based on the identified structure of the
software or system as seen in the following examples.
i. Component Level : The structure is that of the code itself, i.e; statements,
decisions or branches.
ii. Integration Level : The structure may be of a call tree, a diagram in which
modules call the other modules.
iii. System Level : The structures may be of a menu structure, business process or
web page structure.
White-Box Testing techniques include :
Statement-Coverage
Branch-or-Decision-Coverage
Multiple-Condition-Coverage
Loop-Coverage
76
Call-Coverage
Path-Coverage
Then, the analysis approach for this system is known as System Usability Scale
(SUS). SUS approach is used to measure the functionality and effectiveness of this
system. A Likert scale form is given offline to 20 people who used or had experience
in using the website around me so that I could easily collect the forms and later
analyze them. The result of this is visualized into a histogram.
77
5.3 TESTING AND ANALYSIS RESULTS/SCREENSHOTS
This system is an online ticketing system developed for the management of
TRZK in managing its ticketing service and for the users to easily purchase tickets to
TRZK. A digital system as such as this Kemaman Zoo Ticketing System (KZTS)
Using Filtering Method provides a digital way of buying tickets.
5.3.1 Alert message when to administrator does not key in for
password
Figure 5.3.1 : Administrator does not key in password when logging-in
78
5.3.2 Alert message when data is not put when adding new type of
ticket
Figure 5.3.2 : Administrator need to fill in the form completely to
register/add a new kind of tickets
79
5.3.3 Alert message when when data is not put when updating ticket
Figure 5.3.3 : Administrator need to fill in the form completely to update
ticket
5.3.4 Alert message when adding ticket is successful
Figure 5.3.4 : Adding new ticket is successful by the administrator
80
5.3.5 Alert message when updating ticket is successful
Figure 5.3.5 : Administrator successfully updated a ticket
5.3.6 Alert message when deleting ticket is successful
Figure 5.3.6 : Administrator successfully deleted a ticket
81
5.3.7 Alert message when user login is successful
Figure 5.3.7 : User successfully log in into the system/website
5.3.8 Alert message when a checkout form is successfully submitted
Figure 5.3.8 : User successfully checkout the order
82
5.3.9 Alert message when order is successfully placed
Figure 5.3.9 : User successfully placed an order
5.3.10 Alert message when user wanted to log out
Figure 5.3.10 : User clicked on the LOGOUT button to logout
83
5.4 CHAPTER SUMMARY
The information of the implementations on the system is gathered through test
cases. Testing is a way to check the functional parts of a system. Results of this
testing is expected to show the achievements and drawbacks of system. Through the
SUS result shown at the APPENDICES pages of this document, it can be concluded
that this KZTS system Using Filtering Method is needed to be improved in terms of
its functionality and user-friendliness.
84
CHAPTER 6
CONCLUSIONAND DISCUSSION
6.1 INTRODUCTION
This chapter compiles of this project’s possible contributions, its limitations
or constraints and future works that can be taken into consideration and done
onto the system. This chapter will conclude this report and project.
85
6.2 PROJECT CONTRIBUTION
Kemaman Zoo Ticketing System (KZTS) Using Filtering Method is a
system designed and built to help Kemaman Zoo and Recreation Park (TRZK)
manager to administrate the ticketing to the park. TRZK is a huge park consists
of many attractions including a mini zoo. The mini zoo is the heart of TRZK
making it the most important part of the place to be managed. Ticketing is thus
an urgent matter that is always considered of and taken care of at TRZK. To enter
into TRZK, one must have an entry ticket. This online ticketing system enables
users or visitors to purchase tickets beforehand in much easier and faster way. It
is a more profitable feature to larger group of visitors as there is promotion and
special discounts offered to online ticket purchasers. Not only that, this system
allows the administrator to manage the ticketing of TRZK in better, more
systematic, faster, safer and easier ways. The administrator can generate reports
for his convenience to view important data of the sales monthly or yearly too.
This is known to be one of the most important features to any kind of business
management.
86
6.3 LIMITATIONS AND CONSTRAINTS OF PROJECT
There are of course some limitations to this system as a short time was
allocated for the project. It can not be helped with when time was not given to the
fullest for this final year project development. So, the one biggest constraint of
this project is time. Meanwhile, the limitations for this project are that it does not
include the participation of staffs of TRZK into working with the system and that
it does not provide detailed information on the animals and attractions at TRZK
on the website. This system has only two entities or target users who are the
manager or administrator and the users. There is already an existing official
website of TRZK in which it provides the information about the place and the
attractions in it with some example pictures. The official site however does not
enable users to directly purchase tickets on the website. Last but not least, the
administrator could not generate monthly or yearly reports digitally from the
system but to get the data from the system and then, to create the monthly and
yearly reports in graphs, for, example, manually.
87
6.4 FUTURE WORK
It is believed that to every development of a software project, there should be
future works thought and discussed of the development team for the project. This
is as to make sure that the project keep on improving in order to maximizes its
functionality and effectiveness onto the comfort of users and so that it follows the
current technology as well as need of users. Kemaman Zoo Ticketing System
(KZTS) Using Filtering Method is planned to be developed into a mobile
application for android users. Then, to improve the functionality and flow of the
entire system better for both users and the administrator. Lastly, it is hoped to
improve the visual or the design of the website at the user’s end to be looking
more interesting and user-friendly.
88
6.5 CONCLUSION
It can be concluded that Kemaman Zoo Ticketing System (KZTS) Using
Filtering Method is developed as an online ticketing system for TRZK. It is an
efficient and handy system to serve its users for ticket purchasing and
management. Hopefully, this system would bring happiness and is beneficial to
the target users as well as the community.
89
REFERENCES
1) Wikipedia, 2018. Zoo.
https://en.wikipedia.org/wiki/Zoo.
2) Zoo Kemaman Official Website, 2015.
http://www.zookemaman.my/about/kemaman-zoo/.
3) Thiruthanigesan Kanagasabai, 2012. ZIMS : Zoo Information Management
System [PDF].
https://www.researchgate.net/profile/Thiruthanigesan_Kanagasabai/publication/
308790335_ZOO_INFORMATION_MANAGEMENT_SYSTEM/links/57f1d009
08ae886b89791af2/ZOO-INFORMATION-MANAGEMENT-SYSTEM.pdf .
4) Ukelere Winnefred, 2011. Student Information Management System.
http://www.academia.edu/5754413/STUDENT_INFORMATION_MANAGEME
NT_SYSTEM . Accessed : October 2011.
5) Pooja Gautam, 2015. Online Airline Ticketing System [PDF] .
https://www.theseus.fi/bitstream/handle/10024/98017/final_thesis_version_pooja.
pdf?sequence=1 . Accessed : September 2015.
6) Aadil Shaikh, 2017. DBMS Mini Project.
http://askdnerd.com/2017/07/27/dbms-mini-project/ . Accessed 27 July 2017.
7) Sam McLellan, Andrew Muddimer and S. Camille Peres, (February 2012). “The
Effect of Experience on System Usability Scale Ratings” [PDF] .
http://delivery.acm.org/10.1145/2840000/2835478/p56-mclellan.pdf?ip=103.16.
182.250&id=2835478&acc=ACTIVE%20SERVICE&key=69AF3716A20387ED
%2ECCFE7C5EC637B1E0%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35
&__acm__=1525366846_82b2ff20018d6fc2a460397d8d7ab488 . pp. 55-67.
90
8) Usability.gov Official Website. System Usability Scale (SUS).
https://www.usability.gov/how-to-and-tools/methods/system-usability-scale.html.
9) Vedran Majstorovic, 2014. E-Ticketing Systems In Culture And Tourism :
Experiences From Croatia [PDF] .
http://www.wseas.us/e-library/conferences/2014/CambridgeUSA/ECON/ECON-0
8.pdf. Accessed : 2014.
10) Ulrich Michel, Christian Plass, Constanze Tschritter, Manfred Ehlers, 2008.
WEBMOZIS : Web-Based And Mobile Zoo Information System - A Case Study
For The City Of Osnabrueck [PDF] .
https://pdfs.semanticscholar.org/d52c/6dfa4614360be8ff6369794456fc4d4408ea.
pdf. Accessed : 2008.
11) Wikipedia, 2016. Information Filtering System.
https://en.wikipedia.org/wiki/Information_filtering_system.
91
APPENDIXASUS FORMS
92
APPENDIX BSUS RESULT
93
Survey of this System Usability Score (SUS) was conducted on 3rd of August 2018
and the forms were distributed to 10 people who had experienced in using the system
as users. Below is the result of the survey and it’s calculation were done using the
WPS Spreadsheet.
Figure : SUS Scores and Result
94
APPENDIX CCODING
95
ACTION : PURCHASE TICKET BY USER
chooseticket.php
<?phpsession_start();"SUCCESS LOGIN AS " . $_SESSION["username"] . "";?><?php
include("connection.php");?>
<?php// define variables and set to empty values$usernameErr = $dateErr = $ticketTypeErr = $ticketIDErr = $userTypeErr =$categoryErr = $priceErr = $noOfPplErr = "";$username = $date = $ticketType = $ticketID = $userType = $category = $price =$noOfPpl = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {if (empty($_POST["username"])) {$usernameErr = "Username is required";
} else {$username = test_input($_POST["username"]);
}
if (empty($_POST["date"])) {$dateErr = "Date is required";
} else {$date = test_input($_POST["date"]);
}
if (empty($_POST["ticketType"])) {$ticketTypeErr = "Ticket Type is required";
} else {$ticketType = test_input($_POST["ticketType"]);
}
if (empty($_POST["ticketID"])) {$ticketIDErr = "Ticket ID is required";
} else {$ticketID = test_input($_POST["ticketID"]);
}
if (empty($_POST["userType"])) {$userTypeErr = "User Type is required";
} else {
96
$userType = test_input($_POST["userType"]);}
if (empty($_POST["category"])) {$categoryErr = "Category is required";
} else {$category = test_input($_POST["category"]);
}
if (empty($_POST["price"])) {$priceErr = "Price is required";
} else {$price = test_input($_POST["price"]);
}
if (empty($_POST["noOfPpl"])) {$noOfPplErr = "Number of people is required";
} else {$noOfPpl = test_input($_POST["noOfPpl"]);
}}function test_input($data) {$data = trim($data);$data = stripslashes($data);$data = htmlspecialchars($data);return $data;
}?>
<?php//session_start();Sif (isset($_POST['submit'])){
$username = $_POST['username'];$date = $_POST['date'];$ticketType = $_POST['ticketType'];$ticketID = $_POST['ticketID'];$userType = $_POST['userType'];$category = $_POST['category'];$price = $_POST['price'];$noOfPpl = $_POST['noOfPpl'];
// checking empty fieldsif(empty($username)||empty($date)||empty($ticketType)||empty($ticketID)||empty($userType)||empty($category)||empty($price)||empty($noOfPpl)) {
if(empty($username)) {//echo "<font color='red'>Username field is empty.</font><br/>";
}
if(empty($date)) {//echo "<font color='red'>Date field is empty.</font><br/>";
97
}
if(empty($ticketType)) {//echo "<font color='red'>Ticket Type field is empty.</font><br/>";
}
if(empty($ticketID)) {//echo "<font color='red'>Ticket ID field is empty.</font><br/>";
}
if(empty($userType)) {//echo "<font color='red'>User Type field is empty.</font><br/>";
}
if(empty($category)) {//echo "<font color='red'>Category field is empty.</font><br/>";
}
if(empty($price)) {//echo "<font color='red'>Price field is empty.</font><br/>";
}
if(empty($noOfPpl)) {//echo "<font color='red'>Number of people field is
empty.</font><br/>";}
}else {
$sql = "INSERT INTO sale(username,date,ticketType,ticketID,userType,category,price,noOfPpl)
VALUES ('$username','$date', '$ticketID','$userType','$ticketType','$category','$price','$noOfPpl')";
if($db->query($sql)===TRUE) {echo "<script> alert ('Order succesfully added to cart!');
document.location.href='chooseticket1.php'</script>";} else {
echo "Error" . $sql . "<br>" .$db ->error;}
}}?>
98
chooseticket1.php
<?phpsession_start();?><?phpinclude("connection.php");
$username = $_POST['username'];$date = $_POST['date'];$ticketType = $_POST['ticketType'];$ticketID = $_POST['ticketID'];$userType = $_POST['userType'];$category = $_POST['category'];$price = $_POST['price'];$noOfPpl = $_POST['noOfPpl'];
$sql = "INSERT INTO sale(username,date,ticketType,ticketID,userType,category,price,noOfPpl)VALUES ('$username', '$date', '$ticketType', '$ticketID','$userType','$category','$price','$noOfPpl')";
if($db->query($sql)===TRUE) {echo "<script> alert ('Order is placed!');
document.location.href='updateCart.php'</script>";} else {
echo "Error!" . $sql . "<br>" .$db ->error;}
?>
99
updateCart.php
<!-- Manage tickets section in table : Update or Delete--><?php
include("connection.php");//$username = $_GET['username'];$result = mysqli_query($db, "SELECT * from sale WHERE username=
'".$_SESSION["username"]."'");?><?php
$count=1;
while($rslt = mysqli_fetch_array($result)){echo "<tr>";echo "<td>".$rslt['orderID']."</td>";echo "<td>".$rslt['username']."</td>";echo "<td>".$rslt['date']."</td>";echo "<td>".$rslt['ticketType']."</td>";echo "<td>".$rslt['ticketID']."</td>";echo "<td>".$rslt['userType']."</td>";echo "<td>".$rslt['category']."</td>";echo "<td>".$rslt['price']."</td>";echo "<td>".$rslt['noOfPpl']."</td>";echo "<td><a
href='updateCart1.php?username=$rslt[username]'>UPDATE</a> | <ahref='deleteCart.php?username=$rslt[username]' onClick=\"return confirm('Are yousure you want to delete this?')\">DELETE</a></td>";
echo "</tr>";$count++;}
?>
100
updateCart1.php
<?phpinclude("connection.php");
?>
<?php$username = $_GET['username'];
$result = mysqli_query ($db, "SELECT * FROM sale WHEREusername='$username'");
while($rslt = mysqli_fetch_array($result)){$orderID = $rslt['orderID'];$username = $rslt['username'];$date = $rslt['date'];$ticketID = $rslt['ticketID'];$userType = $rslt['userType'];$ticketType = $rslt['ticketType'];$category = $rslt['category'];$price = $rslt['price'];$noOfPpl = $rslt['noOfPpl'];
}?><?phpif (isset($_POST['update'])){
$orderID = $_POST['orderID'];$username = $_POST['username'];$date = $_POST['date'];$ticketID = $_POST['ticketID'];$userType = $_POST['userType'];$ticketType = $_POST['ticketType'];$category = $_POST['category'];$price = $_POST['price'];$noOfPpl = $_POST['noOfPpl'];
if(empty($orderID)||empty($username)||empty($date)||empty($ticketID)||empty($userType)||empty($ticketType)||empty($category)||empty($price)||empty($noOfPpl)) {
if(empty($orderID)) {//echo "<font color='red'>Order ID field is empty.</font><br/>";
}
if(empty($username)) {//echo "<font color='red'>Username field is empty.</font><br/>";
}
101
if(empty($date)) {//echo "<font color='red'>Date field is empty.</font><br/>";
}
if(empty($ticketID)) {//echo "<font color='red'>Ticket ID field is empty.</font><br/>";
}
if(empty($userType)) {//echo "<font color='red'>User Type field is empty.</font><br/>";
}
if(empty($ticketType)) {//echo "<font color='red'>Ticket Type field is empty.</font><br/>";
}
if(empty($category)) {//echo "<font color='red'>Category field is empty.</font><br/>";
}
if(empty($price)) {//echo "<font color='red'>Price field is empty.</font><br/>";
}
if(empty($noOfPpl)) {//echo "<font color='red'>Number Of People field is
empty.</font><br/>";}
}else{
$result = mysqli_query ($db, "UPDATE sale SET orderID='$orderID',username='$username', date='$date', ticketID='$ticketID', userType='$userType',ticketType='$ticketType', category='$category', price='$price', noOfPpl='$noOfPpl'
WHERE username=$username");
echo "<script>alert('Order isupdated!');document.location.href='updateCart.php';</script>";
}}?>
102
updateCart2.php
<?phpinclude("connection.php");
{$orderID = $_POST['orderID'];$username = $_POST['username'];$date = $_POST['date'];$ticketType = $_POST['ticketType'];$ticketID = $_POST['ticketID'];$userType = $_POST['userType'];$category = $_POST['category'];$price = $_POST['price'];$noOfPpl = $_POST['noOfPpl'];
$result = mysqli_query ($db, "UPDATE sale SET orderID='$orderID',username='$username', date='$date', ticketType='$ticketType', ticketID='$ticketID',userType='$userType', category='$category', price='$price', noOfPpl='$noOfPpl'
WHERE orderID=$orderID");
if($db->query($result) === TRUE){echo"<script>alert('Order update
failed!');document.location.href='updateCart.php';</script>";}else{
echo"<script>alert('Order successfullyupdated!');document.location.href='updateCart.php';</script>";
}}
?>
deleteCart.php
<?php// include database connection fileinclude("connection.php");
// Get id from URL to delete that order$username = $_GET['username'];
// Delete order row from table based on given id$sql = "DELETE FROM sale WHERE username='$username'";
103
if($db->query($sql) === TRUE) {echo ("<script>alert('Data successfully
deleted!');document.location.href='updateCart.php'</script>");
} else {echo ("<script>alert('Sorry, deleting data
failed!');document.location.href='updateCart.php'</script>") . $db->error;}
$db->close();?>
addtickets.php
<?phpinclude("connection.php");
?><?php// define variables and set to empty values$ticketIDErr = $userTypeErr = $ticketTypeErr = $categoryErr = $noOfPplErr =$priceErr = "";$ticketID = $userTypeErr = $ticketType = $category = $noOfPplErr = $price = "";if ($_SERVER["REQUEST_METHOD"] == "POST") {if (empty($_POST["ticketID"])) {$ticketIDErr = "Ticket ID is required";
} else {$ticketID = test_input($_POST["ticketID"]);
}if (empty($_POST["userType"])) {$usertTypeErr = "User Type is required";
} else {$userType = test_input($_POST["userType"]);
}if (empty($_POST["ticketType"])) {$ticketTypeErr = "Ticket Type is required";
} else {$ticketType = test_input($_POST["ticketType"]);
}if (empty($_POST["category"])) {$categoryErr = "Category is required";
} else {$category = test_input($_POST["category"]);
}if (empty($_POST["noOfPpl"])) {
104
$noOfPplErr = "Number Of People is required";} else {$noOfPpl = test_input($_POST["noOfPpl"]);
}if (empty($_POST["price"])) {$priceErr = "Price is required";
} else {$price = test_input($_POST["price"]);
}}function test_input($data) {$data = trim($data);$data = stripslashes($data);$data = htmlspecialchars($data);return $data;
}?><?php//session_start();Sif (isset($_POST['submit'])){
$ticketID = $_POST['ticketID'];$userType = $_POST['userType'];$ticketType = $_POST['ticketType'];$category = $_POST['category'];$noOfPpl = $_POST['noOfPpl'];$price = $_POST['price'];
// checking empty fieldsif(empty($ticketID)||empty($userType)||empty($ticketType)||empty($category)||e
mpty($noOfPpl)||empty($price)) {if(empty($ticketID)) {
//echo "<font color='red'>Ticket ID field is empty.</font><br/>";}if(empty($userType)) {
//echo "<font color='red'>User Type field is empty.</font><br/>";}if(empty($ticketType)) {
//echo "<font color='red'>Ticket Type field is empty.</font><br/>";}if(empty($category)) {
//echo "<font color='red'>Category field is empty.</font><br/>";}if(empty($noOfPpl)) {
//echo "<font color='red'>Number Of People field isempty.</font><br/>";
}if(empty($price)) {
//echo "<font color='red'>Price field is empty.</font><br/>";}
}else {
105
$sql = "INSERT INTO ticket(ticketID,userType,ticketType,category,noOfPpl,price) VALUES ('$ticketID','$userType', '$ticketType', '$category', '$noOfPpl', '$price')";
if($db->query($sql)===TRUE) {echo "<script> alert ('Data succesfully added!');
document.location.href='addTicket1.php'</script>";} else {
echo "Error" . $sql . "<br>" .$db ->error;}
}}?>
addTicket1.php
<?phpsession_start();?>
<?php
include("connection.php");
$ticketID = $_POST['ticketID'];$userType = $_POST['userType'];$ticketType = $_POST['ticketType'];$category = $_POST['category'];$noOfPpl = $_POST['noOfPpl'];$price = $_POST['price'];
$sql = "INSERT INTO ticket (ticketID,userType,ticketType,category,noOfPpl,price)VALUES ('$ticketID','$userType','$ticketType','$category','$noOfPpl','$price')";
if($db->query($sql)===TRUE) {echo "<script> alert ('Data succesfully added!');
document.location.href='updatetickets.php'</script>";} else {
echo "Error!" . $sql . "<br>" .$db ->error;}
?>
106
Filtering
<?phpinclude("connection.php");
$result = mysqli_query($db, "SELECT * from user");?>
<?phpif (isset($_POST['submit'])) {
//include("connection.php");//mysql_connect('localhost', 'root', '');
//mysql_select_db('kzts');$db = new mysqli($databaseHost="localhost", $databaseUsername="root",
$databasePassword="", $databaseName="kzts");$q = $db->real_escape_string($_POST['q']);$column = $db->real_escape_string($_POST['column']);
if($column == "" || ($column != "firstName" && $column != "lastName"))$column = "firstName";
$sql = $db->query($query="SELECT firstName FROM user WHERE$column LIKE '$q%'");
if ($sql->num_rows > 0) {while($data = $sql->fetch_array())
echo $data['firstName']."<br>";} else
echo "Your search query doesn't match any data!";
}?>