0% found this document useful (0 votes)
107 views

Design and Implementation of Bus Ticketing System Using PHP

The document describes the design and implementation of an online bus ticketing system for Sokoto state transport authority in Nigeria. It discusses the problems with the existing manual system and proposes developing a web-based online ticketing system to address the issues and make the process more efficient. The research includes analyzing user requirements, designing the system, and developing a prototype to demonstrate the concept.

Uploaded by

Okoye Udochukwu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
107 views

Design and Implementation of Bus Ticketing System Using PHP

The document describes the design and implementation of an online bus ticketing system for Sokoto state transport authority in Nigeria. It discusses the problems with the existing manual system and proposes developing a web-based online ticketing system to address the issues and make the process more efficient. The research includes analyzing user requirements, designing the system, and developing a prototype to demonstrate the concept.

Uploaded by

Okoye Udochukwu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 121

DESIGN AND IMPLEMENTATION OF AN ONLINE BUS TICKETING SYSTEM

(A case study of Sokoto state transport authority)

BY

IMRANA ABDULLAHI YARI


(0911310099)

SUBMITTED TO THE

DEPARTMENT OF MATHEMATICS, COMPUTER SCIENCE UNIT


USMANU DAN FODIO UNIVERSITY, SOKOTO.
IN PARTIAL FULFILMENT OF THE REQUIREMENT FOR THE AWARD OF
BARCHALOR OF SCIENCE DEGREE (B. Sc.) HONS IN
COMPUTER SCIENCE.

SEPTEMBER, 2014.

I
CERTIFICATION

This is to certify that, this research project was conducted by IMRANA ABDULLAHI YARI with

admission number 0911310099. And has been approved as a meeting part of the requirement for

the award of the Bachelor of Degree in Computer Science of Usmanu Danfodio Uiniversity

Sokoto.

Mal. Hassan A. Gummi Date


(Project Supervisor)

Prof. I.J Uwanta Date

(Head of Department)

External Examiner Date

II
DEDICATION

This Project work is dedicated to ALLAH (S.W.T).

III
ABSTRACT

Traditionally, bus ticket purchase has been over the counter in bus terminals, however,

today it has evolved with the rapid expansion of e-commerce. This project addresses the

study and development of an Online Bus Ticketing System web portal that enable

customers (passengers) and the staff to make an online bus ticket sale/purchase, ticket

cancel, ticket postponement, driver rating, generating of reports and etc. which also act as

an operation tool for bus ticketing companies to operate their organization effectively. This

research critically assess and study the reason behind the evolution and the current e-

ticketing systems. This research project also addresses the problems faced by customers

and bus drivers especially on illegal bus operations, long wait to purchase a bus ticket,

unsafe environment and many more. The project studies some issues on implementation

and also recommendations on how Online Bus Ticketing System web portal can take place

effectively. This project also recommends a Decision Support System to deal with the

customer’s requirement whereby it provides reliable choices to a customer to make

decision. This project includes the development of a prototype Online Bus Ticketing

System web portal to support the research objective. This web portal will assist in future

development that would support a fully integrated system that links staff of the bus

company to customers, staff to staff, staff to other mode of transport providers, staff to

businesses and staff to government agencies. PHP, CSS, HTML, JavaScript, Ajax, jQuery,

MYSQL database and WampServer are the programming tools used in development of this

research project.

IV
ACKNOWLEDGEMENT

All praise be to almighty ALLAH (S.W.T) and May peace and blessing be upon his noble

prophet, his family, companions and those that follow his foot step till the Day of Judgment.

This dissertation had been successfully completed. A lot of time and effort was spent to

ensure that this project meets the objectives that were stated. I wish to express my sincere gratitude

to Mal. Hassan A. Gumi for his guidance and patience in supervising the writing of this

dissertation. His advice and valuable suggestions are the source of encouragement throughout the

completion of my project.

My sincere appreciation goes to Almighty God who has given me the strength, knowledge,

wisdom, and understanding that enabled me to see the end of the degree program and to

My profound gratitude also goes to all lecturers of the department of mathematics for the

enhanced quality of the training.

Last, but not least, I wish to thank my beloved Mom, Dad, my Uncle and friends who had

been supportive during the writing of this dissertation. I am grateful for their encouragement and

moral support during the progress of the dissertation.

Finally, I am highly indebted to my Muslim brothers and sisters for their ceaseless prayers

towards this program and May ALLAH (S.W.T) reward and have mercy on us and may he make

jannatul-firdausi be our final abode. Ameen.

V
TABLE OF CONTENTS

CONTENTS

PAGE

Certification II

Dedication III

Abstract IV

Acknowledgement V

Table of Contents VI

List of Figures XI

List of Tables XII

List of Appendices XIII

CHAPTER ONE: INTRODUCTION

1.1 Background………………………………………………………………………… 1

1.2 Company Background……………………………………………………………... 2

1.3 Statement of the Problems…………………………………………………………. 3

1.4 Aim and Objectives…………………………………………………………………4

1.5 Scope of the Research………………………………………………………………5

1.6 Significance of the Research………………………………………………………..6

1.7 Research Motivation……………………………………………………………….. 7

1.8 Definitions of Terms………………………………………………………………..7

1.9 Project Organization……………………………………………………………….. 8

VI
CHAPTER TWO: LITRETURE REVIEW

2.1 Introduction………………………………………………………………………… 9

2.2 Management Information System………………………………………………….. 10

2.3 E-Commerce.............................................................................................................. 11

2.4 Business to Consumer (B2C)..……………………………………………………... 12

2.5 Decision Support System…………………………………………………………... 13

2.6 Security…………………………………………………………………………….. 13

2.7 Payment……………………………………………………………………………. 14

2.8 Portal………………………………………………………………………………...15

2.9 Ticketing System…………………………………………………………………... 16

2.9.1 Review on the Existing Manual Bus Ticketing System…………………….16

2.9.2 Review on Some Existing Computerized Bus Ticketing System………….. 17

2.9.3 Comparison between manual and computerized ticketing system………… 18

2.10 Review on the existing online ticketing system……………………………………. 18

2.10.1 Comparison between online existing bus ticketing System………………...22

2.11 Development Tools………………………………………………………………… 23

CHAPTER THREE: SYSTEM ANALYSIS

3.1 Introduction………………………………………………………………………... 28

3.2 Research Methodology…………………………………………………………….. 28

3.3 Fact Finding Method……………………………………………………………….. 30

3.3.1 Observation………………………………………………………………… 30

3.3.2 Interview…………………………………………………………………… 30

VII
3.3.3 Interview Questions and Results……………………………………………31

3.3.4 Interview with the Operational Manager…………………………………... 31

3.3.5 Interview Analysis…………………………………………………………. 34

3.3.6 Analysis of the Existing System’s procedure……………………………….35

3.4 Description of the Proposed System……………………………………………….. 36

3.5 Intended Users……………………………………………………………………....37

3.6 Analysis of the Proposed System Functions……………………………………….. 37

3.7 Functional Requirement……………………………………………………………. 38

3.6.1 Staff………………………………………………………………………… 38

3.6.2 Customers………………………………………………………………….. 40

3.8 Use Case Diagram…………………………………………………………………. 41

3.8.1 Use Case Description………………………………………………………. 44

3.9 Activity Diagram…………………………………………………………………... 46

3.10 Class Diagram…………………………………………………….………………... 48

3.11 Non- Functional Requirement………………………………………………………50

CHAPTER FOUR: SYSTEM DESIGN, IMPLEMENTATION AND TESTING

4.1 Introduction………………………………………………………………………… 51

4.2 System Functional Design…………………………………………………………. 51

4.2.1 Structure Design…………………………………………………………………….51

4.2.1.1 Structure Chart for Staff Section……………………………………………52

4.2.1.2 Structure Chart for Customer Section……………………………………… 54

4.3 Data Flow Diagram………………………………………………………………… 55

VIII
4.4 Database Design…………………………………………………………………… 58

4.4.1 Conceptual Database Design………………………………………………..58

4.4.2 Logical Database Design…………………………………………………... 60

4.4.3 Physical Database Design………………………………………………….. 61

4.5 Tools and Methodology used………………………………………………………. 69

4.5.1 Software Package used……………………………………………………...69

4.5.2 Tools used………………………………………………………….. ………70

4.5.2.1 Software Requirement……………………………………………………....70

4.5.2.2 Scripting Language………………………………………………………….70

4.5.2.3 Database Management………………………………………………………70

4.5.2.4 Operating System……………………………………………………………71

4.6 Hardware and Software Requirements……………………………………………...71

4.6.1 Requirement for System Development…………………………………….. 71

4.7 Human Computer Interaction (HCI) Factors………………………………………. 72

4.8 Goals of User Interface (Usability Factors)………………………………………... 72

4.9 Web Page Design Principles……………………………………………………….. 73

4.10 System Implementation……………………………………………………………. 74

4.10.1 Guidelines on How Online Bus Ticketing System

Web portal can be implemented……………………………………………...……. 74

4.11 System Architectural Design………………………………………………………. 74

4.12 Interface Design……………………………………………………………………. 77

4.13 Source Codes………………………………………………………………………. 77

4.14 Testing………………………………………………………………………………77

IX
4.14.1 Unit Testing………………………………………………………………... 77

4.14.2 Integral Testing…………………………………………………………….. 78

4.14.3 System Testing……………………………………………………………... 79

4.14.4 Acceptance Testing………………………………………………………… 81

CHAPTER FIVE: CONCLUSION

5.1 Introduction………………………………………………………………………… 82

5.2 Limitation of the project…………………………………………………………….82

5.3 Outcomes of the project……………………………………………………………. 82

5.4 Future work of the research…………………………………………………………84

5.5 Conclusion…………………………………………………………………………. 85

References…………………………………………………………………………………. 87

Appendix…………………………………………………………………………………... 89

X
LIST OF FIGURES

Figure 2.1 Sokoto transport authority ticket…………………………………………… 17

Figure 2.2 www.abctransport.com home page………………………………………… 19

Figure 2.3 www.oya.com.ng homepage……………………………………………….. 21

Figure 3.1 waterfall model……………….……………………………………………..28

Figure 3.2 Data flow of the existing system………………..………………………….. 36

Figure 3.3 Use case diagram…………………………………………………………... 43

Figure 3.4 Activity diagram for ticket booking……………………………………….. 47

Figure 3.5 Activity diagram for booked ticket………………………………………… 47

Figure 3.6 Activity diagram for driver rating. ………………………………………… 48

Figure 3.7 Class diagram for online ticketing system…………………………………. 49

Figure 4.1 Structure chart for SSTA…………………………………………………....52

Figure 4.2 Administrator structure chart………………………………………………. 52

Figure 4.3 Operator section chart……………………………………………………… 53

Figure 4.4 Manager Section chart……………………………………………………... 53

Figure 4.5 Cashier section chart……………………………………………………….. 54

Figure 4.6 Customer chart section……………………………………………………... 55

Figure 4.7 Context data flow diagram…………………………………………………. 57

Figure 4.8 ER diagram………………………………………………………………… 59

Figure 4.9 System architectural diagram……………………………………………….76

XI
LIST OF TABLES

Table 2.1 Comparison summary between manual and

computerized Ticketing System……………………………………. ……....18

Table 2.2 Summary of oya.com.ng and abctransport.com…………………………….23

Tables’ 3.1 use case description…………………………………………………………44

Tables’ 4.1 Data dictionary……………………………………………………………... 61

Table 4.2 Unit testing for administrator login module………………………………...78

Table 4.3 Integrated testing for the Customer Ticket Booking module……………….79

XII
LIST OF APPENDICES

A: Interface Design (Homepages)……………………………………………………...89

B: Interface Design (Staff section for administrator)…………………………………. 90

C: Interface Design (Staff section for Manager)……………………………………….92

D: Interface Design (Staff section for Operator)……………………………………… 95

E: Interface Design (Staff section for Cashier)……………………………………….. 97

F: Interface Design (Section Customer)……………………………………………….98

G: Source Code (login.php)…………………………………………………………… 103

H: Source Codes (addcustomer1.php)………………………………………………… 104

XIII
CHAPTER ONE: INTRODUCTION

1.1 Background

A ticket is defined as “a piece of paper or card giving the holder the right to admission to

a place or event or to travel on public transport” (Oxford, 2005).

Generally, a bus ticketing system consists of all the activities involved in producing a

ticket, which includes, producing tickets, booking ticket, selling tickets, rejection of the tickets,

total tickets produced for a trip, total tickets sold and income gained through the ticket selling.

A bus ticketing system can let customer to know the information about the bus schedule

and ticket. Nowadays, online are very common issues to every one so that checking information

using online can save allot of time to the customer, so that customer no need to go to the counter

to ask of bus and schedule.

Bus ticketing system is a complex system that is difficult to be managed by human, so as

a result software system can be used instead of human, which will help to avoid a big percent of

mistakes.

Online Bus ticketing system make process of scheduling trips more easier and prevent

conflicting in time, also it help customers to book their tickets from their homes and checks the

pricing system of the routes, the price of ticket may increase or decrease depending on the season,

availability, time of booking, and also depending on the class that customer select and all these

factors will be calculated automatically and instantly.

Online ticketing system is a system that assist not only the passengers but also the bus staff

position as an efficient service provider, gaining competitive advantages and also lead to superior

control over the reservation process and operation, compared to conventional manual processing.

The main feature in this online e-ticketing system is to cater destinations between inter cities within

1
Nigeria. With this system, the passenger can perform an online bus booking at his or her own free

time and will consecutively reduce the human traffic in Nigeria.

Besides the above given reason of curbing the traffic flow and reducing the human and

negative environment congestion in Sokoto State Transport Authority Bus Terminal, Therefore a

customer has a choice to rate/rank a driver base on his performance and behavior during the cost

of journey, the element of providing options to a customer to rate a driver is very important and

should be implemented in the Online Bus Ticketing System web portal. This element is relatively

important based on the number of unsatisfactory experiences by customers and accidents occurred

due to the negligence of the bus driver (Audrey, 2006).

To achieve this element the usage of a Decision Support System (DSS) and Management

Information System (MIS) as a tool to develop a system that will finally benefits the user to

maximize their rights to make decision based on merit and also the bus company to meet their

organization financial objective.

1.2 Company Background

Sokoto State Central Motor Park, Young Shall Grow motor Park and Sokoto State transport

Authority are the most significant public transport (bus) terminal in Sokoto state. SOKOTO

STATE TRANSPORT AUTHORITY (SSTA) was re- established by state government after the

received another set of buses (FUMTA) federal urban mass transit agencies enters into a contract

with Sokoto State Government for the maintenance of the supply of the spare parts and the state

government to the making of installment payment of the buses and spare parts. In 1994 the

transport authority move to its permanent headquarters, the organization like most other public

parastatals, has been experiencing problems of MIS-management and slow development, the

organization is headed by the general manager who is a chief executive and supported by members

2
of management staff. The Sokoto State Transport Authority is under the supervision of the state

ministry of works, Housing and Transport.

1.3 Statement of the Problem

The existing bus ticketing system for Sokoto state transport authority is manual and so much

during the weekend or any given public holidays, the number of commuters’ increases by doubles.

The main activity that is taking place in Sokoto State Bus Terminal is over the counter bus ticket

sales. With the increasing number of human traffic of 800+ passengers per day with 66+ buses to

different routes in the Nigeria. In Sokoto State Transport Authority, purchasing a bus ticket has

been an uphill task if a passenger has planned their detailed traveling itinerary. As the result of

the survey conducted, due to the intense number of human traffic increase in purchasing a bus

ticket is not merely a five or ten minute’s task, but in fact, it can take up to 20 minutes or half of

an hour especially during the peak season. Some factors that trigger the development of a new system

are:

1) Time consuming: The manual system is very time consuming, stressful and more prone

to errors in purchasing a ticket, storing of data, and accessing of data.

2) Insecurity of data: This means lack of security of data or information. In the manual

method, records are kept in the office and several people may have opportunity to check

all the files because all the files are kept in an appropriate way, this will lead to losses of

data and even theft of the records that are valuable.

3) Data Inconsistency and Redundancy: In the manual method of keeping records for

processing and manipulation, man has in course of time, devised certain tools which

include paper, biro and pencil which he used in recording of data or information and using

these manual tools makes him to have duplicate copy of stored data, with this redundancy

3
of data and human errors may be encountered and also many papers are wasted and

consume many space for storing the record.

4) Delay in Accessing Data: In the manual method of keeping records, accessing data or

information become very tedious, because all the files that contained information are not

well arranged the way that can be accessed in an appropriate and accurate manner, this will

lead to losses of stored information.

5) Ineffective Retrieval of Data: Considering the manual method of keeping records,

retrieving on information become very tedious, all files that contained the records are kept

in sales office, therefore retrieving are done by checking the files one after the other, this

will consume time, misplacement of data or information and wasting of energy. With this

many errors will be encountered. And it took time for the staff in the company to know all

transactions.

6) Lack of data Integrity: Using manual method of keeping records, all information’s stored

are not prevented from people who do not have access to it, and making sure that those

who should have access to it can get in a way that are expected to be for feature use.

7) Ineffective Transfer of Data: In a manual method of storing records, transferring of data

or information that are stored in a files is done by people who carry records from one office

to the other, using this manual method many records are lost and will consume time.

1.4 Aim and Objectives

The aim of this project is to develop an online bus ticketing system for the Sokoto state

transport authority to satisfy a facility of all transaction online with effectiveness to achieve the

below objectives:

4
a) To investigate and analyze the problems on the existing e-ticketing systems provided by

individual bus operators.

b) To identify the relevant features of various components, methods needed for the Online

Bus Ticketing System web portal and to assist bus operators operations and marketing

decision through timely decision making via Management Information System through the

deployment of Online Bus Ticketing System web portal and the phasing out of manual

ticketing system.

c) To enable passenger to check the availability of the bus ticket, check the time of departure

and arrival for every Transnational’s bus online through the system.

d) To provide a passenger with a web-based bus ticket functions that enable passenger to

reserve/book bus ticket through the online system and no need to queue up in the counter.

e) To enable a customer to cancel/postpone a booked ticket and also rate a driver after

travelling with the company bus.

f) To ease the bus ticket payment online using Credit Card (e.g. Master Card, Visa Card,

Interswitch and Verve card) or bank payment by presenting a bank payment teller during

the process of registration.

g) To minimize the number of staff at the ticket box and the counter.

1.5 Scope of the Project

This research work focuses on two parties, i.e. Staff and the customers. The system

administrator may be specialize member of the company staff who administer staff to this system,

the administrator is able to add, edit delete staff. The staff are management board members whose

are cashiers, managers and bus operators. The functions of staff is to retrieve information, verify

payments, travelling issues, view rates of driver, allocating driver to bus, suspending/releasing

5
drivers, manage route, manage bus seats, manage news, generate reports and etc. This back-end

activities will help the company to evaluate its current position and to plan its company’s

operations on how and what action to be taken in order to stay ahead in this competitive business

world.

The customer will be able to utilize this Online Bus Ticketing System web portal to perform

their transaction of purchasing bus tickets at their own hassle free time, postpone/cancel ticket

booked, and rate a driver as a decision support system.

1.6 Significance of the Research

This research survey identifies the need of developing and promoting a comprehensive

Online Bus Ticketing System web portal of various bus operators in Nigeria. This study explores

views from the bus ticketing company’s as the service providers and the customers as the system

users upon the adoption of this system.

The bus ticketing company’s, the survey conducted identifies the responds received from

the passengers on the current available system in the market, the cost-effectiveness of developing

and maintaining this system and the usage of reports from the system.

In this business competitive era, Information Communication Technology (ICT) is placed

on a platform by many organizations as their key indicator for success. Online data handling has

been a major tool to provide better customer service. By adapting ICT as a tool to provide the bus

operator’s management, it will not only improve operations efficiency, gaining competitive

advantages, delivering higher-quality services, but it will also lead an organization to superior

control over the booking process which will allow the customers to choose their services from

other competitors.

6
On the other hand, the survey conducted on the system users identifies the awareness of

the current system and the willingness to transform from practicing the conventional (manual)

method of over the counter for purchasing of bus tickets to the modern method of purchasing

through a web portal.

1.7 Research Motivation

The motivations for this research project came from needs to provide an efficient and fast

full way of how bus ticketing companies handle their ticket transactions. Even though the Sokoto

State Transport Authority uses manual process of ticketing system. There is always the need for

the Company to explore a means through which records can be manage which enable passenger to

check availability of bus ticket, book bus ticket, and pay bus ticket online.

With these in mind, there is need to design and implement an online Ticketing system, for

the Sokoto State Transport Authority in order to solve some of the problems concerning with

manual ticketing system as mentioned above.

From experience, I as a customer that has been travelling through Sokoto State Transport

authority, an observation has been made on how the carry out their operation on esteem manual

ticketing system which need to upgrade. With my knowledge and experience that I had in

software programming, database design, system analysis and etc. are what willingly motivate

me to developed this system as my research work to overcome the problems of existing system.

1.8 Definitions of Terms

Bus: A large motor vehicle carrying passengers on a fixed route.

Ticket: A piece paper or card holder that gives right to admission to a place or event or travel on

public transport.

Reservation: The action of reserving/booking or arranging for use of a particular person.

7
Cancellation: The act of deciding that (a planned event) will not take place.

Postponement: An act of arranging for (something) to take place at a time later than that first

scheduled.

System: A complex whole; a set of things working together as a mechanism or interconnecting

network.

Data: Facts and statistics used for reference or analysis.

Record: A piece of evidence about the past, especially a written or other permanent account.

Information: Facts or knowledge provided or learned.

Travel: To be on a journey, often for pleasure or business, and with luggage; to go from one place

to another.

Rate: To assign or to be assigned a particular rank or level.

1.8 Project Organization

The purpose of this research document is to give an overview of major phases involved

throughout the development of the dissertation. Basically, the research document is divided into 5

chapters.

Chapter 1 covers the Introduction of the research. This chapter covers the overview of the

research including problem statements, objectives, scope and significance of the research.

Chapter 2 covers literature review. This chapter concentrates on the overall aspect about

Online Bus Ticketing System. This chapter begins with the introduction of e-ticketing,

understanding the online ticketing applications, understanding the role of e-commerce, the security

and privacy issues, and the payment methods of online ticketing. The incorporation of Decision

Support System and Management Information System are also highlighted in this chapter for better

understanding in the development of the Online Bus Ticketing System web portal.

8
Chapter 3 covers on the research methodology that is used in completing the dissertation

and the analysis of an Online Bus Ticketing System web portal after obtaining information from

the interview and observation. This includes the analysis on the bus passengers awareness on the

current services provided to them by the current individual bus e-ticketing systems. The bus

operators ranking is explained further in this chapter. This includes the calculation derived for

each criterion that will determine the ranking. This chapter also includes a proposed framework

on implementation of an Online Bus Ticketing System web portal

Chapter 4 covers the design and development of the Online Bus Ticketing System web

portal. The structure charts, context data flow diagram, entity relationship diagram and data

dictionary is also shown in this chapter. This chapter also includes the implementation of the

suggested features gathered from the survey and the technical aspects of the development.

Chapter 5 covers the conclusion, project outcomes, future work of the research and project

limitations of the system.

9
CHAPTER TWO: LITRETURE REVIEW

2.1 Introduction

This chapter discus the facts and finding on electronic ticketing or e-ticketing system and

review of related literature to the system.

2.2 Management Information System

A Management Information System, or MIS, is a computer-based system that optimizes the

collection, transfer, and presentation of information throughout an organization by using an

integrated structure of databases and information flow (Long & Long, 2004). MIS combines the

theoretical work of computer science, management science, and operations research with a

practical orientation toward developing system solutions to real-world problems and managing

information technology resources (Kenneth & Laudon, 2004).

MIS is also seen as a system collecting and analyzing data and producing reports. It purpose is

to help managers to solve structured problems. But it should also fulfill a number of other purposes

(Adriana, 2003):

1. It should provide a basis to analyze warning signals that can originate both externally and

internally; this is the main function of data base;

2. It should automate routine operations thus avoiding human work in the processing tasks;

3. It should assist management in making routine decisions;

4. It should provide the information necessary to make non-routine decisions;

5. It should serve as a strategic weapon to gain competitive advantages.

There are numerous definitions of MIS, for the purpose of this research, MIS can be defined as a

system providing bus operator management with accurate and timely information necessary to

facilitate the decision-making process and enable the bus operator’s planning, control, and

10
operational functions to be carried out effectively. By doing so, MIS will increase competitiveness

between bus operators, reducing cost and improving processing speed.

2.3 E-Commerce

E-Commerce stands for Electronic Commerce. E-Commerce is often thought as simply as

buying and selling using the internet. It involves more than mediated financial transactions

between organizations and customers (Chaffey, 2004).

E-commerce is the sharing of business information, maintaining business relationships, and

conducting business transactions by means of telecommunications networks. In today's business

environment, where the operational boundaries between firms have become fluid, it is often both

pragmatically and analytically unfruitful to separate inter-organizational and intra-organizational

business processes. Therefore, E-commerce includes the sell-buy relationships and transactions

between companies, as well as the corporate processes that support the commerce within

individual companies (Zwass, 1996).

Rapid developments in information technology and telecommunications have set the pace

for an electronic revolution leading to the emergence of E-commerce. Although the use of Internet

as a channel for shopping has been around for quite some time now, it has not caught on with the

Nigerian masses just as yet. Teething problems with security and privacy is hindering the potential

growth of this medium as a preferred channel of shopping (Yulihasri, 2005).

11
2.4 Business to Consumer (B2c)

The term E-Commerce refers to all online transactions, while B2C stands for "business-to

customer" applies to any business or organization that sells its products or services to customers

over the Internet for their own use. When most people think of B2C e-commerce, they think of

Amazon.com, the online bookseller that launched its web site in 1995 and quickly took on

America's major retailers. However, in addition to online retailers, B2C has grown to include

services such as online banking, travel services, online auctions, health information and real estate

sites (Patton, 2005).

In Nigeria, the growth of Business-to-Customer (B2C) e-commerce is still at its early stage.

Computer ownership is 8 people per 200 populations in 2001 and is expected to increase to 15 by

the end of 2002 and hit 30 by 2005, whereas the worldwide standard of computer ownership is 40.

At the same time, the Internet user’s population in Nigeria is estimated at close to forty five million

which is 8 in the world ranking, representing 26.5% of the total population (Miniwatts, 2012).

Nigeria is still lacking behind in almost all aspects of the Internet. Like most African

countries, Nigeria is working hard to catch up with the developed world’s economies, and the

Internet presence become urgent issues. This country is still struggling to develop its Internet

infrastructure and building its knowledge economy, for example developing communications

networks, enabling Internet access to all, and setting up a legal framework for using the Internet.

Most significantly, the primary focus is to promote Internet usage among Nigeria to improve the

country’s competitiveness

12
2.4 Decision Support System

Decision Support System or DSS is an information system that can be used to help

decision-makers make better decisions. Decision-making involves activities such as collecting

relevant information from the environment, modeling the problem domain and generating

alternative solutions, employing a decision strategy to choose between alternatives, testing and

justifying the decision, and effecting the necessary changes in the environment to implement the

decision. DSS have been developed to support human users across all of these activities (Sproule,

2002).

DSS feature must be included in the development of an Online Bus Ticketing web portal

to provide customers with a service to allow them to insert their desired traveling location and

dates into the system which in turn displays the data based on the criteria chosen. This Online Bus

Ticketing web portal will then be a system that not only allows customers to book and purchase

bus tickets online, but also give a deciding power to customers for rating the drivers they travelled

with.

2.6 Security

Security is defined as the protection of data against accidental or intentional disclosure to

unauthorized persons, or unauthorized modifications or destruction (Udo, 2001). Security concern

has become one of the main reasons for not transacting online because as soon as a user accesses

the Internet, anyone from anywhere around the world has access to the information being sent.

The risk of data theft, theft of service, and corruption of data, and viruses becomes a reality. The

lack of security, reliability and accountability make the Internet online transaction too risky for

many users (Ramayah, 2003).

13
Devising the Internet security policy can be complex because a rational policy requires an

organization to access the value of information. The policy must apply to information stored in

computers as well as to information traveling through a network. The internet security policy is

complex as primary complexity arises because of the internet security cannot separate from the

security policy for the computer policy for computer systems attached to the internet. In particular,

defining a policy for data that travels through the internet does not guarantee that data will be

secure (Dougles, 2001).

For this research, the Internet security that should be taken into consideration is the

unauthorized access. Unauthorized access can defined as the use and access of information

without getting the permission from the administrator. This problem is often viewed as the hacker

or the employee gaining access to the information and resources from the organization through the

internet. A hacker is a person who tries to enter into the computer system or network illegally and

then access the information or resources before logging out. Hackers have extensive knowledge

of the workings of the Internet and can exploit security vulnerabilities to gain access to systems.

The hacker can improvise and try different approaches to breach a system's security, but hacking

is inefficient because hackers typically focus on one system at a time. Instead, they often prefer

to focus on the attack vectors that can reach the masses more efficiently (Tubin, 2005).

2.7 Payment

The most important part of selling online is accepting payments from users for a single

transaction for a purchase of an item from a Web site or for a series of transaction for the payment

of membership fees or installment payments via your Web site. Online payment processing offers

users the convenience of submitting their credit card or other form of payment on your Web site

(Verisign, 2005).

14
The implementation of chip technology now, offers new forms of payment choices and

higher security to the public. In 2004, an important step has been taken by the Bankcard by

replacing the magnetic stripe Automated Teller Machine (ATM) cards towards migrating to

Europay MasterCard VISA (EMV) compliant credit cards. A further development has been also

introduced, in Nigeria which is the VoguePay. VoguePay International is owned and managed by

Afrisoft Interactive Ventures Limited, Lagos, Nigeria and Mayday & Couplotters Investment

Limited, United Kingdom. VoguePay is a unique online payment processor whose vision is to

offer buyers and sellers a secure and easy-to-use means of transacting business online, It allows

site owners to receive payment for their goods and services on their website without any setup fee,

It distinguishes itself from other online payment processors with its array of features that are

guided by its core values: Security, User Friendliness and Reliability.

The ATM machines of the participating banks and terminals at retail outlets are being

upgraded to facilitate MEPS Cash transactions. There are various modes of payment through the

internet, namely: Cards, Online Banking Services, Electronic Money, E- Wallet, E- Billing, and

Mobile Payments.

Online system allows customers to plug into a host of banking services from a personal

computer by connecting with the bank’s computers over telephone lines. The convenience can be

compelling. Not only is travel time reduced, but ATM machines, telephone banking or banking

by mail are often unnecessary.

2.8 Portal

A portal is a Web site or other service that provides an initial point of entry to the Web or

to internal company data (Kenneth, 2004). Another description for a portal is a “gateway” to the

15
Internet, it is also known as Web site that provide some basic information and services (Lim, E.,

2004) and, more importantly, provide access to selected sites in the Internet through links and to

many other sites through search engines (Zahir, 2001).

Portals are important because they are the prime real estate of the Internet. Portal varies in

scope and the services they offer, so there are many terms evolved to describe the different types

of portals (Whitten, 2002). For this research, the type of portal that will be best used for an Online

Bus Ticketing System web portal will be horizontal or functional portal where it has the

characteristics of a range of services; search engines, directories, personal information

management.

Portals are special business models which are full with Web information resources that

help individual or organization to locate information more efficiently. Web services are best used

in portals because of the portal technology ability to combine different applications and services

and present them into an easy and single interface.

2.9 Ticketing System

A ticket is defined as “a piece of paper or card giving the holder the right to admission to

a place or event or to travel on public transport” (Oxford, 2005). Generally, a bus ticketing system

consists of all the activities involved in producing a ticket, which includes, producing tickets,

booking ticket, selling tickets, rejection of the tickets, total tickets produced for a trip and total

tickets sold and income gained through the ticket selling. There are two types of bus ticketing

system, manual and computerized.

2.9.1 Review on the Existing Manual Bus Ticketing System

Most of the ticketing systems in Nigeria are conducted manually. Before tickets are sold

to customers, trip to particular destination has to be scheduled which is fixed by the management

16
of each bus operators. The management will also assign a bus driver for each of these scheduled

trips. Once the schedule is finalized, the management issues standard tickets which has the ticket

serial number. The destination and price are printed on the ticket for particular trip.

There is several bus operators offers call and book system to its customers. Customer calls

up the bus company and gives their particulars like name, address and identification numbers and

stating their destination. The counter will manually reserve the ticket for the customers, which

means the ticket sales counter clerk will put the ticket aside. The customer has to come personally

to the ticket counter one day before the actual trip to collect the reserved ticket. Failing to do so,

the ticket will then be released to other passenger.

The ticket sales counter clerk has to manually calculate the total amount of the ticket sold

and send the daily report to the management. Matters become complicated when several branches

conduct the ticketing-selling task for the same bus at the same time. The ambiguities let the

management face operation and accounting problems.

Figure 2.1: Sokoto transport authority ticket

2.9.2 Review on Some Existing Computerized Bus Ticketing System

The management of each bus operators sets the bus trip schedule. Based on this schedule,

ticket will be generated for a particular trip according to the seat available in each bus. For

example, there may be a trip to Jos in the schedule list. The counter clerk from every station is
17
entitled to check the ticket availability from the database when customers come to the ticket sales

counter. Upon availability, the sales clerk will print out the ticket with details such as destination,

date and time of departure, date of purchase, ticket price, and bus registration number. The ticket

is considered sold once it is printed out. The booking facilities are also available to the public, not

only authorized agents are allowed to book tickets

At the end of the day, the ticket sales counter clerk will check out the summary reports,

which contains information like how many trips of the day, how many passengers abort the buses

and the sales amount collected for the day. This report will be handed to officers on duty for

verification and later it will be sent to the management for future analysis and updates.

2.9.3 Comparison between manual and computerized ticketing system

The table below shows the comparison between manual and computerized ticketing system

Characteristics Manual Computerized


System organization Standard ticket are used Printed tickets are used
Ticket availability Less efficient in identifying Clear view on the seat
ticket availability availability
Daily report generation Manual calculations of the total Uses computerized system to
sales and manual report are generate various report
prepared
Further analysis Manual prediction and analysis The report is free from human
errors and prompt to make
more accurate analysis
Table 2.1 Comparison summary between manual and computerized Ticketing System

2.10 Review on the existing online ticketing system

ABC transport

ABC Transport (1993) developed a system for distinguished travelers who would

otherwise use air service. The operations within and outside Nigeria are carried out in ultra-modern

18
terminals, with comfortable lounges in various cities like Lagos (Jibowu & Amuwo-Odofin), Aba,

Owerri, Port-Harcourt, Abuja, Enugu, Onitsha, Umuahia, Jos, Mbaise, Bolade, and Accra (Ghana).

Figure 2.2 is the screen shots of website homepage. (ABC transport, 1993).

Figure 2.2: ABC Transport home page.

Advantages of using abctransport.com

1. Online checking for bus fare and schedule for the specified route.

2. Quick payment system can't get easier

3. It is faster to book your ABC Transport tickets online

4. Reliable and convenient method of payment.

5. You can book your ABC Transport Tickets directly from your mobile phone.

19
6. E- Ticket is given with a printing option.

7. Offer students more for a lesser price.

8. Every passenger who makes eleven trips with ABC Transport within a given year,

is entitled to a free ticket on his/her twelfth trip and issued with the company's Gold Card

with lots of privileges.

9. Travel tips for customer as a guides

Disadvantages of using abctransport.com

1. Availability of seats can only be checked for the given particular day. Users are able to

only check the specific day for their trip when proceeding to the reservation and purchasing

process.

2. No cancellation facility is available after the reservation process.

3. Too many steps to be followed for a bus ticket reservation and purchasing. Users may be

confused to go through all these steps.

4. Seat selection is unavailable.

Oya.com.ng

Oya (2010) developed a system that aims at making travel by bus easier and fun across

Nigeria. This system help travellers pre-book and buy bus tickets before the day of travel.

Customer can also call an agent to reserve seat based on the choice of cutomer, and also this system

provide customer with several payment options based on the choice the one most comfortable for

a customer. Customer can also pre-book and pay on the travel day, so far as customer are there at

the park in time enough before the bus is filled up.friends about us. Figure 2.3 is the screen shoot

of the oya website homepage.

20
Figure 2.3: Oya homepage

Advantages of using oya.com.ng

1. User friendly because the steps to purchase a ticket are simple and direct.

2. Customer can call to reserve a choice seat and a bus to travel with.

3. The users can check the schedule for the specified route.

4. Payment method is reliable online.

5. Customer can also pre-book and pay on the travel day.

6. Customer can enjoy discount benefits on second book of ticket.

7. Sms alert for booked ticket.

Disadvantages of using oya.com.ng

1. Seat map and seat preference are not available.

2. Inconvenient for first time users because their account needs to have available balance

before a ticket can be purchased.

3. Online reservation and cancellation of bus ticket is not available.

21
4. Help and FAQ section is not available in this web site.

5. Seat status information is unavailable.

6. Seat selection is unavailable.

7. Printing out of ticket is unavailable.

8. Online cancellation bus ticket is not available in this web site.

2.10.1 Comparison between existing bus ticketing System

This section discuses on comparison between two online ticketing systems in Nigeria i.e.

Oya Transport and ABC Transport, the ticketing system of abc transport is the best one because it

includes most of the features as a user- friendly and informative ticketing system. Whereas the

ticketing system of the oya provides the least functionality.

As one of the research objectives is to have a ranking system for the bus drivers, there is

none was found on this element in any of the existing e-ticketing system. With this, an introduction

of a star ranking system for bus drivers in the development of the new system.

The summary of the general features of each of the compared online ticketing system has

shown at Table 2.2.

22
Charact

Loading and response

reservation/purchasing

Company information

Other website linkage


Online postponement
eristics

Routes location map


Print out reservation
Online registration

Online cancelation
User interactivity
of
Webpage design

Sms/ email alert


User instruction
Online payment
online

Seat status
Fare rates
Seat map
ticketing

ranking
Online
time
system

ABC √ √ √ √ √ √ √ √
attractive

transpor × × × × × × ×
quick

high

Oya √ √ √ √ √ √
transpor
moderate
attractive

√ × × √ × × × × ×
quick

Table 2.2: Summary of oya.com.ng and abctransport.com

2.11 Development Tools

1. HTML: which is stand for Hypertext Markup Language is the main markup language for

creating web pages and other information that can be displayed in a web browser.

HTML elements form the building blocks of all websites. HTML allows images and

objects to be embedded and can be used to create interactive forms. It provides a means to create

structured documents by denoting structural semantics for text such as headings, paragraphs, lists,

links, quotes and other items. It can embed scripts written in languages such as JavaScript which

affect the behavior of HTML web pages.

2. PHP: is a server-side scripting language designed for web development but also used as a

general-purpose programming language. While PHP originally stood for Personal Home Page, it

now stands for PHP: Hypertext Preprocessor, a recursive backronym.

PHP code is interpreted by a web server with a PHP processor module, which generates

the resulting web page: PHP commands can be embedded directly into an HTML source document

23
rather than calling an external file to process data. It has also evolved to include a command-line

interface capability and can be used in standalone graphical applications.

3. MySQL: "My S-Q-L", officially, but also called “My Sequel" is the world's second most widely

used open-source relational database management system (RDBMS). The SQL phrase stands for

Structured Query Language.

MySQL is a popular choice of database for use in web applications, and is a central

component of the widely used LAMP open source web application software stack (and other 'AMP'

stacks). LAMP is an acronym for "Linux, Apache, MySQL, Perl/PHP/Python." Free-software-

open source projects that require a full-featured database management system often use MySQL.

4. Wampserver: The acronym wamp refers to first letters of the four components of a solution

stack, composed entirely of free and open-source software, suitable for building high-availability

heavy-duty dynamic web sites, and capable of serving tens of thousands of requests

simultaneously. The meaning of the wamp acronym depends on which specific components are

used as part of the actual bundle:

5. Windows, the operating system

6. Apache HTTP Server, the web server

7. MySQL, MariaDB or MongoDB, the database management system

8. PHP, Perl, or Python, the scripting languages (respectively programming languages) used

for dynamic web pages and web development.

The exact combination of the software included in a WAMP stack is prone to variation, for

example Apache web server can be replaced by some other web server software. Though the

original authors of these programs did not design them to work as a component of the WAMP

24
stack, the development philosophy and tool sets are shared and were developed in close

conjunction, so they work and scale very well together.

5. JavaScript (JS): Is a dynamic computer programming language. It is most commonly used as

part of web browsers, whose implementations allow client-side scripts to interact with the user,

control the browser, communicate asynchronously, and alter the document content that is

displayed. It is also being used in server-side programming, game development and the creation

of desktop and mobile applications.

6. Cascading Style Sheets (CSS): is a style sheet language used for describing the look and

formatting of a document written in a markup language. While most often used to style web pages

and interfaces written in HTML and XHTML, the language can be applied to any kind of XML

document, including plain XML, SVG and XUL. CSS is a cornerstone specification of the web

and almost all web pages use CSS style sheets to describe their presentation.

CSS is designed primarily to enable the separation of document content from document

presentation, including elements such as the layout, colors, and fonts. This separation can improve

content accessibility, provide more flexibility and control in the specification of presentation

characteristics, enable multiple pages to share formatting, and reduce complexity and repetition in

the structural content (such as by allowing for table less web design).

7. JQuery: is a free and open source that is used by web developers to navigate through HTML

documents, handle events, perform animations and add Ajax interactions to the web pages.

8. Ajax: is an acronym for Asynchronous JavaScript and XML) is a group of interrelated web

development techniques used on the client-side to create asynchronous web applications. With

Ajax, web applications can send data to, and retrieve data from, a server asynchronously (in the

background) without interfering with the display and behavior of the existing page.

25
9. Pacestar uml diagramer: is a software that helps you generate UML 2.0 diagrams quickly and

easily. Develop, document, and communicate your designs in a systematic yet flexible AND

commonly understood notation. Create activity diagrams, class and object diagrams,

communication diagrams, use case diagrams, sequence diagrams, state charts, package diagrams,

and component diagrams, deployment diagrams, composite structure diagrams, interaction

overview diagrams, and even traditional flowcharts.

10. Edraw max: it is an all-in-one diagram software that makes it simple to create professional-

looking flowcharts, organizational charts, network diagrams, business presentations, building

plans, mind maps, science illustration, fashion designs, UML diagrams, workflows, program

structures, web design diagrams, electrical engineering diagrams, directional maps, database

diagrams and more.

11. MySQL workbench: is a unified visual tool for database architects, developers, and DBAs

that enables a DBA, developer, or data architect to visually design, model, generate, and manage

databases. It includes everything a data modeler needs for creating complex ER models, forward

and reverse engineering, and also delivers key features for performing difficult change

management and documentation tasks that normally require much time and effort.

12. Snipping tool: Is a component of Microsoft windows system utility software tool used to

screen shots any content e.g. rectangular areas, a free-form area, or the entire screen in windows

operating system, snips can then be annotated using a mouse or a tablet, stored as image file(PNG,

GIF, or JPEG file). Snipping tool allows a basic image editing of the snapshot, with different

colored pens, an eraser and a highlighter.

13. Active Query Builder: Is a full featured set of tools to manage metadata, it works with SQL

queries, and assist in retrieval of data from database. It is use in easy building of complex SQL

26
queries with unions and sub queries, it provides a highly customizable and convenient interface

for end-users to understand database schema and to work with queries in efficient ways.

14. Sublime text: Is a sophisticated text editor, for code, markup and prose. It has beautiful user

interface, extra ordinary features and amazing performance. It has the function of: go to anything,

multiple selections, command palette, distraction free mode, instant project switch, plugin API and

cross platform.

27
CHAPTER THREE: SYSTEM ANALYSIS

3.1 Introduction

System Analysis is a phase which is conducted before the development of the Online Bus

Ticketing System web portal. System Analysis shows the requirement or a description of the needs

and desires for an information system. A requirement may describe functions, features, and

constraints. Thus, system requirement defines the services provided by the system and prescribes

constraints for its operation (Whitten, 2002). There are two types of requirement, functional

requirement and non-functional requirement. Both these requirements will be discussed later in

the chapter, but before that It is important to fulfill the planning for the implementation phase. This

can only be done if proper methodology is selected. Methodology is important to make sure all

project life cycle activities are being carried out without any shortcuts. Methodology helps the

system developers to take one step at a time towards accomplishing the full system.

3.2 Research Methodology

The methodology that might be useful is the project life cycle and prototype. The project

life cycle methodology and prototyping is a methodology that allows users to review all phases

until the users are satisfied with the Online Bus Ticketing System web portal. The figure 3.1 shows

the waterfall model methodology.

Figure 3.1: waterfall model

28
Waterfall model with Prototyping is used as a model of Online Bus Ticketing System web

portal. Waterfall model consists of stages that are cascading from one to another. One

development stage should be completed before the next begins. The Waterfall model presents a

very high-level view of activities taken place during development, and it suggests to developers

the sequence of events they should expect to encounter (Pfleeger, 2001).

The Selection phase is where an Online Bus Ticketing System application should be

selected based upon passengers and bus operator priorities. After conducting a complete research

on the application that is selected, the next is on identifying the problems.

Planning is an important phase where an Online Bus Ticketing System plan is drafted out

and changes are made so that a plan can be followed without any more changes during the final

phase. The plan is done so that there is progression or action taken on the applications selected.

The existing ticketing system within Nigeria and other countries also have been analyzed. The

plan is then followed strictly so that the system can be put into operation.

The next phase after the planning phase is on Analyzing the current and new procedures

of the system. Analysis is important to gather information from the existing e-ticketing system.

Feasibility study is conducted to find out whether it is beneficial to carry out the new system.

Studying the existing e-ticketing system and the procedures involved is what the feasibility study

is concerned with.

After the analysis phase, the next step is to Design the system based on the requirements

selected in the analysis phase. Design can be constructed easily by having a prototype system.

Prototype system is either a workable or non-workable system that has the screen design with the

important features included. So the customers and bus operators will test the prototype system to

see whether they are satisfied with the requirements.

29
Based on the feedback obtained from the user the necessary changes are made. The next

step is the Implementation phase where the process of changeover takes place where the existing

e-ticketing system is converted into an Online Bus Ticketing System web portal.

The last phase is the Maintenance phase for modification and enhancement purposes. It is

important that continuous assessment is carried out for better services in the future.

3.3 Fact Finding Method

The fact-finding methods that have been selected for this research project consists of,

observation and interview. Once information is gathered a prototype is developed as to support the

findings. Development of the prototype web portal of Online Bus Ticketing System is developed

to support the objectives of the research. The following will be the research methodologies

discussed in detail.

3.3.1 Observation

Observation is the first method used to gather information regarding the development of

an Online Bus Ticketing System web portal. For this project, Sokoto State Transport Authority

(SSTA) was visited to observe the buying habits of passengers and also observe the selling of

tickets by the bus operators. From the observation, it is found that the human traffic is extremely

high and there are too much of chaos.

3.3.2 Interview

Interview is the second method used to gather some information regarding an Online Bus

Ticketing System web portal. Interviews were conducted with the bus operator’s personnel and

with the public to find facts, verify facts, clarify facts, generate enthusiasm, and identify ideas and

opinions. A set of interview questions was prepared to ask the interviewee to respond to a series

30
of questions. The interview is divided into open and closed-ended questions so that sufficient

Information can be gathered.

3.3.3 Interview Questions and Results

An interview has been conducted on October 15, 2013, December 21, 2013 and February

6, 2014 for operational Manager at Sokoto State Transport Authority bus station, namely mal.

Ahmed Rufa,i. The main objective of this interview is to understand the bus operators operations

in the ticketing unit and to analyze the acceptance, potential and opportunities in implementing the

Online Bus Ticketing System web portal. The interview questions were prepared, is based on

open-ended and closed-ended questions. Below is the summary of the interview.

3.3.4 Interview with the Operational Manager:

The interviewee, Mal. Ahmad Rufa,i who is the Operational Manager of Sokoto Transport

Authority was interviewed at 11.30 am on October 15, 2013, and at 4.30 pm on December 21,

2013 and at last 10.00 am on February 6, 2014 for about one hour each. Below is the summary of

answers from both of the interviewees.

Question 1:

How does your company conduct the bus ticket selling, booking and purchasing process?

Could you please explain in details?

The operational Manager Answers:

We Conducts the booking and purchasing process manually.

Top management will fix the trip schedule and issues standard tickets with ticket serial number.

Question 2:

Will there be any report or statistic generated daily?

31
The operational Manager Answers:

The counter clerk has to manually calculate the total amount of the ticket sold and send the daily report
to the management.

Question 3:

How is the bus schedule planned?

The operational Manager Answers:

Fixed by the top management.

Extra trips will be provided to the customer on Friday, Saturday, Sunday and during the peak season.

Question 4:

Are your staff computer literate and are they using computers to do their daily duties?

The operational Manager Answers:

Some Staff have some basic for computer like use the MS Office.

Staff especially the counter clerk does not conduct their daily duties using computer.

Question 5:

Does your company have an Online Bus Ticketing System? If yes, how is the respond? From the

public and why you think the respond is such?

The operational Manager Answers:

No, do not have an Online Bus Ticketing System at the moment.

32
Question 6:

If there is a single system combining all the bus operator’s activities, do you think it will benefit

the public?

The operational Manager Answers:

Yes, it will benefit the public if there is a single system combining all the bus operator’s activities.

Question 7:

If your company does not have an existing Online Bus Ticketing System, what are the functions

you expect from an Online Bus Ticketing System?

The operational Manager Answers:

Functions like seat availability, schedule and fare rates, reservation and purchasing of bus tickets and
company promotions.

Question 8:

Do you think Online Bus Ticketing System is reliable in handling the purchasing of bus ticket

online and thus reducing the human congestion in Sokoto State or Nigeria in General?

The operational Manager Answers:

Not sure as this new in Nigeria in General.

Question 9:

What type of payment methods will you prefer in an Online Bus Ticketing System?

The operational Manager Answers:

E-payment which using the e-banking because this method is simple and direct.

33
Question 10:

Do you think by having a collaborated Online Bus Ticketing System web portal will ease the ticket

reservation process in the operation unit?

The operational Manager Answers:

Yes, it will somehow ease the ticket reservation process in the operation unit.

It can be concluded that the public and bus operators are ready to move forward for the

utilization of an Online Bus Ticketing System web portal. It is just not merely enough to

implement efficient online sales and purchase of bus tickets, but, other important issues that are

related to Decision Support System and Management Information System that will benefit both

customers and bus operators must also be taken into consideration.

3.3.5 Interview Analysis

The justification of chosen method is that the data collected by interview is correct and

authentic compared with the result obtained from the observation with regard to the current method

use in ticket purchasing, ticket booking and information management. The formal interview made

with the Operational Manager were to determine the area of difficulties in the process of their

manual booking system, management information system in the company, to extracts their opinion

regarding the current system and what need to be improved and also to identify the requirement of

the new system. The following are the findings:

1. The do not have an Online Bus Ticketing System at the moment.

2. Booking and purchasing ticket are done manually.

3. The counter clerk has to manually calculate the total amount of the ticket sold and send the

daily report to the management.

4. Staff especially the counter clerk does not conduct their daily duties using computer.

34
5. Functions like seat availability, schedule and fare rates, reservation and purchasing of bus

tickets, company promotions, and FAQ sections.

6. E-payment which using the e-banking because this method is simple and direct.

The data collected pointed out that the information required to reach

3.3.6 Analysis of the Existing System’s procedure

The manual mode of ticket booking, ticket purchasing, information dissemination and

dispersion of files in the company is through phone calls, direct contact or through traditional

messengers that are attached to offices of high rank staff. This mode of information transfer has

been in existence since the inception of creation of Sokoto State Transport Authority in Sokoto

State. The process goes as follows:

1. Each bus driver and his conductor are attached to particular bus

2. Each cashier is attached to particular route for financial management

3. The cashiers are attached to high rank financials officers. The financials officers are then

attached to General manager

4. Each messenger is attached to the office of a high rank staff of the institution.

5. The messenger (who is also a staff) is called or summoned upon to deliver the file, load,

and objects to its destination.

6. The messenger uses its digression to find ways to gets the files dispatched or information

to its destination.

7. Customers are gathered in queue for booking or purchasing ticket either through phone

calls or by direct contact.

8. Customers visited company notice board every day to see latest information.

35
Data flow diagram of the existing System

Figure 3.2: Data flow of the existing system

Limitations of the Existing System

The data gathered deduced that, most of the interviewee results agree that many problems

are encountered with the current system these include insecurity, redundancy, inconsistency, delay

in data accessing, ineffective retrieval of data and its often inefficient in time and cost etc., and off

course there is need to overcome these problems.

3.4 Description of the Proposed System

In efforts to improve the existing bus e-ticketing systems in Nigeria, observation on the

problems and opportunities from the existing e-ticketing sites both in Nigeria and overseas had

been conducted. With that, it is recommended an integrated system of solutions that attempts to

36
rectify many of the existing problems in the current bus e-ticketing and propose an innovative way

to enhance the services provided in the bus e-ticketing system.

Therefore, the goal of the proposed Online Bus Ticketing System web portal is to provide

a revolutionary way to interact effectively in a one stop venue. Furthermore, with this system,

customers will be able to obtain a wider choice of bus tickets since they can reach a wider range

of bus operators and a decision system to rate a driver base on behavior during the journey.

In short, with the proposed system, bus operators can now involve in making bus ticketing

purchase transactions convenient, cost effective and finally can do away with the

manual/conventional methods of selling bus tickets. Therefore, the proposed system will be

superior and function as a catalyst in the competitive business environment regardless of the

geographic barricades among the bus operators.

3.5 Intended Users

The system has the public (as Customers), super system Administrator, Cashiers, Managers

bus operators are identified as the main users of the system. This is because this system can only

be successful when there are customer to purchase and bus operators to sell their services.

3.6 Analysis of the Proposed System Functions

The system function can be divided into two sections, the Staff section and the Customer

section. In the staff section, there will be four actors which are: administrator, cashier, manager

and operator. The system allow Administrator to edit/register staff (cashier, operator, manager and

driver), a cashier manages all payment activities and operator handles bus, routes, driver allocation

to bus, and travelling activities, while manager control the decision support system from customers

of driver rating, manage customers, generate report, view user logs and activity logs.

37
In the Customer section, the customer will be able to view the home page to search on the

bus details for the desired destination based on the preferred search detail which are route, date to

travel and number of passengers. After booking ticket and it happens to be available, then the

system will allow the customer to continue with the booking processes, seat view, customer

registration details, payment activity and printing out of the booked ticket provided if the customer

is a registered. There will also be a booking cancellation feature for a customer to cancel a booked

ticket, postponed booked ticket, rate a driver or reset his password after login. In this module the

customer will also be provided information such as latest news, travelling tips about the Online

Bus Ticketing System web portal.

3.7 Functional Requirement

Functional requirement is a function or feature that must be included in an information

system to satisfy the business needs and user acceptance (Whitten, 2002). Staff and Customers

will use this proposed Online Bus Ticketing System web portal. A clear and detail functional

system requirements for this system are the Staff section and Customer section are described as

following.

3.7.1 Staff

The staff can access some of the functions in this system, which include company staff

management module, bus information module, purchasing, cancellation/postponement module,

and the reports module. Each Staff has to perform their activities. The functional requirements for

the staff’ section is divided in to three functions which are: (a) Administrator (b) Manager (c)

Operator (d) Cashier.

a) Administrator

Administrator is a super person that has the overall control of company staff which includes:

38
➢ Add, edit or delete staff(operator, manager, cashier and driver)

b) Manager

Manager is a company staff which manages company activities and has the ability to perform

the following functions:

1. Manage Customers: Manager can view, edit, delete and search all the customer that register

with the company.

2. Activity Logs: Manager can view all the activities perform by in the system.

3. User’s logs: Manager can view all the activities perform by the staff and customers.

4. Manage News: Manager can post or delete news/events by topic name and date and publish

to homepage for customers view.

5. Generate report: Manager can generate report by using a particular date or range base on

paid, unpaid, travelled, not travelled, cancels or postpones for the company and also print

it.

6. Suspend/Release Driver: Bus driver ranking system are viewed and analyzed to take

decision of action on particular deriver using 5 stars: very-poor, poor, good, very-good and

excellent. For each of the ranking stars are calculated using the formula below:

Number of polls obtained by bus driver


X 100
Total polls received

c) Cashier.

Cashier is a finance department person that accept payments from customers.

7. Payment status: Cashier can assign a customer payment status paid or not payment whether

he/she pay using teller or using cash, so that a customer can travel after been verified.

39
d) Operator

Operator is an operational department person that manages, bus route and customer travelling

status.

8. Assign Customer travelling status: Those customers that have been verified by the Cashier

are ready for travelling, here the Operator assign those travelled if the travelled or not

travelled if they didn’t travelled after been paid.

9. Seat inventory: Here the Operator can delete and search the tickets been booked.

10. Route: Here The Operator can edit, delete or add route to each bus allocated to the

company.

11. Allocate drive to bus: Operator can allocate a particular driver to a bus when released by

manager.

12. Broadcast message: Here the company operator can send a broadcast message to customers

by using particular trip base on travel status on reported lost or found items.

3.7.3 Customers

The customers can access some of the functions in this system, which includes the main page

module, registration module, bus schedule and details module, booking module, payment module,

ticket module, postponement and cancellation module. The functional requirements for the

customers section are as following:

1. Ticket booking:

A customer perform the following activities:

a. Check the ticket availability by selecting route, date and number of passengers to travel

which a system will use to validate to see if a driver is allocated to that bus of that route

selected and also the date is available. Seats available are to be incrementing from previous

40
booking with the same date and route. After checking availability, now a customer can

proceed to registration page and supply all requirement needed.

b. After successful registration with validations from the system, a customer proceed to

payment page and can pay online or skip this step if wish to pay manually.

c. Then lastly, a message will be sent via the mobile number a customer provided. Or a

customer print a ticket.

2. Postpone ticket booked:

Once a customers booked a ticket, then they can login to postpone the ticket booked, but only

if the date of travel not past.

3. Cancel ticket booked:

Once a customers booked a ticket then they can to login to cancel the ticket booked, but only

if the date of travel not past.

4. Reset password:

Once a customers booked a ticket then they login to reset their password but only if the current

password is provided.

5. Rate/Rank a driver:

Once a customer booked a ticket then they login to rate their bus driver, but only if they

travelled and the choice are to be selected only once which are: very poor, poor, good, very good

or excellent.

3.8 Use Case Diagram

A use case diagram at its simplest is a representation of a user’s interaction with a system

and depicting the specification of a use case (Gemino & Parker, 2009). Use case analysis is a major

technique used to find out the functional requirements of a software system. Use case, an important

41
concept in use case analysis, represents an objective user wants to achieve with a system. It can be

in text form, or be visualized in a use case diagram. A use case is an objective user(s) wants to

achieve with a system. Use cases are named with verb or verb + noun phrase. It is usually short

yet descriptive enough to describe a user objective. You are encouraged to use concrete and

specific verbs and nouns to avoid ambiguity. The diagram represent the usecase diagram for online

ticketing system for Sokoto State Transport Authority.

42
Figure 3.3: Use case diagram.

43
3.8.1 Use Case Description

The table 3.1 below shows the general form of use case description.

Table 3.1 use case description.

Actor Action Use case Name System Response


Customer select route, date of Book ticket System checks the date, seat and time
departure and number seats need slotted are available, if the details are
to book and click book ticket available the system will then proceed to
now. next phase else prompt error message.
Customers register their ticket by Register ticket the system check all the necessary required
providing details. field are provided, if the details are
provided as needed it then proceed to next
phase else prompt an error message.
Customers pays online on his Online pay The online payment server return true to the
wish or skip to next phase system if the payment is success, else return
false and proceed to next phase.
Customer Print a ticket Print ticket The system print a ticket using a printer.
Customer Login Login The system validate the login details of
customer and access level, if success, the
system proceed to customer panel else
display an error message.
Customer Re- book a ticket Re- book ticket System checks the date, seat and time
slotted are available, if the details are
available the system will then proceed to
next phase else prompt error message.
Customer Postpone a ticket Postpone ticket The system postpone a ticket to customer if
the ticket is paid and travel date does not
past.
Customer Cancel a ticket Cancel ticket The system cancel a ticket for customer
once he/she booked a ticket.
Customer rate a driver Driver rate The system rate a driver for a customer on a
particular bus and route travelled only once.

44
Customer change his password Change password The system change a password for a
customer if the current password is
provided.
Administrator login Login The system validate the login details of
admin and access level, if success, the
system proceed to admin panel else display
an error message.
Administrator Manage Operator Manage Operator The system allow system admin to add edit
and delete driver.
Administrator Manage Cashier Manage Cashier The system add edit and delete driver.
Administrator Manage Manager Manage Manager The system add, edit and delete manager.
Administrator Manage Driver Manage Driver The system add, edit and delete driver.
Manager login Login The system validate the login details of
manager and access level, if success, the
system proceed to manager panel else
display an error message.
Manager view users logs View user’s logs. The system displays a manager user’s logs.
Manager view activity logs. View activity logs. The system displays a manager activity logs
Manager view driver rates View driver rates The system displays a manager the rates of
selected driver.

Manager release a driver Release driver The system released a selected driver.
Manager suspend a driver Suspend driver The system suspend a selected driver.
Manager Generate report Generate report The system displays a manager a report
using paid, unpaid, travelled, not travelled,
cancel ticket, or postponed ticket by using
date range.
Manager manage news Manage news The system allows a manager to add, edit or
delete news.
Manager manage customer Manage customer The system allows a manager to edit or
delete a customer.
Cashier login Login The system validate the login details of
cashier and access level, if success, the

45
system proceed to cashier panel else display
an error message.
Cashier verify payment Verify payment The system assign a verified ticket booked
paid or unpaid.
Operator login Login The system validate the login details of
operator and access level, if success, the
system proceed to operator panel else
display an error message.
Operator cancel a ticket Cancel ticket The system cancels a ticket for a selected
ticked.
Operator manage route Manage route The system edit, add or delete a route.
Operator verify travelling Verify travel The system assign a particular ticket
travelled or not travelled.
Operator allocate driver to bus Allocate driver bus The system allocate driver to particular bus
of particular route.
Operator send a message Send message The system send a broadcast message to
selected route, date and travelled status.
Operator, customer, manager, Logout The system logout a user from the user’s
cashier, and administrator logout panel to homepage.
Table 3.1: use case description

3.9 Activity Diagram

Activity diagrams are graphical representations of workflows of stepwise activities and

actions with support of choice, iteration and concurrency (Rumbaugh & Jacobson, 1999). In

unified modelling language, activity diagrams are intended to model both computational and

organizational processes (i.e. workflows). Activity diagrams show the overall flow of control.

Activity diagrams are constructed from a limited number of shapes, connected with arrows.

The most important shapes type: rounded rectangles represent actions; diamonds represent

decisions; bars represent the start (split) or end (join) of concurrent activities; a black circle

46
represents the start (initial state) of the workflow; an encircled black circle represents the end (final

state). Arrows run from the start towards the end and represent the order in which activities happen.

Figure 3.4: Activity diagram for ticket booking

47
Figure 3.5: Activity diagram for booked ticket

Figure 3.6: Activity diagram for driver rating

3.10 Class Diagram

Class diagram in the unified modelling language (UML) is a type of static structure

diagram that describes the structure of a system by showing the systems classes, their attributes,

operations (or methods) and relationships among objects (Sparks & Geoffrey, 2011).

The class diagram is the main building block of object oriented modelling. It is used for

general conceptual modelling translating the models into programming code. Class diagram can

also be used for data modelling. The classes in a class diagram represent both the main objects,

interactions in the application and the classes to be programmed. Classes are represented with a

boxes which contain three parts:

1. The top part contains the name of the classes. It is printed in bold, centered and the first

later capitalized.

48
2. The middle part contains the attributes of the class. They are left aligned and the first later

is lower case.

3. The bottom parts gives the methods or operations the class can take or undertake. They are

also aligned and the first later is lower case

Figure 3.7: class diagram for online ticketing system

49
3.11 Non- Functional Requirement

Non-functional requirement is a description of the features, characteristics, and attributes

of the system as well as any constraints that may limit the boundaries of the proposed solution

(Whitten, 2002). Such constraints usually narrow down the selection of programming language,

operating system platform or implementation techniques.

The Online Bus Ticketing System web portal must ensure certain web application qualities

such as ease of use, user-friendliness, correctness, functionality, reliability, response time, security,

robustness as well as maintainability. The following lists the non-functional requirement of the

system.

a) Ease of use

b) Maintainability

c) Reliability

d) Robustness

e) Response time/speed

f) Security

g) User friendly

h) Functionality

i) Correctness

50
CHAPTER FOUR: SYSTEM DESIGN, IMPLEMENTATION AND TESTING

4.1 Introduction

This chapter is on system design which is completed before the development of the Online

Bus Ticketing System web portal. System design is defined as those tasks that focus on the

specification of the detailed computer-based solution (Whitten, 2002). The purpose of the design

phase is to transform the system requirements statement from the requirements analysis phase into

design specifications for construction.

4.2 System Functional Design

4.2.1 Structure Design

The Structure Design of Online Bus Ticketing System web portal shows a bird’s eye view

of the entire system. Generally the Online Bus Ticketing System web portal allows easy

accessibility to obtain information. Customer can browse the web portal to obtain various types of

information such as bus schedule information, latest news, feedback and tips updates On the other

hand the Staff would be able to assess the system to update the portal on bus schedule information,

latest news, feedback and report generation and Administrator for managing staff. A structure

diagram has been created for the Online Bus Ticketing System web portal. The main system of

the Online Bus Ticketing System web portal is divided into 2 major sections, Customer section

and staff section as shown in Figure 4.1.

51
Figure 4.1: structural chart for SSTA.

4.2.1.1 Structure Chart for Staff Section

For the Staff section, there are modules which are further divided into sub-modules. The

modules are system administrator, company manager, company operator and a company cashier.

The structure chart for staff section is shown in Figure 4.2, 4.3, 4.4, and 4.5.

Figure 4.2: Administrator structure chart

52
Figure 4.3: Operator section chart.

Figure 4.4: Manager Section chart.

53
Figure 4.5: Cashier section chart.

4.2.1.2 Structure Chart for Customer Section

For the Customer section, there are 10. The modules are. The structure chart for Customer

section is shown in Figure 5.6

54
Figure 4.6: Customer chart section.

4.3 Data Flow Diagram

A data flow diagram (DFD) is a graphical representation of the “flow” of a data through

an information system, modelling its process aspects. A DFD is often used as a preliminary step

to create an overview of the system, which can later be elaborated (John, 2000).

Data flow diagram help in identifying helps in identifying business process. It is a

technique benefit particularly before we go through business process re- engineering. A data flow

diagram looks at how data flows through the system, it concerns things like how data comes from

and go to as well as where it will be stored. But information like process timing (e.g. whether the

processes happen in sequence or in parallel), usually begin with drawing a context diagram, a

simple representation of the whole system. To elaborate further from that, we drill down to level

1 diagram with additional information about the major functions of the system. Progression to

level 3, 4 and so on is possible but anything beyond level 3 is not very common. Please bear in

55
mind that the level of detail asked for depends on your process change plan. Below is a context

data flow diagram of online ticketing system.

56
Figure 4.7: Context data flow diagram.

57
4.4 Database Design

The process of database design is divided into different parts. It consists of a series of steps.

They are Conceptual Database Design(ER diagram), Logical Database Design (Tables,

Normalization etc.), Physical Database Design (Table indexing, Clustering, etc.)

4.4.1 Conceptual Database Design

The requirement analysis is modeled in this conceptual design. The ER Model is used at

the conceptual design stage of the database design. The ER diagram is used to represent this

conceptual design. ER diagram consists of Entities, Attributes and Relationships. The table below

shows the ER diagram of bus ticketing system.

58
Figure 4.8: ER diagram.

59
4.4.2 Logical Database Design

Once the relationships and dependencies are identified the data can be arranged into logical

structures and is mapped into database management system tables. Normalization is performed to

make the relations in appropriate normal forms.

NORMALIZATION

3rd normal form

ACTIVITY LOG (ACTIVITY LOG ID, *UID, USERNAME, DATE, ACTION)

CUSTOMER BIO (UID, FNAME, LNAME, ONAME, GENDER, COUNTRY, STATE, LG,

TOWN, CONTACT, EMAIL, ADDRESS, KINNAME, KINCONTACT,

KINADDRESS)

DRIVER BIO (DID, F_NAME, L_NAME, CONTACT, ADDRESS, DSTATUS)

DRIVER BUS (ID, *DID, ROUTE, *ROUTE_ID, ASTATUS)

DRIVER RATE (ID, *UID, *DID, *ROUTE_ID, VERY_POOR, POOR, GOOD,

VERY_GOOD,

EXCELLENT, RSTATUS)

NEWS (ID, *UID, TOPIC, EVENT, DATE)

ROUTE (ID, ROUTE, PRICE, NUMSEATS, ROUTE_NAME, TYPE, TIME)

STAFF BIO (UID, F_NAME, L_NAME, CONTACT, ADDRESS, EMAIL)

TICKET BOOKING (TB_ID, *UID, TRANSACTION_NO, BUS, TICKET_NUM,

*ROUTE_ID,

SEAT_NO, SEAT_RESERVE, BOOKING_DATE, TRAVEL_DATE)

TICKET CANCEL (ID, *TB_ID, CANCEL_DATE)

TICKET PAYMENT (ID, *TB_ID, PAYMENT_DATE, CASHIER_ID)

60
TICKET POSTPONE (ID, *TB_ID, POSTPONE_DATE)

TICKET TRAVEL (ID, *TB_ID, OPERATOR_ID)

USER (UID, USERNAME, PASSWORD, ROLE)

USER LOG (USER_LOG_ID, *UID, USERNAME, LOGIN_DATE, LOGOUT_DATE, UID).

* Define As Foreign Key.

4.4.3 Physical Database Design

It deals with the physical implementation of the database in a database management

system. It include the specification of data elements, data types, indexing etc. All these information

are stored in the data dictionary. The tables 4.1 below shows the data dictionary of online bus

ticketing system.

Tables’ 4.1 data dictionary

TABLE NAME: Activity Log

Field name Data type Length Null Key Reference Description

activity_log_id integer 11 No Primary key A unique id to


identify each activity
log

Uid integer 11 No Foreign Key User A unique id to


identify user.

Username varchar 40 No A field that indicates


a username

Date varchar 40 No A field that indicates


date of activity log

Action varchar 50 No A field that indicates


a action performed

61
TABLE NAME: Customer Bio

Field name Data type Length Null Key Reference Description

Uid Integer 11 no Primary key A unique id to identify


each customer

fname Varchar 30 no A field that indicates a


customer first name

Lname Varchar 30 no A field that indicates a


customer last name

oname Varchar 20 no A field that indicates a


customer other name

gender Varchar 10 no A field that indicates a


customer gender

country Varchar 20 no A field that indicates a


customer country

State Varchar 20 no A field that indicates a


customer state

Lga Varchar 20 no A field that indicates a


customer local
government

Town Varchar 20 no A field that indicates a


customer town

contact Integer 11 no A field that indicates a


customer contact number

Email Varchar 40 no A field that indicates a


customer email address

address Varchar 50 no A field that indicates a


customer contact address

kinname Varchar 40 no A field that indicates a


customer next of kin name

62
kincontact Integer 11 no A field that indicates a
customer next of kin
contact number

kinaddress Varchar 40 no A field that indicates a


customer next of kin
contact address

TABLE NAME: Driver Bio

Field name Data type Length Null Key Reference Description


did Integer 11 no Primary A unique id to identify each
key driver
f_name Varchar 20 No A field that indicates a
driver first name
l_name Varchar 20 No A field that indicates a
driver last name
conact Integer 11 No A field that indicates a
driver contact number
address Varchar 40 No A field that indicates a
driver address
dstatus Integer 11 No A field that indicates a
driver status

TABLE NAME: Driver Bus

Field name Data type Length Null Key Reference Description


id Integer 11 no Primary key A unique id to identify
each driver bus
did Varchar 11 no Foreign key Driver Bio A unique id to identify
each driver
route Varchar 20 no A field that indicates a
driver route range

63
route_id Integer 11 no Foreign key Route A field that indicates a
driver route id
astatus Integer 11 no A field that indicates a
driver allocation status

TABLE NAME: Driver Rate

Field name Data type Length Null Key Reference Description


id Integer 11 no Primary A unique id to identify
key each driver bus
uid Integer 11 no Foreign Customer Bio A unique id to identify
key each customer
did Integer 11 no Foreign Driver Bio A unique id to identify
key each driver
route_id Integer 11 no Foreign Route A unique id to identify
key each route
very_poor Integer 11 no A field that indicates a
driver rating for very
poor
poor Integer 11 no A field that indicates a
driver rating for poor
good Integer 11 no A field that indicates a
driver rating for good
very_good Integer 11 no A field that indicates a
driver rating for very
good
excellent Integer 11 no A field that indicates a
driver rating for
excellent
rstatus Integer 11 no A field that indicates a
driver rating status

64
TABLE NAME: News

Field name Data type Length Null Key Reference Description


id Integer 11 no Primary A unique id to identify each
key news
uid Integer 11 no Foreign Staff Bio A unique id to identify each
key Staff
topic Varchar 100 no A field that indicates the topic
name
event Varchar 1000 no A field that indicates the events
name
date Varchar 40 no A field that indicates the date
news posted

TABLE NAME: Route

Field name Data type Length Null Key Reference Description


Id Integer 11 no Primary A unique id to identify each
key route added
Route Varchar 20 no A field that indicates the route
range
Price Varchar 20 no A field that indicates the price
of route
Numseats Varchar 11 no A field that indicates the
number of seats of bus
route_name Varchar 40 no A field that indicates the name
of route
Type Varchar 20 no A field that indicates the type
of bus
Time Varchar 20 no A field that indicates the time
of travel

65
TABLE NAME: Staff Bio

Field name Data type Length Null Key Reference Description

uid Integer 11 no Primary A unique id to identify each

key staff

f _name Varchar 40 no A field that indicates the staff

first name

l_name Varchar 40 no A field that indicates the staff

last name

contact Integer 11 no A field that indicates the staff

contact number

address Varchar 50 no A field that indicates the staff

contact address

email Varchar 100 no A field that indicates the staff

email address

TABLE NAME: Ticket Booking

Field name Data type Length Null Key Reference Description


tb_id Integer 11 no Primary A unique id to identify
key each ticket booking
Uid Integer 11 no Foreign Customer Bio A unique id to identify
key each customer book a
ticket
transaction_no Varchar 11 no A field that indicates the
ticket transaction
number
Bus Integer 11 no A field that indicates the
ticket bus number

66
ticket_num Integer 5 no A field that indicates the
ticket number
route_id Integer 11 no Foreign Route A unique id to identify
key each route
seat_no Varchar 40 no A field that indicates the
ticket seat numbers
seat_reserve integer 11 no A field that indicates the
number of seat reserve
booking_date Date no A field that indicates the
ticket booking date
travel_date varchar 20 no A field that indicates the
ticket travel date

TABLE NAME: Ticket Cancel

Field name Data type Length Null Key Reference Description


Id Integer 11 no Primary A unique id to identify
key each ticket cancel
tb_id Integer 11 no Foreign Ticket Booking A unique id to identify
key each ticket booking
cancel_date Date no A field that indicates the
ticket travel date

TABLE NAME: Ticket Payment

Field name Data type Length Null Key Reference Description


Id integer 11 no Primary A unique id to
key identify each ticket
payment
tb_id integer 11 no Foreign Ticket booking A unique id to
key identify each ticket
booking

67
payment_date Date no A field that indicates
the ticket payment
date
cashier_id integer 11 no A field that indicates a
cashier identification

TABLE NAME: Ticket Postpone

Field name Data type Length Null Key Reference Description


Id integer 11 no Primary A unique id to identify
key each ticket payment
tb_id integer 11 no Foreign Ticket A unique id to identify
key Booking each ticket booking
postpone_date Date no A field that indicates a
ticket postponement

TABLE NAME: Ticket travel

Field name Data type Length Null Key Reference Description

Id Integer 11 no Primary A unique id to identify


key each ticket travel

tb_id Integer 11 no Foreign Ticket A unique id to identify


key booking each ticket booking
operator_id Integer 11 no A field that indicates a
ticket cancel

TABLE NAME: User

Field name Data type Length Null Key Reference Description


uid Integer 11 no Primary A unique id to identify each
key user
uname Varchar 40 no A field that indicates a
username

68
password Varchar 40 No A field that indicates a
password
role Integer 11 No A field that indicates a user
role

TABLE NAME: User Log

Field name Data type Length Null Key Reference Description


user_log_id Integer 11 No Primary A unique id to identify each
key user’s log
Uid Integer 11 No Foreign User A unique id to identify each
Key users.
Username varchar 11 No A field that indicates a username
login_date varchar 20 No A field that indicates a login
date
logout_date varchar 20 No A field that indicates a logout
date

4.5 Tools and Methodology used

In this section the Tools and Methodology used in the development of the prototype system

is introduced.

4.5.1 Software Package used

To develop the prototype of the proposed system an appropriate software package needs to be

selected. To determine suitable software, it can be identified by addressing several questions:

(a) Familiarity: Is it familiar and easy to learn?

This aspect concerns the Administrator and the Customer. It is best to choose a software that

is familiar to the Administrator and Customer so that the both party is more comfortable to use the

system and easy to learn.

(b) Flexibility: Can the system be changed or is it easy to modify the program?

69
The system needs to be changed or enhanced from time to time, as the Administrator may want

to alter or modify some functions. This can be achieved depending on the type of software package

and the degree of flexibility allowed.

(c) Maintainability: Can the system be maintainable easily?

The system should be able to be maintained easily by the Administrator. Maintainability will

also reduce time and cost if the software package allows maintainability and this would mean that

the software is more reliable and efficient to use. Thus, in choosing the tools to develop the

prototype system, the above criteria are checked to ensure it is met.

4.5.2 Tools used

The tools used for the development of the prototype system are important, as it would affect

the effectiveness and efficiency of the system. Thus, careful consideration has been taken in

choosing the appropriate tool.

4.5.2.1 Software Requirement

Hypertext Preprocessor (PHP) is an Open Source and cross-platform which is widely-used

as general-purpose scripting language that is especially suited for Web Development and can be

embedded into hypertext markup language (HTML). PHP is used for this system to replace static

HTML pages with 'live data' from a database.

4.5.2.2 Scripting Language

Java Script is a scripting language that allows the designing of the interactive web sites.

JavaScript is an open source language that anyone can use without purchasing a license.

4.5.2.3 Database Management

MYSQL is a database that enables easy searching, storing, retrieving and sorting data.

MySQL server will monitor the access to the database in a multi user environment and ensure only

70
authorized users can access. It uses SQL (Structured Query Language) which is the standard

database query language around the world. MySQL can be found in commercial and open source

product. It is an Open Source database (Welling, 2003).

4.5.2.4 Operating System

For this project Windows 8.1 Professional Edition is used as the development platform

since it has user friendly interface and more improved user management compared to other

Windows platforms.

4.6 Hardware and Software Requirements

The choosing of Hardware and Software is very important for developing a system as it

has a profound impact on the quality and productivity of the system.

4.6.1 Requirement for System Development

The basic software and hardware used to develop the system are as follows:

1. Intel core i5 CPU M520 @2.5 GHZ dual processor

2. 6GIG of RAM

3. 500GIG Hard disk space

4. Window 8.1

5. Opera version 24.0

6. PHP 5.3.1.3

7. MYSQL version 5.5.2.4

8. WampServer version 2.2

9. Microsoft office package 2013

10. HP printer LaserJet professional P1102

71
4.7 Human Computer Interaction (HCI) Factors

The design is created based on Human Computer Interaction factors such as user, productivity

factors, organizational factors, and user interface factors.

(a) The user

In designing the site, the experience and educational background of the users have been taken

into consideration.

(b) Productivity factors

The design must have good quality and at the same time have increased output and minimal

error.

(c) Organizational factors

There is no need to provide training for the system, as the design is easy to use.

(d) User Interface

The use of colors, icons and command buttons, graphic and output display is important when

designing the interface. All these have been included when designing the web portal.

4.8 Goals of User Interface (Usability Factors)

When considering Human Computer Interaction factor in designing the framework for Online

Bus Ticketing System web portal, there are several goals of user interface needs to be achieved as

listed below:

(a) Learnability

The interface is easy to learn by the users so that even a first time users can learn it with

minimal time frame.

72
(b) Flexibility

The design of the Online Bus Ticketing system supports the flexibility to add any new features

in future.

(c) Visibility

Visibility is the goal of user interface. The framework is designed in such a way it would be

able to provide informative feedback to confirm the action of users.

(d) Forcing function

Forcing function is essential for certain functions in order to avoid incorrect input from the

users, for example, typing alphabets to insert IC Number.

(e) Affordance

When designing the system, the practice of affordance user interface goal is also taken into

consideration. For example, a normal user will be directed to the member registration form when

wanting to purchase an online bus ticket. This is important to let the users know what actions they

can perform while navigating the

4.9 Web Page Design Principles

The principles of Web Page Design focuses mainly on the interface design of the web page.

This is where all requirements of the users are translated into a detailed design. Here are the major

principles (Shneiderman, 1998) that has adopted in designing the user interface of Online Bus

Ticketing System web portal.

(a) Focus on user needs

By integrating the requirement statements and user preference, an Online Bus Ticketing

System web portal is designed according to the user needs.

73
(b) Maintain competitiveness

Online Bus Ticketing System web portal will cause minimal time cost to the user. Cost means

time taken to download a material such as going to the other modules applications and time taken

to retrieve information. This is important, as it will indirectly affect the user’s impression on the

effectiveness of the functions.

(c) Standardization

The interface of Online Bus Ticketing System web portal has common user- interface features

across other pages. This is to reduce the need for users to relearn the new design of the system.

(d) Good graphical design

Good graphical design means to create a consistent, pleasing and efficient look and feel for the

system. With a consistent layout, users will feel eased and pleased to use the system.

4.10 System Implementation

After the system design phase that discusses on how the system should be functioning, the

next process will be System Implementation. System Implementation is a process that converts

the system requirements and design into program codes. This phase at time involves some

modification to the previous design and describes how the initial and revised process design is put

into a real working system. Therefore, huge effort will be spent in this phase to determine the

success of the system and ease the process of modification, debugging, testing, verification, system

integration and for future enhancement.

4.10.1 Guidelines on How Online Bus Ticketing System web portal can be implemented

Following are the guidelines on how Online Bus Ticketing System web portal can be

implemented.

74
(a) Plan to include all company staff and to maintain a uniform standard operation for all bus

operators.

(b) Make online ticketing available or accessible via Online Bus Ticketing System portals for the

public.

(c) Analysis of business requirements and benefits by applying ICT

(d) Evaluate existing information flow and transactions between bus operators and the public.

This suggestion could then help in implementing Online Bus Ticketing System web portal

easily without any further delay.

4.11 System Architectural Design

After developing an application into several logic parts, it is necessary to find an approach

to organize these parts together to create a software system. N-tier applications have become the

norm for building software today.

In software engineering, multi-tier architecture (often referred as n-tier architecture) is a

client-server architecture in which presentation, application processing, and data management

functions are physically separated (Fowler, 2002). The most widespread use of multi-tier

architecture is the three-tier architecture. The figure below represent the architectural diagram for

online bus ticketing web portal.

Tier I: Bus Ticketing System Presentation Tier

The top-most level of application is the user interface. The user interacts with the server

using a web browser such as Internet Explorer, Firefox or Opera. The client requests the web server

for a page and the server responds to it.

75
Tier II: Bus Ticketing System Logic Tier

The Bus ticketing System logic layer works as a mediator to transfer the data from the

presentation layer. This layer coordinates the application, process commands, makes logical

decisions and evaluations, and performs calculations. It also moves and processes data between

the two surrounding layers.

Tier III: Bus Ticketing Data Tier

Here information is stored and retrieved from a database or file system. The information is

then passed to the logic tier for processing, and they eventually back to the user. The data layer

includes the data persistence and mechanisms (databases servers, file servers, etc.) and the data

access layer that encapsulates the persistence mechanisms and exposes the data. The data access

layer should provide an application programming interface (API) to the application tier that

exposes methods of managing the stored data without exposing or exposing dependencies on the

data storage mechanism.

Figure 4.9: System architectural diagram

76
4.12 Interface Design

The further explanation of the interface design for the Online Bus Ticketing System web

portal is attached in Appendix A (Homepages), Appendix B (Staff Section) and Appendix C

(Customer section).

4.13 Source Codes

The source codes for the Online Bus Ticketing System web portal is attached Appendix D,

(login.php), Appendix B (addcustomer1.php).

4.14 Testing

Testing is the process that is carried out to ensure that the system conforms to the

specification and meets the requirements of the users, namely staff, administrator and customers.

Testing had been conducted not only in the end but also during the development of the prototype

system. Functional and interface testing were carried out for the module or for the whole system.

Each and every link had been checked to make sure all the links are working correctly. Interface

testing is carried out to identify that the interface works correctly and faults are not created because

of interface errors.

4.14.1 Unit Testing

Unit Testing is to test software in terms of a unit, a module, a function, a specific section

of code. This testing occurs while the software is being developed and before completion (David

Fletcher, 2000).

For Unit Testing, test cases are designed to verify that an individual unit implements all

design decisions made in the unit's design specification. A thorough unit test specification should

include positive testing where the unit does what it is supposed to do, and also negative testing

77
where the unit does not do anything that it is not supposed to do. Table 4.2 shows the Unit Testing

for the Administrator login module.

Table 4.2

Unit testing for administrator login module

Test procedure Output/error Analysis of the test result


Login as admin with valid login ID, Admin is redirected to the admin Successfully redirected to the
password username. home. admin home after the system
checks the validity of login
ID, password and username.

Invalid login ID, password or Error message is displayed Login is denied and an error
username. message of wrong login ID,
password or username.

None Message is displayed Login denied and a message is


requesting the admin insert displayed requesting to
the required fields. insert the required fields.

4.14.2 Integral Testing

Upon completion of Unit Testing, Integration Testing will begin. The purpose is to ensure

the distinct components of the application still work in accordance to customer requirements. Test

sets will be developed with the purpose of exercising the interfaces between the components. This

78
activity is to be carried out by the bus operators and customers. Integration test will be complete

when actual results and expected results are either in line or differences are explainable or

acceptable based on the user input.

4.14.3 System Testing

Upon completion of Integration Testing, System Testing will begin. During system testing,

the complete system is configured in a controlled environment to validate its accuracy and

completeness in performing the functions as designed. The system test will simulate production

as it will occur in the “production-like” test environment and test every functions of the system

that will be required in production. It is also important that validation of the system meets the

functional and non-functional requirements. Table 4.3 shows the Integrated Testing for the

Customer Booking Ticket module.

Table 4.3

Integrated Testing for the Customer Ticket Booking module

Test procedure Output/error Analysis of the test result


Search the ticket availability Customer is redirected to the Bus Successfully redirected the
by inserting route, number of Registration page, which contain customer registration page,
passenger the details of customer. The error which
, departure date before the time and message prompt If the route buses contains customer
date of travel from the the driver is not allocated or Information. The customer
Current date. number of seats is exhausted or the fill the required field and
time slot is not available. Clicks on the confirm button,
the system will

Makes a payment either by choosing The registered customer is Successfully redirected the
offline on skipping the page or by Directed to the Online vougePay customer to the Online
clicking make payment button to pay payment page on click Make pay. VougePay payment page, Or
online using Credit Card. The price will be deducted successfully moves to the
From the Customer’s account. print ticket

79
System shows a The customer is shown a Successfully a confirmation
confirmation message after confirmation message and message appears and
a successful payment and is given a option to print the Customer can print his ticket.
allows users to print the Ticket.
Ticket.

80
4.14.4 Acceptance Testing

Acceptance testing will give both Customers, staff, and Administrator the opportunity to

verify the system functionality and usability prior to the system deployment. The users will test

the system interaction with the database, using network communications, or interacting with other

hardware or other applications. The system is tested with data supplied by the end users rather

than simulated test data. Acceptance testing reveals errors and omissions in the system requirement

definition because real data exercises the system in different ways from the test data. It also reveals

requirements problem where the system’s facilities do not really meet the user’s need or the system

performance is unacceptable. The testing process continues until the system developer and client

agrees that the Online Bus Ticketing web portal is an acceptable implementation of the system

requirement.

81
CHAPTER FIVE: CONCLUSION

5.1 Introduction

This chapter discusses on the outcome of this entire project, limitations of the project and

last but not least the future outcome of this project.

Finally, this chapter concludes WITH various issues that had been highlighted in the earlier

chapters. Knowledge in terms of concept, theory, technical and practical aspects on Online Bus

Ticketing System web portal had been gained.

5.2 Limitations of the project

There were few constraints that had been encountered during completing the research

document. The first constrain was the inability to find any research document obtaining

information on star ranking for bus operators. It was difficult to acquire any information on this

area because there are no any governing bodies that award ratings to bus drivers as how hotels and

airliners are rated. It is discovered there are none of the bus e-ticketing sites offers star ranking

for any of its bus operators.

The second constraint was on the information gathered from the public on e-ticketing in

Nigeria. It is difficult to have a perfect percentage of statistics constructed. The opinion responded

by public during data gathering process is too subjective and how genuine the opinion is

questionable. The existence of e-ticketing in Nigeria is still new for many and those who have the

knowledge of e-ticketing still do not fully utilize the services.

5.3 Outcomes of the project

Based on the research objective that has been stated in the earlier chapter the following are

the achievements:

82
The first objective has been successfully completed, which is to investigate and analyze

the problems on the existing e-ticketing systems provided by individual bus operators. The

problems of existing e-ticketing are clearly stated in Chapter 2 where a thorough study had been

conducted by investigating existing bus e-ticketing systems in Nigeria and overseas.

Further improvement had been identified that need to be done on the existing bus e-

ticketing systems.

The next objective is to identify the relevant features of various components and methods

needed for an Online Bus Ticketing web portal. This objective has been highlighted clearly in

Chapter 3 that includes the improvements needed on the existing e-ticketing systems through

interviews and surveys. Based on the suggested information gathered, the relevant features of

various components and methods needed for an Online Bus Ticketing System web portal is

designed. This objective is also to assist bus operators operations and marketing decision through

timely decision making via Management Information System. The system allows the system staff

to generate up to date reports, user logs, driver rates, activity logs from the system for future

decision making.

The next objective identifies the improvements needed on the existing e-ticketing systems

through interviews and surveys. With the suggested information gathered, the relevant

Features of various components and methods needed for an Online Bus Ticketing System web

portal is designed. This objective explains on the development of an Online Bus Ticketing System

web portal. The tools and methodology used, user requirements and other issues on designing the

system are discussed.

The remaining objectives identifiers the futures such as ticket cancel, online payment,

ticket postponement etc. for customers base on the propose system to ease ticketing activities. The

83
suggested feature was gathered from chapter 2 Reviews on the existing online ticketing system,

these relevant features for proposed system were implemented.

5.4 Conclusion

Online Bus Ticketing System web portal is a system with its own strengths and limitations.

A through study and implementation of an Online Bus Ticketing System web portal had been

conducted. An investigation on some bus e-ticketing sites in Nigeria and overseas had also been

conducted, and the discovery that there are not many of these sites offers a collaborated bus

operators services and none has an awarding star ranking to their bus drivers, which will be

considered a niche and vital information to the customers and the company in general. Thus, an

introduction of the Online Bus Ticketing web portal that collaborates all staff and star ranking

feature for bus drivers in Nigeria as well as creating convenience to bus users, conducting virtual

business transaction more efficiently, and over the Internet, which has already become a crucial

part of our daily lives.

Overall, Online Bus Ticketing System web portal has been successfully built and has

achieved and fulfilled the objectives and requirements that are stated in the project proposal. The

use of web-based approach bring along many benefits include the ability to access information

anywhere and at any time of the day.

There is room for improvement on the suggested guidelines, study and implementation of

Online Bus Ticketing System web portal. An important challenge is by providing awareness about

a collaborated web portal of Online Bus Ticketing System in Nigeria and the introduction of star

ranking for all bus drivers in Nigeria. This will help to improve the country’s bus transport service

industry by offering the best service in terms of performance, security and safety.

84
Finally, the useful information provided by the respondents towards the completion of this

project document is greatly appreciated.

5.5 Future Work of the Research

Some of the future work of the research for this Online Bus Ticketing web portal that can

be taken into consideration are:

(a) Enhanced User Interface

The user interface of the system can be enhanced to be more attractive, impressive and

interactive when this web portal is converted to a real-time system.

(b) Increase Administrators Task

Administrator’s task can be further enhanced to include more features to ease maintenance

process. For example, analytical tools, data mining, other relevant reports and database backup

are recommended to be included in this Online Bus Ticketing web portal to provide more analytical

function to the company.

(c) Common working community

The system can also be a “newsletter” to all employers and employees who are related to

bus transportation in Nigeria. Various information or news can be displayed to the targeted

audience such as employment availability, staff news and so on.

(d) Staff Management

The staff management can also be included to generate staff attendance, promotions, and

salary and so on.

(e) Choice of Desired Bus seat

The customer can also have opportunity to select a desired seat of particular bus of route

to travel.

85
(f) Bus Renting

The system should allow a customer that travelled 20 times or some extinct with SSTA to

rent bus from a company.

86
REFERENCES

ABC transport (1993). ABC Transport Ticket book system. Retrieved From

http://www.abctransport.com on August 3rd 2013 07:44pm.

Adriana, H., (2003). “Management Information System in tailoring industry” in Academic Open

Internet Journal, Volume 9, 2003, [Online] <www.acadjournal.com>

Audrey, E., (2006). the Star ranking, Retrieve From http://www.aldergrovestar.com/obituaries/ 19th

July 2014 10:00am

Chaffey, D., (2004). E- Business and E- Commerce Management, 2nd Ed, Pearson, 2004, Pp. 7 -44

David, F., (2000). Software Testing and Quality Assurance, 31/7/2000, Pp. 2-4.

Dougles E. C., (2001). Computer networks and internets with internet application, Prentice Hall, 2001.

Fowler, M., (2002). “Patterns of Enterprise Application Architecture”. Addison Wesley.

Gemino, A. & Parker, D., (2009). "Use case diagrams in support of use case modeling: Deriving

understanding from the picture", Journal of Database Management, 20(1), pp.1-24.

John, A., (2000). Introduction to Systems Engineering Practices. July 2001.

Kenneth, C. Laudon, et al., (2004), “Management Information Systems – Managing the Digital Firm”,

Eight Edition, 2004.

Long, A. & Long, C., (2004). Computers - Information Technology in Perspective. 11th Edition.

Prentice Hall: New Jersey, 2004.

Miniwatts, M.G., (2012). Internet world stats usage and population statistics, Retrieve From,

http://www.internetworldstats.com/af/ng.htm. on August 6rd 2014 08:44pm

Oxford, E. D., (2005). Oxford Advanced Learner's Dictionary, 6th Edition: Oxford University Press

Oya transport (2010). Oya Transport Ticket book system. Retrieved From http://www.oya.com.ng on

August 3rd 2013 08:44pm.

Patton, S., (2005), The E-Business Research Center, The ABC’s of B2C,

<http://www.cio.com/ec/edit/b2cabc.html>, October 19th 2013.

87
Pfleeger. S.L., (2001), Software Engineering Theory and Practice, (2nd Ed.). Upper Saddle River, New

Jersey: Prentice-Hall.

Ramayah, T. et al., (2003), “Perceived Web Security and Online Transaction Intent”, Multimedia

Cyberspace Journal (MMCJ), Vol. 1.

Rumbaugh, J. Jacobson, T., and Booch, G., (1999). The unified Modelling Reference Manual :

Addison-Wesley, pp. 112-119.

Shneiderman, B., (1998). Designing the user interface. Strategies for effective human-computer

interaction. 3rd ed. Reading, MA 1998.

Sparks, G. (2011) “Database Modelling in UML”. Retrieved 8 September 2011.

Susan, S. et al., (2002), Knowledgeable Agents for Search and Choice Support in Ecommerce: A

Decision Support Systems Approach, 2002.

Tubin, G., (2005), “The Sky IS Falling: The Need for Stronger Consumer Online Banking

Authentication”, the Tower Group, Apr 2005, pp 5-6.

Udo,G. J., (2001). “Privacy and security concerns as major barriers for e-commerce: a survey study”,

Information Management & Computer Security, Vol. 9, no. 4, pp. 165 –174.

Verisign, G., (2005). Online Payment Processing What you Need to Know, Retrieve From

<http://www.verisign.com/static/003190.pdf>, September, 11th, 2013 6:30am.

Whitten, J.L et al., (2002). Systems Analysis and Design Methods, 5th Edition, 2002.

Yulihasri, E., et al., (2005). “Comparing Beliefs of Online shoppers and Online non shoppers”, in 2nd

International Conference on Business & Economics, Padang, Indonesia 28th – 30th.

Zahir, S., et al., (2001). “Cross-cultural dimensions of Internet portals”, Internet Research: Electronic

Networking Applications and Policy, Vol.12, No.3, 2001, pp. 210-220.).

Zwass, V., (1996). in International Journal of Electronic Commerce, Volume 1, Number 1, fall, 1996,

pp. 3 - 23

88
Appendix A

Interface Design (Homepages)

Figure A1: User login

Figure A1 shows the Main Page of all users where there is a login feature for security purpose. A

user can login by inserting his/her name and also inserting the password. In case of a wrong

password, the system displays “Invalid Username or Password” error message.

Figure A2: News Headlines

89
Figure A3: Route map

Appendix B

Interface Design (Staff section for administrator)

Figure B1: Admin panel

Figure B1 shows the Main Page of admin where there feature for admin to add, edit or delete staff

(manager, cashier and operator). The figures below shows the feature of admin to add, delete and

edit staff.

90
Figure B2: Adding and editing staff

Figure B3: Delete staff.

91
Appendix C

Interface Design (Staff section for Manager)

Figure C1: Manager main page

Figure C1 shows the Main Page of manager where there is a feature for manager to view logs,

view activity logs, generate report, edit customer, manage news and suspend or release driver. The

figures below shows those features.

Figure C2: Activity logs

92
Figure C3: Generate Reports

Figure C4: Edit Customer

Figure C5: Edit news

93
Figure C6: Suspend/release driver

Figure C7: driver rate

94
APPENDIX D

Interface Design (Staff section for Operator)

Figure D1: Manager main page

Figure D1 shows the Main Page of Operator where there is a feature for operator to assign travel

status, manage routes, manage ticket and allocate driver to bus. The figures below shows those

features.

Figure D2: Seat Inventory

95
Figure D3: Edit Routes

Figure D4: allocate driver

96
Figure D5: Send Broadcast and message

APPENDIX E

Interface Design (Staff section for Cashier)

Figure E1: Staff section for cashier

Cashier main page

97
Appendix F

Interface Design (Customer Section)

Figure F1: Customer main page

Figure F1 shows the Main Page of Customer after successful login, where there is a feature for

customer to re- book a ticket, cancel ticket, postpone ticket, reset password or rate a driver. The

figures below shows those features.

98
Figure F2: Customer registering ticket

Figure F3: Customer ticket payment

99
Figure F4: vogue pay payment

Figure F5: card verification

100
Figure F6: OPT code verification

Figure F7: Customer print a ticket

101
Figure F8: Customer password reset

Figure F9: Ticket postpone

Figure F10: Ticket cancel

102
Figure F11: driver rate

Appendix G
Source Codes(login.php)

<?php if(@$_GET['login'] == 'true') { ?>


<?php session_start(); require "include/db.php";
function clean($str) { $str = @trim($str);
f(get_magic_quotes_gpc()) { $str = stripslashes($str); } return
mysql_real_escape_string($str); }
$login = clean($_POST['username']);
$password = md5(clean($_POST['password']));
$qry="SELECT * FROM user WHERE uname='$login' AND password='$password'";
$result=mysql_query($qry) or die(mysql_error());
if($result) { if(mysql_num_rows($result) == 1) { session_regenerate_id();
$member = mysql_fetch_assoc($result);
$query = mysql_query("SELECT password_change FROM staff_bio WHERE
uid='$member[uid]'");
$row = mysql_fetch_array($query);
if($member['role'] == 1) { $_SESSION['SESS_MANAGER_ID'] = $member['uid'];
$_SESSION['SESS_MANAGER'] = $login;f($row['password_change'] == 0){ header("Location:
index.php?login=true"); }else header("location: manager/view_user_log.php");
$update=mysql_query("insert into user_log
(username,login_date,uid)values('$login',NOW(),".$member['uid'].")")or die(mysql_error()); }
elseif($member['role'] == 3) { $_SESSION['SESS_CASHIER_ID'] = $member['uid'];
$_SESSION['SESS_CASHIER'] = $login; if($row['password_change'] == 0){ header("Location:
index.php?login=true"); }else header("Location: cashier/view_payable.php");
$update=mysql_query("insert into user_log
(username,login_date,uid)values('$login',NOW(),".$member['uid'].")")or die(mysql_error()); }
elseif($member['role'] == 2) { $_SESSION['SESS_CUSTOMER_ID'] = $member['uid'];
$_SESSION['username'] = $login; header("Location: customer/index.php");
$update=mysql_query("insert into user_log
(username,login_date,uid)values('$login',NOW(),".$member['uid'].")")or die(mysql_error()); }
elseif($member['role'] == 4) { $_SESSION['SESS_OPERATOR_ID'] = $member['uid'];
$_SESSION['SESS_OPERATOR'] = $login; if($row['password_change'] == 0) { header("Location:
index.php?login=true"); }else{ header("Location: operator/view_approve.php");
$update=mysql_query("insert into user_lo
(username,login_date,uid)values('$login',NOW(),".$member['uid'].")")or die(mysql_error()); }

103
elseif($member['role'] == 5) { $_SESSION['SESS_ADMIN_ID'] = $member['uid'];
$_SESSION['SESS_ADMIN'] = $login; header("Location: admin/dashboard_manager.php");
$update=mysql_query("insert into user_log
(username,login_date,uid)values('$login',NOW(),".$member['uid'].")")or die(mysql_error()); }
}else { ?><script type="text/javascript">alert("Invalid Username Or Password");
window.location = "index.php";</script> <?php exit(); }else {
die("Query failed");} ?>

Appendix G
Source Codes (addcustomer1.php)
<?php
include('include/db.php'); date_default_timezone_set('Africa/Lagos');
if(isset($_POST['comfirm'])) { function createRandomPassword() { $chars =
"ABCDEFJ12345609"; $pass = '' ; for($i=0; $i<8; $i++) { $pass .= $chars[mt_rand(0,strlen($chars)-1)]; }
return $pass; } mysql_select_db($mysql_database,$bd); $busnum=$_POST['busnum'];
$setnum=$_POST['setnum']; $date=$_POST['date']; $username = $_POST['username']; $seat_reserve =
$_POST['qty']; $transaction_no = createRandomPassword(); $status = 1; $password =
md5($_POST['password']);
if(empty($username)) { $status = 0; $message = "Username required"; }
if(empty($_POST['fname'])) { $status = 0; $message = "First name required"; }
if(empty($_POST['lname'])) }{$status = 0; $message = "Last name required"; }
if(empty($_POST['kinname'])) {$status = 0; $message = "kinname required"; }
if(empty($_POST['address'])) {$status = 0;$message = "address required"; }
if(empty($_POST['kinaddress'])) { $status = 0; $message = "kinaddress required";}
if(empty($_POST['password']) || empty($_POST['password2'])) { $status = 0; $message =
"Password, confirm required";}
if($_POST['password'] !== $_POST['password2']) {$status = 0; $message = "Password
mismatch";}
if(!preg_match("/^0[7-9]0[0-9]{8}/", $_POST['contact'])) { $status = 0; $message = "Wrong
mobile number for contact";}
if(!preg_match("/^0[7-9]0[0-9]{8}/", $_POST['kincontact'])) {$status = 0; $message = "Wrong
mobile number for kincontact";}
if(empty($_POST['State'])) { $status = 0; $message = "State required";} $chk =
mysql_query("SELECT uid FROM user WHERE uname='$username'") or die(mysql_error());
$ticket_query = mysql_query("SELECT MAX(ticket_num) AS ticket FROM ticket_booking ");
$ticket_row = mysql_fetch_array($ticket_query); $ticket = $ticket_row['ticket'] + 1;
if($status == 1) { if(mysql_num_rows($chk) == 0) { mysql_query("INSERT INTO
user(uname,password,role) VALUES('$username','$password',2)"); $uid_query = mysql_query("SELECT
uid FROM user WHERE uname='$username'"); $uid_row = mysql_fetch_array($uid_query); { $uid =
$uid_row['uid']; } mysql_query("INSERT INTO customer_bio SET
uid=$uid,fname=\"$_POST[fname]\",lname=\"$_POST[lname]\",oname=\"$_POST[oname]\",gender='$_
POST[gender]',country='$_POST[country]',state='$_POST[State]';ga='$_POST[lga]',town=\"$_POST[to
wn]\",contact=\"$_POST[contact]\",email=\"$_POST[email]\",address=\"$_POST[address]\",kinname=\"
$_POST[kinname]\",kincontact=\"$_POST[kincontact]\",kinaddress=\"$_POST[kinaddress]\""); $bd =
date('Y-m-d'); mysql_query ("INSERT INTO
ticket_booking(uid,route_id,bus,seat_no,seat_reserve,booking_date,travel_date,transaction_no,ticket_nu
m) VALUES($uid,\"$_POST[route]\",\"$busnum\",\"$setnum\",\"$seat_reserve\",\"$bd\",'$date',
'$transaction_no','$ticket )or die(mysql_error());

104
$update2=mysql_query("INSERT INTO activity_log(date,uid, username,action)
values(NOW(),'$_SESSION[SESS_CUSTOMER_ID]','$username','booked a ticket')")or
die(mysql_error()); $query4 = mysql_query("SELECT bus FROM
ticket_booking ORDER BY tb_id DESC");
$row4 = mysql_fetch_array($query4); $buses = $row4['bus']; $buses = explode(",", $buses);
$query3 = mysql_query("SELECT * FROM ticket_booking INNER JOIN driver_bus USING(route_id)
INNER JOIN driver_bio USING(did) WHERE uid = (SELECT MAX(uid) FROM ticket_booking ) AND
(route='$buses[0]' OR route='$buses[1]')") or die(mysql_error());

while($row3 = mysql_fetch_array($query3)) { mysql_query("INSERT INTO


driver_rate(uid,did,route_id) VALUES((SELECT MAX(uid) FROM ticket_booking),
$row3[did],$row3[route_id])");}
if($isUploaded) { header("location:print_ticket.php?username=$username"); } else {
header("Location:add_payment.php?username=$username");} } else { $message = "Username exist"; }
$tquery = mysql_query("SELECT * FROM customer_bio JOIN ticket_booking t USING(uid) JOIN route
r ON r.id = t.route_id JOIN user USING(uid) WHERE uname='$username'");
$trow = mysql_fetch_array($tquery);
$msg = ""; $msg .= "Full Name: $trow[fname] $trow[lname]\n"; $msg .= "Transport Details\n"; $msg .=
"Transaction Number: $trow[transaction_no]\n"; $msg .= "Route: $trow[route_name]\n"; $msg .= "Seat
No: $trow[seat_no]\n"; $msg .= "Bus No: $trow[bus]\n"; $sender = "SSTRANSPORT"; $url =
"http://www.alertng.com/components/com_smsreseller/smsapi.php"; $url .= "?username=alsudqee"; $url
.= "&password=ibrahim2"; $url .= "&sender=$sender"; $url .= "&recipient=".urlencode($trow['contact']);
$url .= "&message=".urlencode($msg); @$fp = fopen($url, "r",255); }}
$hours = date("H");$mins = date("i"); $ampm = date('a'); $mydate = date('Y-m-d'); $thedate =
$_POST['date']; $dates = explode("/",$thedate); @$year = substr($dates[2],2,4); @$thedate = $dates[2].'-
'.$dates[1].'-'.$dates[0];
$f = mysql_query("SELECT * FROM route WHERE id='$_POST[route]'"); $f = mysql_fetch_array($f);
$t = $f; $fr = $t['route']; $fr = explode("-",$fr); $lo = $fr[0]; $up = $fr[1]; $y = 0;
for($m=$lo; $m<=$up; $m++) { $er = mysql_query("SELECT * FROM driver_bus WHERE route=$m");
if(mysql_num_rows($er) == 0) $y++; } $f = explode(':',$f['time']); $h = $f[0]; $m = $f[1];
if(($hours <= $h && $mins <= $mins) || ($thedate !== $mydate) || ($hours < $h && $mins >= $m)) { if($y
== 0) { $busnum=$_POST['route']; $qty=$_POST['qty']; $result = mysql_query("SELECT * FROM route
WHERE id='$busnum'");
$query = mysql_query("SELECT seat_no,route FROM ticket_booking t JOIN route r ON t.route_id = r.id
WHERE r.id='$busnum' AND travel_date='$thedate' AND (SELECT COUNT(*) FROM ticket_cancel
WHERE tb_id = t.tb_id) = 0 ORDER BY tb_id DESC") or die(mysql_error()); $row =
mysql_fetch_array($query);
$query2 = mysql_query("SELECT route FROM route WHERE id='$busnum'"); $row2 =
mysql_fetch_array($query2); $seats = explode(',',$row['seat_no']);
if(!empty($row['seat_no'])) $lastseat = $seats[sizeof($seats)-1]; else $lastseat = 0;
$query3 = mysql_query("SELECT bus FROM ticket_booking WHERE route_id='$busnum' AND
travel_date='$thedate' AND tb_id = (SELECT MAX(tb_id) FROM ticket_booking)") or
die(mysql_error());
$row3 = mysql_fetch_array($query3);
if(!empty($row3['bus'])) { $bus = explode(',', $row3['bus']); $lastbus = $bus[count($bus)-1]; } else {
$lastbus = 1;}
$N = $qty; $m = array(); $route = $row2['route']; $route = explode('-',$route); $lower = $route[0]; $upper
= isset($route[1]) ? $route[1]: $lower; $nums = array();
for($i=$lastseat+1; $i <= $N+$lastseat; $i++){ $nums[] = $lastbus + ceil($i/14)-1; }
$a = array_unique($nums);
for($i=$lastseat+1; $i <= $N+$lastseat; $i++{ $x = $i; $x = ($x > 14) ? $x-14: $x; $m[] = $x;} $hi = 0;

105
foreach($a as $l) {
if($l > $hi) $hi = $l; } if($up > $hi) { ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css"> a:link {color: #00C;}</style> </head>
<script type="text/javascript">
function DrawCaptcha() { var a = Math.ceil(Math.random() * 10)+ '';var b = Math.ceil(Math.random() *
10)+ ''; var c = Math.ceil(Math.random() * 10)+ ''; var d = Math.ceil(Math.random() * 10)+ ''; var e
= Math.ceil(Math.random() * 10)+ ''; var f = Math.ceil(Math.random() * 10)+ ''; var g =
Math.ceil(Math.random() * 10)+ ''; var code = a + b + c + d + e + f + g;
document.getElementById("txtCaptcha").value = code} </script>
<body onload="DrawCaptcha();"><?php if(empty($_POST['date'])) { header("Location:../index.php");} ?
<script> $(function() { $('input[name=codetype]').focusout(function(e) { val = $(this).val();
pass = $('input[name=codetypecopy]').val(); if(val != pass) { alert("captcha code mismatch"); return false;
} });
$('#comfirm').click(function(e) { var terms = $('#condition').attr('checked');
if(terms == undefined) { alert("Confrim terms and conditions");e.preventDefault(); return false; }
});}); </script>
<style type="text/css"> .style6 { font-size: 13px; color:#666; text-align: justify; font-
family:"Trebuchet MS", Arial, Helvetica, sans-serif;} </style> </script>
<script> jQuery(document).ready(function(){ $('a[rel*=facebox]').facebox({ loadingImage :
'src/loading.gif', closeImage : 'src/closelabel.png' }) })</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type"
content="text/html; charset=utf-8" /> <title>Welcome to sokoto state transport authourity</title> <div
id="account"></div> <div id="header1"></div> <div id="wrapper"> <div id="header">
<img src="xres/images/namelogo.png" alt="banner" width="962" height="140" usemap="#Map"
align="center" /> <map name="Map" id="Map"> <area shape="poly" coords="56,21" href="#" alt="" />
</map> <table width="900px" border="1" align="" cellpadding="0" cellspacing="0"> <tr>
<td width="66%" valign="top"><form name="drop_list" method="post" action="" id="formID"
enctype="multipart/form-data"><div class="addform"></div ><div class="addform"></div><div
class="body1">
<input name='route' value='<?php echo $_POST['route'] ?>' type='hidden' /> <style type="text/css"> .a{
width:400px; margin-left:22px;
input[class=id_empno], input.id_empno{ background:#CCC;} } </style>
<table border="0" width="auto" cellspacing="0" bordercolorlight="#00FF66" class="addrec"
align="center"> <input type="hidden" value="<?php echo preg_replace("/^-{0,20}/","",$thedate) ?>"
name="date" /> <input type="hidden" value="<?php echo $qty ?>" name="qty" />
<fieldset class="a" > <legend>Register</legend>
<span class="small">Auto Generated <a rel="facebox" href="view_seat_location.php?id=<?php echo
$busnum; ?>"><span style="color: #00C;">view seat </span></a></span> <p>
<span style=”color:#ff0;” <?php echo @$message ?> </span> <td width="174">Seat Number:</td><td
width="238" align="center"><input type="text" name="setnum" value=" <?php echo implode($m, ',');?>"
id="name" readonly/> </p> </td></tr> <tr>
<td width="174">Bus Number:</td> <td width="238" align="center"> <input type="text" value="<?php
echo implode(',',$a); ?>" name="busnum" readonly="readonly" /></td></td></tr><tr>

106
<td width="174">First Name: *</td><p><td width="238" align="center"> <input type="text"
class="validate[required] text-input" id="fname" name="fname" tabindex="1" onFocus="if (this.value ==
'0') {this.value = '';}" onBlur="if (this.value == '0')" {this.value = '0';/> </p></td></tr> <tr>
<td width="174">Last Name: *</td><p><td width="238" align="center"><input type="text"
class="validate[required] text-input" name="lname" id="lname" onFocus="if (this.value == '0')
{this.value = '';}" onBlur="if (this.value == '0')" {this.value = '0';/></p></td></tr>
<tr><td width="174">Other Name: </td><p> <td width="238" align="center"><input name="oname"
type="text" class="content" id="oname" /> </p></td></tr><tr> <td style="width: 95px;">Gender: *</td>
<p>
<td><select style="width: 148px;"
name="gender"><option>F</option><option>M</option></select></p></td> </tr><tr><td
width="174">Country: *</td><p>
<td><select name="country" class="content" id="country" ><option
value=”coutries”</select></p></td></tr> <td width="174">State: *</td> <p><td>
<select name="State" class="validate [required] text-input" id="State" onChange="SelectSubCat3()"
><option value="">- Select State -</option><option value="” </option></select></p></td></tr><td
width="174">LG: *</td><p><td><select name="lga" class="content" id="lga()" /></select> </p>
</td></tr>
<tr><td width="174">Home Town: *</td><p><td width="238" align="center"><input name="town"
type="text" id="town" class="validate[required] text-input"value="" onFocus="if (this.value == '0')
{this.value = '';}" onBlur="if (this.value == '0')" {this.value = '0';}></p></td></tr>
<tr><td>Address:*</td><td align="center"><p><input name="address" type="text" id="address"
value="" class="validate[required] text-input" onFocus="if (this.value == '0') {this.value = '';}" onBlur="if
(this.value == '0')" {this.value = '0';}/></p></td></tr>
<tr><td width="174">Mobile No: *</td><td width="238" align="center"> <input type="text"
name="contact" id="contact" class="validate[required,custom[integer],maxSize[12],minSize[11]] text-
input" /></p> </td></tr>
<tr><td>Email: </td><p> <td align="center"> <input name="email" type="text"id="email"
/></p></td></tr>
<tr><td width="174">Next of Kin Name: *</td><td width="238" align="center"><input type="text"
name="kinname" id="kinname" value="" class="validate[required] text-input" onFocus="if (this.value
== '0') {this.value = '';}" onBlur="if (this.value == '0')" {this.value = '0';}/></p></td></tr>

<tr><td width="174">Next Kin Contact Number: *</td><td width="238" align="center"><input


type="text" name="kincontact" id="kincontact"
class="validate[required,custom[integer],maxSize[12],minSize[11]] text-input" /></p></td></tr>
<tr><td>Next Kin Address: *</td><p><td align="center"><input name="kinaddress" type="text"
id="kinaddress" value="" class="validate[required] text-input" onFocus="if (this.value == '0') {this.value
= '';}" onBlur="if (this.value == '0')" {this.value = '0';}/></p> </td> </tr>
<td>Username: *</td><td align="center"><input value="" class="validate[required] text-input"
id="username" type="text" class="style1" name="username" value=""tabindex="11"/></td></tr><tr>
<td>Password: *</td><td align="center"><input value="kipruto090" class="validate[required] text-input"
id="password" type="password" name="password" id="password" /></td></tr>
<tr><td>Confirm Password: *</td><td align="center"><input value="kiprutoBAD"
class="validate[required,equals[password]] text-input" type="password" name="password2"
id="password2" /></td></tr>
<tr><td width="238"> </td></tr>
<tr> <td width="238"><small>i agree the <a rel="facebox" href="view_terms_condition.php"> <span
style="color: #00C;">tems and condition: *</span></a> of this company</small></td><p><td><input
type="checkbox" name="condition" id="condition" value="checkbox" /></p></td></tr>

107
<tr><td></td><td><div id="Layer1"> <input type="text" name="codetypecopy" id="txtCaptcha" /><img
src="images/captcha.png" width="238" height="50" style="margin-top:-150px;" /></div></td><td><a
href="#" onclick="DrawCaptcha();"><img src="images/refresh.png" alt="refresh" border="0"
style="margin-top:5px; margin-left:5px;" /></a></td> </tr>
<tr><td><div align="right" class="style1">Enter the Code here: *</div></td><td><input
name="codetype" type="text" class="ed" id="code" size="35" /></td><td>&nbsp;</td></tr>
<tr><td colspan="2" align="center"><input name="reset" type="reset" id="reset" tabindex="5"
value="clear" /><input type="submit" name="comfirm" id="comfirm" value="submit"
tabindex="19"></td></tr>
</table></form> &nbsp;</td> <td width="34%" align="center" valign="top"><div class="side-bar"><div
class="heading"><img src="images/info.png" width="15" height="15" />Help!</div>
<?php } else { echo "<script>alert('Bus occupied change the travel
date');window.location='index.php'</script>"; } } else { echo "<script>alert('driver not
allocated');window.location='index.php'</script>";}}
else { echo '<script>'; echo 'window.alert("Time slot not available");'; echo
'window.location="../index.php"'; echo '</script>';}?> </div>
<div id="footerIT"> <div style="width: 1000px; margin-left: auto; margin-right: auto; font-weight: bold;
color: #FFF;">
<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr> <td width="14%"><span
style="font-size:9px;"><script type="text/javascript"> document.write(''+Date()+'')
</script></span></td><td width="74%" align="center"><span style="color: #093">Project Designed
By</span> IMRANA ABDULLAHI YARI (0911310099)</td><td width="12%"><img
src="images/soc.fw.png" width="120" height="56" alt="Social" /></td></tr></table></div> </div>
</body></html>

108

You might also like