Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 65

CHAPTER ONE

GENERAL INTRODUCTION

1.1 INTRODUCTION

An Auditorium booking management system is a web-based application system that allows

clients to book a facility in an auditorium. The system provides a platform to check for days that

each facility in the auditorium is available, make reservations, make payments and finally book

for the selected date and time. Users can use this program directly on their web browsers and no

need to install it. An Auditorium is a large building that is designed to hold a convention, where

individuals and groups gather to promote and share common interests. Convention centers

typically offer sufficient floor area to accommodate several thousand attendees. Very large

venues, suitable for major trade shows, are sometimes known as exhibition halls. Auditoriums

typically have at least one auditorium and may also contain concert halls, lecture halls, meeting

rooms, and conference rooms. Currently, there is a lengthy process involved in securing a place

in an Auditorium, which takes a lot of time and creates so many inconveniences to clients. To

solve the above problem, we decided to develop a system that will give people who are

interested in booking a particular, a platform where they can just be in their comfort zones and

check for days vacant for booking, make reservations, make payment and successfully book a

space in the event center. The order has four (4) steps, after accessing the web page, a new client

has to sign up whereas an old client can just log in with their previous credentials. After logging

in, the next step is to check the availability of facilities, next is to select date and time available

for a required event. Clients therefore can make a reservation from there and must proceed to

fulfil their necessary financial obligations to successfully book the required space or else their

1
reservations automatically expirers after 12 hours. After payment is successfully done, an email

is sent to the client confirming booking of the selected space.

1.2 Background

Information Technology has become the driver or the lifeblood of today’s economy, as such for

any society or community to stay relevant and competitive in this information age, they have to

employ IT based solutions for daily challenges.[ CITATION Ann18 \l 1033 ]

People or organizations who are interested in securing a space in an Event center go through a

lengthy and tiring process. For this reason, the authors of this proposal are suggesting an online

booking system for an event center.

Online booking system for an event center is a web-based application that allows people or

organizations who are interested in securing a place in the Event center to acquire every detail

they need about the auditorium, check on dates that the facility is available for use and

successfully secure the facility required for an event. The system is intended to aid clients to

book the center from their own comfort zones.

It is for the reason that the authors of this research believe that the development of a specialize

Online booking system for an Event center will save time, money and stress involved in moving

to and fro to secure a space for an event.

1.3 Problem Statement

Booking an event center can be a time consuming and stressful task for clients especially during

peak hours. Clients have to rush to the auditorium facility manager to make enquiries about

availability of space on specified dates for their events and may still have to go through the stress

2
of writing a letter, wait for the approval of the manager before any further process such as

knowing the cost of the capacity of the facility needed by the clients and the availability of the

specified date could be communicated to the client. This current system of securing a space for

an event in an Event center actually generates so much inconvenience to clients due to the hectic

process involved to successfully book the facility.

Besides the time consumed to manually book the facility, it can also be hectic and tiring for

clients to move around securing a space for a said program. This can also be avoided with the aid

of a web based booking system for the Event Center.

1.4 Scope of the project

This project entails developing a well-organised automated system to aid clients secure a space

in an Auditorium with ease. The project will be completed before the end of March 2020.

Modules of the website will include checking availability of dates and time, booking facilities,

making reservations, making e-payments and keeping records for accountability. It will also

include the platform of payment, be it through mobile money, VISA, Skrill, and so many other

payment options depending on the cost of the facility interested. The system will also contain

tabs such as about page which gives a brief statement about the Auditorium and its operations,

contact page which gives clients details of the management of the facility in order to reach them

in case they need assistance so those extra tabs gives clients a fair knowledge about the

auditorium and to reach management respectively.

3
1.5 Limitations of the study

 Clients cannot be at their comfort zones and book a space.

 Records are difficult to keep and retrieve which makes accountability difficult.

1.6 OBJECTIVE

The objectives are divided into general objectives and specific objectives.

1.6.1 General objectives

 The main aim will be to create Booking Management System for an Auditorium.

1.6.2 Specific objectives

 To build an automated system that will keep records of the facility bookings for future

references, making of accounts, and auditing.

 To design an electronic booking solution that will save time, money and create relief for

clients and administrators.

 To increase efficiency and services to the customers through better application of

technology in daily operation.

 To develop and implement online booking management system for an Auditorium.

1.7 Methodology

In order to develop an auditorium booking management system that is consistent, it is important

to introduce a process model that will be used. A process model guides the order of project

4
activities and represents the life cycle of a project. The model that will be used is the waterfall

model.

The waterfall model is a linear, sequential approach to the software development life cycle

(SDLC) that is popular in software engineering and product development. The waterfall model

emphasizes a logical progression of steps. Similar to the direction water flows over the edge of a

cliff, distinct endpoints or goals are set for each phase of development and cannot be revisited

after completion. The term was first introduced in a paper published in 1970 by Dr. Winston W.

Royce and continues to be used in applications of industrial design.

The waterfall methodology is composed of seven non-overlapping stages:

1. Requirements: Potential requirements, deadlines and guidelines for the project are

analyzed and placed into a functional specification. This stage handles the defining and

planning of the project without mentioning specific processes.

2. Analysis: The system specifications are analyzed to generate product models

and business logic   that will guide production. This is also when financial and technical

resources are audited for feasibility.

3. Design: A design specification document is created to outline technical design

requirements such as programming language, hardware, data sources, architecture and

services.

4. Coding/Implementation: The source code is developed using the models, logic and

requirements designated in the prior stages. Typically, the system is designed in smaller

components, or units, before being implemented together.

5
5. Testing: This is when quality assurance, unit, system and beta tests take place to report

issues that may need to be resolved. This may cause a forced repeat of the coding stage

for debugging. If the system passes the tests, the waterfall continues forward.

6. Operation/Deployment: The product or application is deemed fully functional and is

deployed to a live environment.

7. Maintenance: Corrective, adaptive and perfective maintenance is carried out indefinitely

to improve, update and enhance the final product. This could include releasing  patch  

updates or releasing new versions.

1.8 Organization of the Study

The project as supervised by Mr Henry Matey is based on two parts, building of a website

system and a report or documentation for the system. The first part is building of the online

booking management system which serves as the platform for users to book facilities from their

mobile phones or computers. In building the site, the GUI was an important phase. Every

customer should find it easy to use therefore so much time was spent on the GUI of the system.

The report of the system on the other hand consists of five chapters, with each chapter based on a

particular curriculum. Chapter 1 consists of the introduction to the organisation of the study.

Chapter 2 is the literature review of the study. Chapter 3, the system analysis and design of the

proposed system. Chapter 4 based on the implementation and evaluation of the project. Chapter

5, the summary, conclusion and recommendations of the project.

6
CHAPTER TWO (2)

LITERATURE REVIEW

2.1 INTRODUCTION

In our own words, An Auditorium booking system is a web-based application, which allows

clients to book or secure a space in an auditorium from their comfort zones for various events.

In other to get a clear understanding on this project, we made use of different research material

such as books, interviews, online sites, magazines, tutorial videos and many others. This helped

us to achieve the targeted objectives of this project.

2.2 GENERAL BACKGROUND OF THE STUDY AREA

Taking UPSA auditorium as an example, it was officially inaugurated on May 8, 2019. The

auditorium is a 3,550 capacity. The main aim of putting up such a commendable auditorium is to

provide space to accommodate students for various activities. The auditorium is also opened for

the entire public to book for decent events. The auditorium entails variety of spaces such as the

main auditorium, conference rooms, and lobby rooms to host various events at a reasonable cost.

This would help to generate revenue for the university. [ CITATION htt19 \l 1033 ]

2.3 REVIEW OF THE EXISTING SYSTEMS

 Seminar Hall Booking Management System

Seminar Hall Booking Management System allows users to view availability dates of a particular

seminar hall and also the facilities in the hall like capacity, microphones, projector, etc. This

provides user-friendly environment while booking the seminar hall and it gives suggestion

7
regarding the selection of seminar hall based on the capacity and availability. The concern

department head can view the list of the request. The acceptance and rejection can be viewed by

the user through that login or even by the email id.

 Sunshine Auditorium Booking Management System

Sunshine Online Booking Management System allows sunshine hospital employee users

and external users to book auditorium as per their expected event schedules. Any user

internal or external has to raise a request for auditorium booking and it will be approved

by admin. A logged in user can check availability date wise and hourly wise too. A user

will have the option to provide the hourly availability information too while raising the

request. Once approved, an email notification would be sent over confirming the

booking.

 THE FUNCTIONALITIES OF THE SYSTEM

User stories Sunshine Auditorium Management System Seminar Hall Management System

Login Form √ √

Registration √ √

form

Booking form √

Booking √

suggestion

8
form

Check √ √

availability

The figure above depicts all the two systems and they give room for clients and users to register,

login, book, and check availability. Seminar hall is improved to suggest booking.

None of the systems has the possibility for users to leave a message and also provide images of a

particular interested facility.

None of the systems also has the function of sending emails to clients to confirm their booking.

None of the systems has the possibility for clients to secure a facility more than a day.

2.4 COMPARATIVE STUDY OF REVIEWED SYSTEM

The proposed system is developing an auditorium booking management system for UPSA

auditorium that allows everyone to make bookings of a facility irrespective of their destination

with the aid of an internet. Clients have to just be in their comfort zones, access the site, register

or login, check availability, and if possible, book, and make payment to validate booking. Email

verifications will be sent to clients to confirm a successful booking. Clients can make payments

with mobile money, visa or skrill depending on the amount of the interested facility.

The problems with the existing systems are the inability of clients to leave a message for

management and seeing a particular facility they want to book and use. This system is developed

to bring an end to all these inconveniences.

9
2.5 CONCLUSION

Unlike the above sites, the proposed system will have a database that will make it possible for

checking of records of a particular facility booked at a specific time. This will ensure clarity and

ease of accountability. Clients will also be made to leave messages for management. Email

verification will also be sent to clients to confirm booking.

These unique features will help to boost efficiency and effectiveness.

CHAPTER 3

LIFE CYCLE DESIGN OF THE PROPOSED SYSTEM

10
3.1 INTRODUCTION

This chapter describes the methodology that was used to develop the web-based

application. [CITATION OLe04 \l 1033 ] Describes methodology as the framework, which is

associated with a particular set of paradigmatic assumptions that we will use to conduct

our research. [CITATION Ala05 \l 1033 ] Insists that when conducting a research

methodology, it should meet the following two criteria:

Firstly, the methodology should be the most appropriate to achieve objectives of the research.

Secondly, it should be made possible to replicate the methodology used in other researches of the

same nature.

This research study was conducted based on the waterfall model. Methodology plays an

important role in implementing this research study accordingly. The details of the

methodology are explained in this chapter.

Software life cycle is a general model of software development process, including all the

activities and work products required to develop an auditorium booking system. A

software life cycle model is composed of a number of clearly defined and distinct work

phases, which can be used to plan test, design, build, and test and deliver the web-based

application. Software life cycle aims to produce high systems that meet and exceed

customer expectations, based on customer requirements, by delivering systems that move

through each clearly defined phases, within scheduled periods and cost estimates.

Software life cycle captures the order in which these activities are to be taken.

11
3.2 CRYSTALIZATION OF THE PROBLEM

The system allows client to conveniently navigate through the website to check dates

available for reservations and successfully booking the facility from their comfort zones.

Clients can also make enquiries, payments, cancellation of bookings and so many other

actions on the website. It actually saves time because clients can access and utilize the

website from anywhere and at any time. They do not need to come all the way to the

school to book or secure a place in the auditorium.

3.3 ANALYSIS AND DESIGN OF THE SYSTEM

This part of the research proposal involves the use of system analysis and design as a tool. It is

dedicated to the requirement collection (done with the collaboration of the client), the design of

the system, done using UML use cases and class diagrams, and of the relational database, done

with (extended entity relationship diagram (EER) as modeling technique).

3.3.1 System requirement

A new user can register, or login to the website if he/she has already registered. After the

user enters the login credentials, the user’s information is going to be stored in the

browser’s local storage. This information is going to facilitate authenticating the type of

user on other pages of the website. After a successful log in, the client is eligible to check

for dates and times available for booking, he or she can further make a reservation and

then proceed to make payment using the payment options available. A successful booking

is made after the administrator confirms receipt of the payment else reservation expires

after 12 hours.

12
3.3.2 FUNCTIONAL REQUIREMENT

Functional requirement defines the specific function that the system performs, in conjunction

with the data operated by the functions. The functional requirements are presented in scenarios

that depict an operational user from the perspective of its end users. Below are examples of all

the system features and an enumeration of the entire specific requirement associated with these

features. The system shall incorporate mechanism to authenticate its users and the system shall

verify and validate all user input and should notify in case of error detection and should help the

user in error correction.

3.3.3 NON-FUNCTIONAL REQUIREMENT

Non-functional requirements address aspects of the system other than the specific functions it

performs. These aspects include system performance, costs, and such general system

characteristics as reliability, security, and portability. The non-functional requirements also

address aspects of the system development process and operational personnel. It includes the

following:

 The system shall be user friendly and consistent.

 The system shall provide attractive graphical interface for the user.

 The system shall allow developer access to installed environment.

 The system shall target customer base.

3.3.4 Hardware requirement

The system would employ third-party source components. Some of these

include components that would allow the applications to focus on the

functionality of the system: reporting, documenting, management,

13
notification, interfaces and securities. Some of the hardware and software,

which would be used in the development of the application, include;

Server side

Processor 2.20 GHz

Ram 4 GB

Hard drive 50 GB Free Space

Client side

Processor 1.80 GHz

Ram 2 GB

Hard drive 10 GB Free Space

3.3.5 Software requirement

Server side

Operating system :- Windows server 2016 or higher version

of server OS

Framework :- Net framework 4.0

Web Server :- XAMPP Server

Front End:- HTML, CSS and JavaScript

14
Back End :- MYSQL

Client side

Operating system Windows 2007 or higher support version of

Operating System

Browser :- Internet Explorer 11, Mozilla Firefox 63.0 beta or

higher version.

3.4 FLOW CHART DIAGRAM

START

VIEW WEBSITE

Admin login Client login

Reserve a date
Valid user Id &
password

Pay Cancel
15

Admin
Update info. Log out

Stop

Figure 3.4 Flow chart diagram

3.4.1 Context diagram

16
Login request
Login
Client
Auditoriu
m
Booking
Administrator Manageme Confirm
nt system

Figure 3.4.1 Context diagram

3.4.2 Data flow diagram

17
ADMIN

BOOKING
SYSTEM USER

MANAGER

Figure 3.4.2 Data Flow Diagram

3.4.3 Use case diagram

The first step for the functional requirement collection are the use cases. Use

cases are “a description of set of sequences of actions, including variants,


18
that a system performs that yield an observable result of value to an actor”.

They are used in order to: design system from user’s perspective,

communicate system behavior in user’s term and enumerate all externally

visible behavior. Here are the use cases for the auditorium booking system

project (there are two actors for the system: a client and an administrator).

SIGN UP / SIGN IN

CHECK FOR DATES


AVAILABLE FOR
BOOKING

SELECT PREFERRED
FACILITY AND
SERVICE

SELECT THE TYPE OF


EVENT

CHECK TERMS
CLIENT AND
CONDITIONS
AND PAYMENT
METHODS

MAKE PAYMENT

CONFIRM
19
DEPOSIT MADE
BY CLIENTS
APPROVE OR
DECLINE
BOOKINGS

REVIEW
REPORTS OF
THE VARIOUS
TRANSACTIONS
WITHIN A

Figure 3.4.3: Use Case Diagram

ADMINISTRATOR

20
3.5 TOOL USED

The auditorium booking management system followed the totally dynamic web based

rule. In this system, we used some web programming languages. The following software,

tools & frameworks were selected and used for accomplishing the project:

Front end: HTML, CSS

Back end: PHP Storm IDE

Database: MySQL, JavaScript,

i. HTML

First developed by Tim Berners-Lee in 1990, HTML is short for Hypertext Markup Language.

HTML is used to create electronic documents (called pages) that are displayed on the World

Wide Web. Each page contains a series of connections to other pages called hyperlinks. Every

web page you see on the Internet is written using one version of HTML code or another. HTML

code ensures the proper formatting of text and images for your Internet browser. Without HTML,

a browser would not know how to display text as elements or load images or other elements.

HTML also provides a basic structure of the page, upon which Cascading Style Sheets are

overlaid to change its appearance. One could think of HTML as the bones (structure) of a web

page, and CSS as its skin (appearance).[ CITATION com19 \l 1033 ]

21
ii. Bootstrap / Cascading Style Sheets

Bootstrap and Cascading Style Sheets are languages used for describing the presentation

of Web pages, including colors, layout and fonts. It allows one to adapt the presentation to

different types of devices, such as large screens, small, or printers. They are independent

of HTML and can used with any XML-based markup language.

iii. PHP (Hypertext Pre-processor)

PHP (recursive acronym for PHP Hypertext Pre-processor) is a widely used open source

general purpose scripting language that is especially suited for web development and can

be embedded into HTML. Since this project will be based online, it will be appropriate to

develop this project using PHP. It is a server side scripting language that is used to

develop dynamic web content and allows for the communication with the database.

[ CITATION Saw16 \l 1033 ]

iv. MICROSOFT SQL SERVER 2008.

A database management system (DBMS) is computer software designed for managing

databases, a large set of structured data, and run operations on the data requested by

numerous users. SQL Server 2008 the best version we intended to use to manage the

booking database, which was released on 6 August 2008.

v. JavaScript

JavaScript is a programming language, which is used to create web pages. It is a

lightweight, prototype based, explained, object-oriented language including first class

22
functions. For web pages, it is also known as the multi-paradigm scripting language.

However, many non-browser environments also contain java script. It runs on the client

side of the web pages. It is used to design how the web pages’ treat on the incident of an

event. It is easy to learn and broadly used to control web pages’ attitude

3.6 CONCLUSION

In this chapter, we have discussed about the platforms and technical object that is used in

our entire project. We used PHP Code Igniter to develop our web site. With the help of

Bootstrap, we design and align our website’s TEXT contents and connect the website to

MySQL database server for storing and retrieving data from the RDBMS. The overall

work is based on PHP Code Igniter and MySQL, which are very popular platform.

23
CHAPTER 4

SYSTEM TESTING, IMPLEMENTATION AND DOCUMENTATION

4.1 INTRODUCTION

The process of checking whether the developed system is working according to the

original requirements and objectives of clients is known as system testing. There are

basically two sources of data for testing. These are Live and Artificial. Live data are

actually extracted from the organization’s files. Artificial data are generated for test

purposes only.

The purpose of system testing is to test the system systematically. It is the application

developer’s last opportunity to check that the system works before asking the users to

accept it.

Therefore, it is often split between test running and bug fixing. This helps ensure adequate

control over the way corrections are applied to the system and system test version control

documents are kept. System testing incorporates a number of other classes of testing.

4.2 TESTING OF THE NEW SYSTEM

4.2.1 Unit testing

The first level of test is unit testing. The purpose of unit testing is to ensure that each

subprogram (subroutine) is fully tested. To successfully test a system, the

programmer writes a test plan. A test Plan is a document that describes the

objectives, scope, approach, and focus of a software testing effort. This includes a

number of test runs such as the valid paths through the code, the exception and error

handling paths.

24
4.2.2 Functional testing

Functional testing is a type of software testing whereby the system is tested against

the functional requirement. Features are tested by feeding them input and

examining the output. Functional testing ensures that the requirements are satisfied

by the application. [ CITATION Sho19 \l 1033 ]

4.2.3 Usability testing

Usability testing is method used to evaluate how easy a website is to use. The tests

take place with real users to measure how usable a website is and how easy it is for

users to reach their goals. This testing takes place with actual user or customers of

the product.

4.2.4 Acceptance testing

Acceptance testing is a level of software testing where a system is tested for

acceptability. The purpose of this test is to evaluate the systems compliance with the

business requirements and assess whether it is acceptable for delivery

4.2.5 Visual (live) testing

This involves testing individual page elements and checking that each one appears in

the right shape, position, and size. By using visual testing combined with your

existing developer tests, you'll be able to detect visual issues in the early stages of

your development cycle

4.3 IMPLEMENTATION OF THE NEW SYSTEM

As technologies change, many organizations find themselves needing to change over their

computer information systems. Upgrading these systems help them optimize their efficiency and

25
remain competitive. Common changeover areas include security systems, database systems,

accounting systems and managerial information systems. Deciding which changeover technique

will work best for a particular company depends on the type of changeover and degree of risk for

the company.

4.3.1 Parallel Changeover

In a parallel changeover, the new system runs simultaneously with the old for a given period of

time. Of all the techniques, this tends to be the most popular, mainly because it carries the lowest

risk. If something goes wrong at any point, the entire system can be reverted back to its original

state. A primary disadvantage in running two systems at the same time is higher costs. The

parallel changeover process also can be quite time-consuming.

4.3.2 Direct Changeover

Direct changeover, also referred to as immediate replacement, tends to be the least favorite of the

changeover techniques. In a direct changeover, the entire system is replaced instantly. Basically,

as soon as the new system is powered up, the old system is shut down. This type of changeover

carries the most risk because, if something goes wrong, reverting back to the old system usually

is impossible. Using the direct changeover technique tends to work best in situations where a

system failure isn't critical enough to result in a disaster for the company.

4.3.3 Phased Changeover

The phased changeover technique is considered a compromise between parallel and direct

changeovers. In a phased changeover, the new system is implemented one stage at a time. As an

example, consider a company working toward installing a new financial system. Implementing

26
the new system one department at a time, the company converts accounts receivable, accounts

payable, payroll, and so on. Advantages to phased changeovers are their low cost and isolated

errors. The main disadvantage is the process takes a long time to complete because phases need

to be implemented separately.

4.3.4 Pilot Changeover

With a pilot changeover, the new system is tried out at a test site before launching it company-

wide. For example, a bank may first test the system at one of its branches. This branch is referred

to as the pilot, or beta, site for the program. Since parallel changeovers tend to be expensive,

using the pilot changeover technique allows companies to run the new system next to their old

but on a much smaller scale. This makes the pilot changeover method much more cost-effective.

After the kinks are worked out of the system at the test site, companies usually opt to use the

direct changeover technique to launch the system company-wide. [ CITATION Tanya \l 1033 ]

Due to the numerous complaints of the stressful process from clients and the facility managers,

the researchers intend to consider the direct change over in implementing the proposed system to

immediately address and solve the problem.

27
4.4 SYSTEM DOCUMENTATION

4.4.1 About the system

Figure 4.4.1: Home Page

28
Description: this page presents the client or the user to sign in or create an account to

help use the system.

Figure 4.4.2: Booking Request Page

This page helps to check availability of space and facility.

29
Figure 4.4.3: Facilities page

This page allows selecting and having a view of the facilities available in the

auditorium so that a choice would be made.

30
figure 4.4.4: Facilities selection page

This makes provisions for a user to select the preferred facility.

31
Figure 4.4.5: Payment options page

This pages provides a platform for transactions or payments options of a

preferred facility and service.

32
Figure 4.4.6: Payment page

This pages provides a platform for transactions or payments of a preferred

facility and service. It also present terms and conditions, policies, and

declarations of the auditorium.

33
Figure 4.4.7: Leave a message page

This allows users and clients to leave suggestions or messages for the

management of the auditorium.

Figure 4.4.8: Details of person page

This enables whoever is booking to input their details.

34
Figure 4.4.9: Records Page

This page allows the administrator to view the details fed in by the clients.

35
Figure 4.4.1.1 Details of Facility page
This allows the administrator to enter details of a preferred facility.

Figure 4.4.1.2 : Services detail page

36
This interface enables the administrator to add a new service for users who want to

enjoy extra services.

Figure 4.4.1.3: Details Records

This presents the administrator with the details being fed by the clients.

37
Figure 4.4.1.4: Report Generation Page

This presents the administrator an opportunity to view and generate the details

fed into the system.

38
Figure 4.4.1.5: Policies Page

This enables to view the terms and conditions, policies, and declarations of the

auditorium.

4.4.1.6 Getting started

39
Figure 4.5.6: Local server page

This is where the system is locally ran.

40
CHAPTER 5

CONCLUSION AND RECOMMENDATION.

5.1 INTRODUCTION

Recently, internet has become very common which people use every time. Internet is used

through desktop, laptop, tablets and smart phones that can be found in the hands of a great

number of people in the world. The documented auditorium booking management project

is actually an attempt to establish a system by which the users can book the UPSA

auditorium from their comfort zones. It was a very challenging project due to the

distractions of the novel corona virus pandemic, we could not collect as much data as we

needed but we endeavored to fully complete it at the required period. At the initial stage,

we did not know how the interface would be. Though it is challenging to build up a new

project, we have built it. We think it is the first auditorium booking management system

for UPSA. Clients can successfully secure spaces in the auditorium within few minutes

without having to move to the school hence valuable time will be saved.

5.2 SUMMARY

Auditorium Booking Management System is a platform that provides interested parties the

opportunity to secure a space or facility in an auditorium irrespective of the place you are,

provided you are connected or have access to the internet. This has saved the time and has ease

clients’ efforts to booking a space. Online Auditorium Booking Management System has made

booking of facilities easier, faster, and convenient and has driven business to a new phase,

compelling competitors to make adjustments in order to prevent them from lagging behind. The

41
outcome of this project underscores the need for auditorium managers to take online market

seriously. Our survey established that stakeholders of the auditorium are fed up with the hectic

process the manual process presents them and they would like a technology driven process that

would bring an end to their inconveniences.

5.3 RECOMMENDATIONS

User requirements keep changing as the system is being used. Some of the future

enhancements that can be done to this system are:

i. As the technology emerges, it is possible to upgrade the system and can be

adaptable to desired environment.

ii. Because it is based on object-oriented design, any further changes can be easily

adaptable.

iii. Based on the future security issues, security can be improved using emerging

technologies.

iv. iv. Sub modules can be added.

v. Any in-built web browser can be added.

5.4 CONCLUSION

The “Auditorium booking management system” was successfully developed and is tested

for accuracy and quality. During this project, we have accomplished all the objectives and

this project meets the needs of the organization.

42
References
Ahmed, S. (2016, 12 27). quora. Retrieved from https://www.quora.com/What-is-PHP-programing

computer hope. (2019, 6 9). Retrieved from computer hope:


https://www.computerhope.com/jargon/h/html.htm

https:www.upsa.edu.gh. (2019). Retrieved from UPSA.

Margaret, R. (2006). Retrieved from Techtarget:


https://searchsoftwarequality.techtarget.com/definition/waterfall-model

Robertson, T. (n.d.). Chron. Retrieved from https://smallbusiness.chron.com/changeover-techniques-


34890.html

S., A. (2018, 11 02). Retrieved from https://bizfluent.com/about-6744256-importance-information-


technology-business-sector.html

Shormistha-Chatterjee. (2019, 09 25). Quora. Retrieved from https://www.quora.com/What-are-the-


types-of-functional-testing-services

A, Salahudeen and A. Rahim (June 2020). UPSA projects.

43
APPENDICES

I. Appendix: Programming Codes


. Admin controller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Auth;

use Session;

use DB;

use App\User;

use App\Facility;

use App\Service;

use App\FacilityImages;

use App\BookingFacility;

class AdminController extends Controller

//

public function login(){

return view('admin.login');

public function home(){

44
return view('admin.home');

public function logout(){

Auth::logout();

return redirect('/admin/login');

public function generateRandomNumber($length=5) {

$result = '';

for($i = 0; $i < $length; $i++) {

$result .= mt_rand(0, 9);

return $result;

public function authenticate(Request $r){

if(Auth::attempt(['username' => $r->username, 'password' => $r->password],$r->remember)){

return redirect()->intended('/admin/home');

Session::flash('error','Invalid Username or Password');

return back();

public function account(){

$users = User::all();

return view('admin.account',compact('users'));

45
}

public function deleteUser(Request $r){

$del = User::where('id',$r->id)->delete();

if($del){

return ['status'=>'success'];

return ['status'=>'error'];

public function saveaccount(Request $r){

$add = User::create([

'username'=>$r->username,

'password'=>bcrypt($r->password)

]);

if($add){

Session::flash('success','New Account Added Successfully');

return back();

Session::flash('error','User could not be added');

return back();

public function addFacility(){

return view('admin.addfacility');

46
public function saveFacility(Request $r){

//return $r->all();

$confadd = [];

$musicadd= [];

if(isset($r->conf_add_count) && $r->conf_add_count >=1){

for($i=1;$i<=$r->conf_add_count;$i++){

array_push($confadd,['conf_add_amount'=>$r->{'conf_add_amount'.$i},'conf_add_hour'=>$r-
>{'conf_add_hour'.$i}]);

if(isset($r->music_add_count) && $r->music_add_count >=1){

for($i=1;$i<=$r->music_add_count;$i++){

array_push($musicadd,['music_add_amount'=>$r->{'music_add_amount'.
$i},'music_add_hour'=>$r->{'music_add_hour'.$i}]);

$mainimage = null;

if($file = $r->file('main_image')){

$ext = $file->extension();

$newname = $this->generateRandomNumber(20).'.'.$ext;

$file->move('storage', $newname);

$mainimage = $newname;

$add = Facility::create([

'name'=>$r->name,

47
'description'=>$r->description,

'capacity'=>$r->capacity,

'conf_fixed_price'=>$r->conf_amount,

'conf_fixed_hours'=>$r->conf_hours,

'conf_additional_price'=>json_encode($confadd),

'music_fixed_price'=>$r->music_amount,

'music_fixed_hours'=>$r->music_hours,

'image'=>$mainimage,

'music_additional_price'=>json_encode($musicadd)

]);

if($add){

if($r->hasFile('supporting_images')){

$files = $r->file('supporting_images');

foreach($files as $file) {

$ext = $file->extension();

$newname = $this->generateRandomNumber(20).'.'.$ext;

$file->move('storage', $newname);

FacilityImages::create([

'facility_id'=>$add->id,

'image'=> $newname

]);

Session::flash('success','New Facility Added Successfully');

return back();

48
}

else{

Session::flash('error','Error Whiles Adding a new Facility. Try again');

return back();

public function facilityList(){

$facilities = Facility::all();

return view('admin.facilitylist',compact('facilities'));

public function deleteFacility(Request $r){

$del = Facility::where('id',$r->id)->delete();

if($del){

return ['status'=>'success'];

}else{

return ['status'=>'error'];

public function addService(){

return view('admin.addservice');

public function saveService(Request $r){

49
//return $r->all();

$confadd= [];

if(isset($r->conf_add_count) && $r->conf_add_count >=1){

for($i=1;$i<=$r->conf_add_count;$i++){

array_push($confadd,['add_amount'=>$r->{'conf_add_amount'.$i},'add_hour'=>$r-
>{'conf_add_hour'.$i}]);

$add = Service::create([

'name'=>$r->name,

'description'=>$r->description,

'type'=>$r->type,

'fixed_price'=>$r->conf_amount,

'fixed_hours'=>$r->conf_hours,

'additional_price'=>json_encode($confadd)

]);

if($add){

Session::flash('success','New Service Added Successfully');

return back();

else{

Session::flash('error','Error Whiles Adding a new Service. Try again');

return back();

public function serviceList(){

50
$services = Service::all();

return view('admin.servicelist',compact('services'));

public function deleteService(Request $r){

$del = Service::where('id',$r->id)->delete();

if($del){

return ['status'=>'success'];

}else{

return ['status'=>'error'];

public function clients(){

return view('admin.client');

public function showhide($id,$status){

Facility::where('id',$id)->update(['status'=>$status]);

Session::flash('success','Action Completed Successfully');

return redirect('/admin/facilitylist');

public function settings(){

$settings = DB::table('settings')->where('id',1)->first();

return view('admin.settings',compact('settings'));

51
public function saveSettings(Request $r){

$save = DB::table('settings')->where('id',1)->update([

'terms'=>$r->terms,

'policy'=>$r->policy,

'declaration'=>$r->declaration

]);

Session::flash('success','Settings Updated Successfully');

return back();

public function messages(Request $r){

$messages = DB::table('messages')->orderBy('id','DESC')->get();

return view('admin.messages',compact('messages'));

public function reports(){

return view('admin.reports');

public function fetchreport(Request $r){

$dates = explode('-',$r->dateranges);

$startdate = date('Y-m-d H:i',strtotime($dates[0]));

$enddate = date('Y-m-d H:i',strtotime($dates[1]));

if($r->facilities=='all'){

$bookings = BookingFacility::where('startdate','>=',$startdate)->where('enddate','<=',$enddate)-
>get();

52
}else{

$bookings = BookingFacility::where('facility_id',$r->facilities)->where('startdate','>=',$startdate)-
>where('enddate','<=',$enddate)->get();

return view('admin.reports',compact('bookings'));

Front end controller


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Client;

use Session;

use Auth;

use Hash;

use App\Facility;

use App\Service;

use App\Slydepay\SlydeIntegrated;

use App\Booking;

use App\BookingFacility;

use Mail;

use DB;

class FrontendController extends Controller

53
//

public function book(){

return view('book');

public function checkStatus(Request $r){

//return $r->all();

$dates = explode('-',$r->thedate);

$startdate = date('Y-m-d H:i',strtotime($dates[0]));

$enddate = date('Y-m-d H:i',strtotime($dates[1]));

if(BookingFacility::where('facility_id',$r->facility)->where('startdate','>=',$startdate)-
>where('enddate','<=',$enddate)->exists()){

Session::flash('error','Date you have selected has already been booked');

return back();

Session::flash('success','Date you have selected is Available. Start Booking');

return back();

public function generateRandomNumber($length=5) {

$result = '';

for($i = 0; $i < $length; $i++) {

$result .= mt_rand(0, 9);

return $result;

54
public function login(){

return view('login');

public function signup(){

return view('signup');

public function logout(){

Auth::guard('client')->logout();

return redirect('/');

public function createClient(Request $r){

$checkemail = Client::where('email',$r->email)->exists();

if($checkemail){

Session::flash('error','Sorry. This email already exists in our system.');

return back();

$token = $this->generateRandomNumber(20);

$add = Client::create([

'surname'=>$r->surname,

'othernames'=>$r->othernames,

55
'phone'=>$r->phone,

'email'=>$r->email,

'password'=>bcrypt($r->password),

'emailtoken'=>$token

]);

if($add){

try{

$link = url('/activate').'/'.$token.'/'.$add->id;

Mail::send('emails.register',['surname' => $r->surname,'link'=>$link],function ($m) use ($r){

$m->from('[email protected]', 'UPSA Auditorium Booking');

$m->to($r->email)->subject('User Account Activation');

});

}catch(\Exception $e){}

Session::flash('success','Account Creation Successful.Please Check your Email to Activate


Account '.$link);

return redirect('/login');

Session::flash('error','Error Whiles Creating Account. Please try again');

return back();

public function activateAccount($token,$id){

$find = Client::where('emailtoken',$token)->where('id',$id)->exists();

if($find){

Client::where('id',$id)->update([

'activated'=>1,

56
'emailtoken'=>''

]);

Session::flash('success','Your Account Has been Activated Successfully. Login to Continue');

return redirect('/login');

}else{

return view('errors.404');

public function authenticate(Request $r){

if(env('VALIDATEBEFORELOGIN','false')=='true'){

$check = Client::where('email',$r->email)->where('activated',0)->exists();

if($check){

Session::flash('error','Sorry.. Your Account has not been activated.. Please check your email and
activated it or Contact System Admin');

return back();

if(Auth::guard('client')->attempt(['email' => $r->email, 'password' => $r->password])){

return redirect()->intended('/book');

Session::flash('error','Invalid Username or Password');

return back();

public function gotobook1(Request $r){

57
Session::put('eventdetails',$r->all());

$getdate = explode('-',$r->eventdate);

$getdate[0] = $this->formatDate(trim($getdate[0]));

$getdate[1] = $this->formatDate(trim($getdate[1]));

if(Booking::where('startdate','>=',$getdate[0])->where('enddate','<=',$getdate[1])->exists()){

Session::flash('error','Sorry the date you selected is not available.. Choose another event date');

return back();

return redirect('/book1');

public function book1(){

if(!Session::has('eventdetails')){

return redirect('/book');

//dd(Session::get('eventdetails'));

$facilities = Facility::where('status',1)->get();

return view('book1',compact('facilities'));

public function addtocart(Request $r){

if(Session::has('cart')){

$cart = Session::get('cart');

}else{

$cart = [];

58
array_push($cart,$r->except(['_token']));

Session::put('cart',$cart);

Session::flash('success','Item Successfully Added to Cart');

return back();

public function book2(){

if(!Session::has('eventdetails')){

return redirect('/book');

if(!Session::has('cart')){

return redirect('/book1');

$cart = Session::get('cart');

//dd($cart);

if(count($cart)==0){

Session::flash('error','No Item in cart');

return redirect('/book1');

$services = Service::all();

return view('book2',compact('cart','services'));

public function account(){

return view('account');

59
}

public function savePassword(Request $r){

$client = Client::where('id',Auth::guard('client')->user()->id)->first();

if(Hash::check($r->oldpassword,$client->password)){

$client->password = bcrypt($r->password);

$client->save();

Session::flash('success','Password Updated Successfully');

return back();

Session::flash('error','Old Password you entered is invalid ');

return back();

public function makePayment(Request $r){

$cust_ref = $this->generateRandomNumber(10);

$pay = SlydeIntegrated::createInvoice($cust_ref,$r->description,$r->amount);

//dd($pay);

if($pay['status']=='success'){

Session::put('paydetails',['cust_ref'=>$cust_ref,'amount'=>$r->amount]);

return redirect("https://app.slydepay.com/paylive/detailsnew.aspx?pay_token=".$pay['response']-
>result->payToken);

Session::flash('error','Payment Initialization failed... try again');

return back();

60
public function formatDate($date){

$getpart = explode(' ',$date);

$datepart = explode('/',$getpart[0]);

$newdate = $datepart[2].'-'.$datepart[1].'-'.$datepart[0];

return $newdate.' '.$getpart[1];

public function response(Request $r){

if(isset($r->status)){

if($r->status==0){

$ev = Session::get('eventdetails');

$cart = Session::get('cart');

$paydetails = Session::get('paydetails');

$dates = explode('-',$ev['eventdate']);

$startdate = date('Y-m-d H:i',strtotime($dates[0]));

$enddate = date('Y-m-d H:i',strtotime($dates[1]));

$savetodb = Booking::create([

'nameofperson'=>$ev['nameofperson'],

'website'=>$ev['website'],

'rep_person'=>$ev['rep_person'],

'rep_phone'=>$ev['rep_phone'],

'rep_email'=>$ev['rep_email'],

'description'=>$ev['description'],

'expnopeople'=>$ev['expnopeople'],

'expnocars'=>$ev['expnocars'],

61
'startdate'=>$startdate,

'enddate'=>$enddate,

'extrainfo'=>$ev['extrainfo'],

'highprofile'=>$ev['highprofile'],

'package'=>json_encode($cart),

'haspaid'=>1,

'amountpaid'=>$paydetails['amount'],

'payment_method'=>'',

'reference'=>$r->cust_ref,

'date_paid'=>date('Y-m-d H:i:s'),

'client_id'=>Auth::guard('client')->user()->id,

]);

// $evdate = explode('-',$ev['eventdate']);

$facilitybooked = [];

foreach($cart as $c){

$getdate = explode('-',$c['date']);

$getdate[0] = $this->formatDate(trim($getdate[0]));

$getdate[1] = $this->formatDate(trim($getdate[1]));

BookingFacility::create([

'booking_id'=>$savetodb->id,

'facility_id'=>$c['id'],

'type'=>$c['type'],

'thedate'=>$startdate,

'startdate'=>$getdate[0],

'enddate'=>$getdate[1]

62
]);

array_push($facilitybooked,Facility::where('id',$c['id'])->first(['name'])->name);

try{

$data = [

'surname'=>Auth::guard('client')->user()->surname,

'nameofperson'=>$ev['nameofperson'],

'website'=>$ev['website'],

'description'=>$ev['description'],

'amountpaid'=>$paydetails['amount'],

'facilities'=>$facilitybooked

];

Mail::send('emails.afterpurchase',$data,function ($m){

$m->from('[email protected]', 'UPSA Auditorium Booking');

$m->to(Auth::guard('client')->user()->email)->subject('Order Summary');

});

}catch(\Exception $e){}

Session::flash('success','Payment went through Successfully');

return redirect('/book2');

63
Session::flash('error','Payment was not successful.. Try again');

return redirect('/book2');

Session::flash('error','Payment was not successful.. Try again');

return redirect('/book2');

public function payment(){

$payment = Booking::where('client_id',Auth::guard('client')->user()->id)->get();

return view('payment',compact('payment'));

public function removeItem($index){

$cart = Session::get('cart');

if(count($cart)==0){

Session::flash('error','No item in cart');

return back();

unset($cart[$index]);

$cart = array_values($cart);

//$ct = array_splice($cart,$index,1);

Session::put('cart',$cart);

Session::flash('success','Item Successfully removed from cart');

return back();

64
}

public function gallery(){

$facilities = Facility::get();

return view('gallery',compact('facilities'));

public function message(){

return view('messages');

public function sendmessage(Request $r){

$save = DB::table('messages')->insert([

'client_id'=>Auth::guard('client')->user()->id,

'message'=>$r->message

]);

Session::flash('success','Message Has been Sent Successfully');

return back();

65

You might also like