Blog

centercenter 2018 NCC

centercenter
2018
NCC: COMPUTER PROJECT
MauSafari Park
Lutchmanen Harassen
9500095000
2018
NCC: COMPUTER PROJECT
MauSafari Park
Lutchmanen Harassen
Table of Contents
TOC o “1-3” h z u Abstract PAGEREF _Toc514248703 h 4Synopsis of the project PAGEREF _Toc514248704 h 4Introduction PAGEREF _Toc514248705 h 5Scope of the project PAGEREF _Toc514248706 h 5System developed PAGEREF _Toc514248707 h 5Methodology Used PAGEREF _Toc514248708 h 6Solution that emerged PAGEREF _Toc514248709 h 7The main aim and objective of the project PAGEREF _Toc514248710 h 8A brief overview of the remaining section PAGEREF _Toc514248711 h 91.0 Analysis PAGEREF _Toc514248712 h 101.1Requirements PAGEREF _Toc514248713 h 101.1.1List of functional requirements and non-functional requirements PAGEREF _Toc514248714 h 101.1.2Feasibility Study PAGEREF _Toc514248715 h 121.1.3Cost and benefits feasibility PAGEREF _Toc514248716 h 121.1.4Schedule feasibility PAGEREF _Toc514248717 h 141.1.5Choice of Programming language PAGEREF _Toc514248718 h 151.2Use Case Diagrams PAGEREF _Toc514248719 h 181.3System Architecture PAGEREF _Toc514248720 h 211.3.1Introduction PAGEREF _Toc514248721 h 211.3.2Initial Class Diagram PAGEREF _Toc514248722 h 222.0 Design PAGEREF _Toc514248723 h 242.1 Introduction PAGEREF _Toc514248724 h 242.2 UML Diagram PAGEREF _Toc514248725 h 252.3 Database Design PAGEREF _Toc514248726 h 252.3.1 Entity Relationship Diagram PAGEREF _Toc514248727 h 262.3.2 Project Entities PAGEREF _Toc514248728 h 262.3.3 Project Entity Relationship PAGEREF _Toc514248729 h 272.3.4 Entity Relationship Model: Class Diagram PAGEREF _Toc514248730 h 312.3.5 Data Dictionary PAGEREF _Toc514248731 h 322.3.6 Website Design PAGEREF _Toc514248732 h 366)Below is the design for the gallery page of the website. PAGEREF _Toc514248733 h 40 PAGEREF _Toc514248734 h 40 PAGEREF _Toc514248735 h 40 PAGEREF _Toc514248736 h 412.4 Sequence Diagrams PAGEREF _Toc514248737 h 412.4.1 Sequence Diagram for Registration PAGEREF _Toc514248738 h 412.4.2 Sequence Diagram for Login PAGEREF _Toc514248739 h 423.0 Testing PAGEREF _Toc514248740 h 433.1 What is testing? PAGEREF _Toc514248741 h 433.2 Types of testing PAGEREF _Toc514248742 h 433.2.1 BlackBox Testing Introduction PAGEREF _Toc514248743 h 433.2.2 WhiteBox Testing Introduction PAGEREF _Toc514248744 h 443.2.3 Unit Testing Introduction PAGEREF _Toc514248745 h 443.2.4 Integration Testing Introduction PAGEREF _Toc514248746 h 453.2 Unit Testing PAGEREF _Toc514248747 h 454.0 Implementation PAGEREF _Toc514248748 h 514.1 What is Implementation? PAGEREF _Toc514248749 h 514.2 Installation of WAMP Server PAGEREF _Toc514248750 h 524.3 MySQL DATABASE PAGEREF _Toc514248751 h 544.3.1 Installation of HeidiSQL PAGEREF _Toc514248752 h 544.3.2 Create the Database PAGEREF _Toc514248753 h 564.4 Installation of IDE PAGEREF _Toc514248754 h 574.4.1 Installation of Java Developer Kit (JDK) PAGEREF _Toc514248755 h 584.4.2 Installation of NetBeans PAGEREF _Toc514248756 h 615.0 Other Project Matters PAGEREF _Toc514248757 h 635.1 System Security PAGEREF _Toc514248758 h 635.2 Security threats PAGEREF _Toc514248759 h 63

AbstractSynopsis of the projectMauSafari Park is small wildlife park situated on an island called Mauritius in the Indian Ocean. This park was built in the 90s so as to keep animals that were in danger of extinction. During the past 10 years, the management wants to make the park a Safari Park to attract not only tourists but also Mauritians also to come to see those beautiful creatures and many more activities.

To make the project more attractive and productive, they decided to create a website for the park. This system will allow customer to purchase their tickets directly on the website and choose the activity they want to do. This new project will help them in doing publicity for the opening of the safari park.

A new aspect of the Safari Park is about donation for the animals.This new feature will allow people from different country to contribute to the feeding of the different animals we have in the park. Not only contribute but they will also be able to donate money for the feeding of an animal of their choice.

The project will involve the development of both the front-end and the back-end of the web-based system. The company’s staff will use the back-end in order to manage tickets that have been booked by customers. The front-end will be used by the customers as they will book their tickets and choose the activity they want to do on it.

IntroductionScope of the project
The scope of the project is to develop a platform for an online booking system for a safari park in Mauritius. This website is going to be a dynamic website. The project will cover in detail the analysis, the design, the implementation and the testing of the website. It will also include the technique of project management and of configuration management that has been used in the project.

System developedAs mentioned before, the system would be a dynamic website with additional features such as online booking with a donation function system. This will facilitate the works of the staff of the safari park and the clients that is not to wait for hours to get a ticket. It will also attract more customer to use the website for booking tickets. The website will be design and developed by taking into consideration that it should be responsive, i.e. it should fit on different screen of the user and it will be user friendly.

Methodology UsedThe methodology that will be used to develop the website is the same to the Software Development Life Cycle (SDLC). It provides a systematic process for building the website.

102870078232000

SDLC has many methodologies, but the one that is going to be used in this project is the waterfall model. The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases.

49999902070735Maintenance
00Maintenance
470979518065750039954201649095Testing
00Testing
371919513493750025761951162685Implementation
00Implementation
2290445858520001471295696595Design
00Design
11950704013200061595173990Requirements analysis
0Requirements analysis

Solution that emergedThe solution that emerged for this project is to develop a dynamic website in order to facilitate the customers of the safari park to buy a ticket to visit the park i.e. waiting for hours in a queue before getting a ticket. The website will include some features such as registration and login of users, booking of tickets online, pay bill online, etc.

Nowadays, for the development of a website, it does not require the purchase of expensive software or hardware. There are lot of freeware that are available online that can be use for the development of the website.

Below are some examples of freeware and open source software that can be used:
HeidiSQLWAMP
NetbeansMySQL
BoostrapGIMP
The main aim and objective of the projectThe Aims of the project are:
Replace the old system of booking table in a restaurant by new system.

The system should be fast and accessible via Internet.

The website should be displayed and accessible on different screen resolution.

It should contain a method for payment.

Menu and others features should be available on the website.
The Objectives of the Project are:
The developed system should be computerized.

The system should be secure using the SSL.

It should provide information such as promotion, events, etc.

It should also contain a billing system.

The project should be efficient and robust.

A brief overview of the remaining sectionChapter 1 – Analysis
This chapter explains the business requirements that are gathered in this phase. It is analyzing the needs of the client and ensure that the project meet their expectations. This phase includes use case diagram to describe different scenario of the system process. Architecture is discussed at the end of this phase showing the system architecture and the class diagram.

Chapter 2 – Design
The design phase is discussed in this chapter after a good understanding of the requirement and analysis from the previous chapter. This chapter will includes the design of the database and the website by defining the Entity Relationship Model (ERM), the website structure, Structural Model and Behavioral Model.

Chapter 3 – Implementation
This chapter show the implementation of the website. Procedure to install the require software is detailed in this phase. It is the main focus of the developer to produce the website from coding.

Chapter 4 – Testing
After the coding, this chapter describes the testing done on the developed website. Testing will includes unit testing, integrated testing and system testing.
Chapter 5 – Other Project Issue
This chapter discussed about the project management and configuration management that has been used throughout the development of the project.
Chapter 6 – Conclusion
Conclusion is detailed in this chapter about how the whole project has been a success in developing the website.
1.0 AnalysisThis is the first phase of the software development life cycle and also the most important phase during which all requirements are gathered. This is to ensure that the website provide the expected requirement of an audience target.

RequirementsAt this phase it is important to document all requirements to the desired software. You should dedicate sufficient time to this phase, conducting extensive interviews with stakeholders. It is better to structure all incoming data, analyze them, consider all technical limitations that may arise on the client’s side, and come out with a ready-to-follow specification to meet the client’s needs. Another thing to consider is any constraints that may hinder the development process, such as client’s time and budget constraints.

List of functional requirements and non-functional requirementsFunctional Requirements Non-functional requirements
Product Features Product property
Describe the actions with which the user work is concerned Describe the experience of the user while doing the work
A function that can be captured in use cases Non-functional requirements are global constraints on a software systems that results in development cost, operational costs
A behavior that can be analyzed by drawing sequence diagrams, state charts, etc. Often known as software qualities
Can be traced to individual set of a program Usually cannot be implemented in a single module of a program
In order to categorize the requirements, I have been using the MoSCoW prioritization method.

Functional requirements:
Customers must be able to register themselves on the site
Customers must be able to login
Customers must be allow to book their ticket for the activities they want to do
Customers must be able to pay their tickets online
Customers must be also allow to cancel their tickets
Non-functional requirements:
The system must be user friendly
The system must fit on every screen
It must be robust and secured
Interaction between users and servers must be within seconds
Feasibility StudyFeasibility study is an important step and it is used to analyses the requirements, scope, costs, and benefits of the proposed project.
The below will be carried out for feasibility study.

Existing situation
This part will describes the actual situation and the associated issues.

Proposed & Recommended solutions
Proposed solutions and recommendation to reduce or eliminate the issues.

Cost and benefits feasibility
Profit over time will be illustrated by a graph
Schedule feasibility
Gantt chart will be used to show the progression of the system throughout project lifecycle.

Cost and benefits feasibilityAs the system will be developed using the freeware and open source software, the cost for development will be less than compared to the development of website on some expensive licensed software.

The website can be hosted on a web server or can be hosted with a hosting company where the cost is less than hosting the same on its own web server. Below is an example of the costing of hosting a website on https://www.godaddy.com/GoDaddyHosting GoDaddy Deluxe package – Rs 247/month
Domain name GoDaddy – Rs 564 / year
Choice of hardware
For the development of this project, the choice of the hardware that will be used to host the server is important. Thus, I have choose to use
In the table below, are the specifications of the PC that have been chosen to use as host and it meets the requirement needed.

Dell OptiPlex 3010 Desktop PC
Hardware Device Specifications
Memory 4GB
CPU Windows 7
Operating System Core i3 – 3.3 GHz
Hard Disk Capacity 500GB
Schedule feasibility

Choice of Programming languageThe programming language are classified into 2 parts such as front-end and back-end. In the front-end, we usually have HTML, CSS, JQuery and JavaScript whereas in the back-end we have language such as PHP, and MySQL, which are run on the server side.

During the development of this project, both front-end and back-end are needed in order to be successful. Below are the languages that have been used during the development of the project.

Front-end:
HTML: HTML (HYPER TEXT MARKUP LANGUAGE) is used to build up web pages, which are connected together. Those websites are known as Hypertext also it is commonly acquainted with internet that is format with the aid of various tags. It tells a web browser how to structure it to display.
It was develop to define the structure of documents like heading, paragraph, and lists to facilitate the scientific information between researchers.
CSS: Cascading Style Sheet is a style sheet language used for describing the presentation of a document written in a markup language.
CSS is supposed to allow the separation of document content from document presentation, including aspects such as the layout, colors, and fonts. This separation can improve content accessibility, provide more flexibility and control within the specification of presentation characteristics, allow multiple HTML pages to share formatting by specifying the right CSS in a separate .css file, and minimize complexity and repetition in the structural content.

JavaScript: JavaScript is a lightweight, interpreted programming language. It is made for creating applications being network-centric. It is complimentary to and integrated with Java. JavaScript is very simple to implement because it is incorporated with HTML. It is an open and a cross-platform.
JavaScript is a high-level, dynamic, and interpreted programming language. Alongside HTML and CSS, it is among the three core technologies of the World Wide Web; the majority of websites employ it and all modern Web browsers without plug-ins support it.

Back-end:
PHP: The PHP Hypertext Preprocessor (PHP) is a program written language, which allows web developers to build dynamic content that interacts with databases. PHP is in fact useful for developing web based software applications.
PHP is just a server side scripting language that is embedded in HTML. It is used to manage dynamic content, databases, session tracking, and also build entire e-commerce sites.
It is incorporated with a range of popular databases, including MySQL, Postgre SQL, Oracle, Sybase, Informix, and Microsoft SQL Server.
PHP is pleasingly zippy in its execution, particularly if compiled as an Apache module within the UNIX part. The MySQL server, once started, executes even very complex queries with complex outcome sets in record-setting time.
PHP supports a large number of major protocols such as POP3, IMAP, and LDAP.
PHP4 added support for Java and distributed object architectures (COM and CORBA), making n-tier development an opportunity for the first time.

MySQL: In this project, MySQL is used as the backend database. MySQL is an open source database management system. It is fast, reliable and easy to utilize. It based on Structured Query Language (SQL). MySQL runs on virtually all platforms, including Linux, UNIX, and Windows. Even though it can be used in several applications, MySQL is most often associated with web-based applications and online publishing.

Use Case DiagramsA use case diagram at its simplest is a representation of a user’s interaction with the system that shows the relationship between the user and the different use cases in which the user is involved.

The different use case diagrams for MauSafari Park are displayed below:
Guest User
45720048069500
Registered User
22860035115500

22860068770500Admin
1
System Architecture
Introduction
A system architecture or systems architecture is the conceptual model that defines the structure, behavior, and more views of a system. An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structures and behaviors of the system.

Initial Class Diagram
Class Diagram for Clients:
The clients class diagram has been designed to store client details such as First Name (first_name), Surname (last_name), Address (address), Email address (email), Password (password) and Group (client_group). The registered data of the user will be stored in this class and it will also be used for authentication of user.

Clients
client_idemailaddressdate_of_birthgenderfirst_namelast_namepasswordclient_groupregister
loginClass Diagram for Users:
The class diagram below will be used for verification of login using email address and password.

User
emailpasswordverifyLoginClass Diagram for Users:
The class diagram below will be used for verification of login using email address and password.

Admin
emailpasswordverifyLoginClass Diagram for booking:
The class diagram below will contain the client name (client_id), visit (visit_id), ticket (ticket_id) and booking date (book_date).

Booking
booking_id
clientIDvisit_idticket_idbook_datebookClass diagram for tickets:
The class diagram below will contain the ticket name (ticket_name) and ticket (ticket_id).

Tickets
ticket_id
ticket_nameticketClass diagram for visits:
The class diagram below will contain the visit (visti_id), visit name (visit_name) and visit description (visit_desc).

Visits
visit_id
visit_namevisit_descvisit2.0 Design2.1 Introduction
System Design is the most crucial phase in the development of a system. The logical system design arrived at as a result of system analysis and is converted into physical system design.

2.2 UML DiagramThe Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering, that is intended to provide a standard way to visualize the design of a system.

There are two types of UML diagram, such as:
Structure diagrams : A structure diagram is a conceptual modeling tool used to document the different structures that make up a system such as a database or an application. It shows the hierarchy or structure of the different components or modules of the system and shows how they connect and interact with each other.

Behavior diagrams : A behaviour diagram displays the dynamic interaction between objects with each other in a system. It represents the functionality of the software system and emphasizes on what should take place in the system that is being modeled.

022161500
2.3 Database Design
For the development of the database, the WAMP software has been used and the database was named mausafari_park.

2.3.1 Entity Relationship DiagramAn entity relationship diagram (ERD), also known as an entity relationship model, is a graphical representation of an information system that depicts the relationships among people, objects, places, concepts or events within that system.

2.3.2 Project Entities
Below is a list of the entities that will be involved is the system of MauSafari_Park. These entities will be used to produce the ERD of the system.

Admin Entities:
Login
Booking
Feedback
Photos
Activities
Client Entities:
Register
Login
Booking
Feedback
2.3.3 Project Entity RelationshipClient entities relationship
One client can register one account only.

027876500An account is for one client only.

One client can have only 1 login.

028575000A login account is for 1 client only.

028956000A client can book many activities.

A client can write many feedbacks.

05334000
Admin entities relationship
An admin can have one login only.

A login is for 1 admin only.

06794500
An admin can view and delete many feedbacks.

028575000
An admin can view, modify and delete many bookings.

0000
An admin can view and delete many photos.

028575000
An admin can add and delete many activities.

028956000

2.3.4 Entity Relationship Model: Class Diagram2.3.5 Data DictionaryWhat is Data Dictionary?
A data dictionary contains a list of all files in a database, the number of records in each file, and the names and types of each field.

Field Name Datatypeclient_idINT
emailVARCHAR
telephone__numberVARCHAR
addressVARCHAR
date_of_birthDATE
first_nameVARCHAR
last_nameVARCHAR
genderVARCHAR
passwordVARCHAR
client_groupVARCHAR
Table name: Clients
Field Name Datatypebooking_idINT
clientIDINT
visit_idINT
ticket_idINT
book_dateDATE
Table name Bookings
Table name: Photos
Field Name Datatypephoto_idINT
path_nameVARCHAR
Table name: Tickets
Field Name Datatypeticket_idINT
ticket_nameVARCHAR
Field Name Datatypevisit_idINT
visit_nameVARCHAR
visit_descVARCHAR
Table name: Visits
Table name: Openings
Field Name Datatypeopening_idINT
dayVARCHAR
time_fromVARCHAR
time_toVARCHAR
Table name: Feedbacks
Field Name Datatypefeedback_idINT
commentsVARCHAR
client_idINT
2.3.6 Website DesignThe website has been designed using free open source tools such as Netbeans.

In this section, the user interface designs have been displayed.

1) Below is the design for the home page of the website.

20574003131820Footer
Footer
3429003017520019431001645920Content
Content
34290010744201943100274320Banner
Banner
342900160020800100731520Navigation bar
0Navigation bar
2514600617220Login/Register
0Login/Register
342900617220034290016002000
2) Below is the design for the registration form of the website.

57150028575002057400285750Title
0Title
571500285750
32004003943985Register
Register
8001003943985Back
Back
16002003143885Repeat password
Repeat password
16002002800985Password
Password
16002002458085Last Name
Last Name
16002002115185First Name
First Name
16002001772285Gender
Gender
16002001429385Date of birth
Date of birth
16002001086485Address
Address
1600200743585Telphone Number
Telphone Number
1600200400685Email
Email
685800394398502971800394398501143000314388511430002800985114300024580851143000211518511430001772285114300014293851143000108648511430007435851143000400685
3) Below is the design for the login of the website.

1028700476252400300171450Title
Title
1028700571500
1485900172085Email
Email
1485900172085
14859001720851485900172085Password
Password

148590017208501485900172085Remember me
Remember me

3238500229870003419475239395Login
Login
108585022987001152525286385Back
Back

Below is the design for feedbacks of the website.

11430006013450
1152525508000Navigation Bar
Navigation Bar
1143000116205002514600116205TltleTltle1143000116205
147637558420
1600200116205Enter feedbacks
Enter feedbacks

31242001263653143250126365Submit
Submit
13906501358901419225173990Cancel
Cancel

Below is the design for the booking form of the website.

914400171450Navigation Bar
Navigation Bar
8001005715080010057150
1143000172085Booking form
Booking form
102870057785
13335003454401009650863601000125162560Book ticket
Book ticket

147637512065Payment
0Payment

809625584200202882586995Footer
Footer

Below is the design for the gallery page of the website.8001001663700914400167005Navigation bar
Navigation bar
800100167005
11620505080001409700441325Content
Content
2057400845820Footer
Footer
800100859155
2.4 Sequence DiagramsSequence diagrams are sometimes called event diagrams or event scenarios. A sequence diagram shows, as parallel vertical lines (lifelines), different processes or objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they occur.

0509270002.4.1 Sequence Diagram for RegistrationDescription:
Upon registration for a first time user, he will be asked to fill the registration with all its details. Once the user has put all the details required and click on the submit button, a validation process will take place for the details that have been put. But also if some or one of the details that have been entered is incorrect, the user will be asked to fill the form once again. This process will be repeated until all the required data is correctly entered. After the validation process, all the data that have been entered will be stored in the database of the system and the user will be redirected to the home page of the website.

0479425002.4.2 Sequence Diagram for Login
Description:
The login process includes only of 2 inputs such as ’email address’ and ‘password’. The user must put the email address that he has used to register on the website in order to be granted access to the website and full access to the system. When the user clicks on the login button, a validation process will be performed within the database. If the email address and the password do not match the ones in the database, the user will be told to do the inputs again. If the email address is well entered and the validation process is correct, the user will gain access to the services of the website.

3.0 Testing3.1 What is testing?The testing Phase of the Software Development Lifecycle (SDLC), is very important phases where bugs and errors are to be discovered if exist. The testing phase of the SDLC is where you focus on investigation and discovery. During this phase, developers find out whether their code and programming are work according to customer requirements.

3.2 Types of testing3.2.1 BlackBox Testing IntroductionBlackBox testing is a software testing method in which the one who is testing it does not know the internal structure/design/implementation of the item being tested. These tests can be functional or non-functional, though usually functional.

18383251397000

3.2.2 WhiteBox Testing IntroductionWhiteBox testing is a software testing method in which the one who is testing it knows the internal structure/design/implementation of the item being tested.

14859001333500
3.2.3 Unit Testing IntroductionUnit testing is a level of software testing where individual units/ components of a software are tested. The purpose is to validate that each unit of the software performs as designed. A unit is the smallest testable part of any software. It usually has one or a few inputs and usually a single output.

215265012827000
3.2.4 Integration Testing IntroductionIntegration testing is the phase in which individual software modules are combined and tested as a group. It always occurs after unit testing
215265013081000
3.2 Unit TestingIn this table below, is the unit testing for registration of a client.

Unit Test 1 Test Class: Client Designed By:
Lutchmanen Harassen
Data Source: Client Entry Objective: User Registration Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
1.1 Test for empty fields All fields will be empty and register button will be clicked Registration Failed pop-up will appear and user will be ask to fill the fields again Registration failed.

1.2 Test for empty fields All fields will be kept empty except email and register button will be clicked Registration Failed pop-up will appear and user will be ask to fill the fields again Registration failed.

1.3
Test for empty fields All fields will be kept empty except email and telephone number and register button will be clicked Registration Failed pop-up will appear and user will be ask to fill the fields again Registration failed.

1.4
Test for empty fields All fields will be kept empty except email, telephone number and address and register button will be clicked Registration Failed pop-up will appear and user will be ask to fill the fields again Registration failed.

1.5 Test for empty fields All fields will be kept empty except email, telephone number, address and date of birth and register button will be clicked Registration Failed pop-up will appear and user will be ask to fill the fields again Registration failed.

1.6 Test for empty fields All fields will be kept empty except email, telephone number, address, date of birth and gender and register button will be clicked Registration Failed pop-up will appear and user will be ask to fill the fields again Registration failed.

1.7 Test for empty fields All fields will be kept empty except email, telephone number, address, date of birth, gender and first name and register button will be clicked Registration Failed pop-up will appear and user will be ask to fill the fields again Registration failed.

1.8 Test for empty fields All fields will be kept empty except email, telephone number, address, date of birth, gender, first name and last name and register button will be clicked Registration Failed pop-up will appear and user will be ask to fill the fields again Registration failed.

1.9 Test for empty fields All fields will be kept empty except email, telephone number, address, date of birth, gender, first name, last name and password and register button will be clicked Registration Failed pop-up will appear and user will be ask to fill the fields again Registration failed.

1.10 Test for registration successful All fields will be filled up with the required data and register button will be clicked Registration Success pop-up will appear and user will be prompt to home page Registration Successful.

In this table below, is the unit testing for login of a client.

Unit Test 2 Test Class: Client Designed By:
Lutchmanen Harassen
Data Source: Client Entry Objective: Login Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
2.1 Test for empty fields All fields will be empty and login button will be clicked Login Failed pop-up will appear and user will be ask to fill the fields again Login failed
2.2 Test for empty fields All fields will be empty except email and login button will be clicked Login Failed pop-up will appear and user will be ask to fill the fields again Login failed
2.3 Test for incorrect password The fields will be filled up with the correct email address but an incorrect password and the login button will be clicked Login Failed pop-up will appear and user will be ask to fill the fields again Login failed
2.4 Test for incorrect email The fields will be filled up with the correct password but an incorrect email address and the login button will be clicked Login Failed pop-up will appear and user will be ask to fill the fields again Login failed
2.5 Test for login with all correct data All fields will be filled up with the required data and login button will be clicked Login Success pop-up will appear and user will be prompt to home page Login Successful.

In this table below, is the unit testing for a booking of a client.

Unit Test 3 Test Class: Client Designed By:
Lutchmanen Harassen
Data Source: Client Entry Objective: Booking Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
3.1 Test for Booking The user will choose any visits he wants and click on pay button Booking and payment successful Booking and Payment Successful

In this table below, is the unit testing for logout of a client.

Unit Test 4 Test Class: Client Designed By:
Lutchmanen Harassen
Data Source: Client Entry Objective: Logout Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
4.1 Test for Logout Logout button will be tested when the client click on the logout button Logout Successful Logout Successful

In this table below, is the unit testing for login of an admin.

Unit Test 5 Test Class: Admin Designed By:
Lutchmanen Harassen
Data Source: Admin Entry Objective: Login Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
5.1 Test for empty fields All fields will be empty and login button will be clicked Login Failed pop-up will appear and admin will be ask to fill the fields again Login failed
5.2 Test for empty fields All fields will be empty except email and login button will be clicked Login Failed pop-up will appear and admin will be ask to fill the fields again Login failed
5.3 Test for incorrect password The fields will be filled up with the correct email address but an incorrect password and the login button will be clicked Login Failed pop-up will appear and admin will be ask to fill the fields again Login failed
5.4 Test for incorrect email The fields will be filled up with the correct password but an incorrect email address and the login button will be clicked Login Failed pop-up will appear and admin will be ask to fill the fields again Login failed
5.5 Test for login with all correct data All fields will be filled up with the required data and login button will be clicked Login Success pop-up will appear and admin will be prompt to home page Login Successful.

In this table below, is the unit testing for addition of a visit by an admin.

Unit Test 6 Test Class: Admin Designed By:
Lutchmanen Harassen
Data Source: Admin Entry Objective: Adding a visit Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
6.1 Test for the addition of a visit Admin will field the required field and click on add visit Visit added successfully Visit added successfully
In this this table below, is the unit testing for the addition of a ticket by an admin.

Unit Test 7 Test Class: Admin Designed By:
Lutchmanen Harassen
Data Source: Admin Entry Objective: Adding a ticket Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
7.1 Test for the addition of a ticket Admin will field the required field and click on add ticket Ticket added successfully Ticket added successfully
In this this table below, is the unit testing for the addition of a ticket by an admin.

Unit Test 8 Test Class: Admin Designed By:
Lutchmanen Harassen
Data Source: Admin Entry Objective: Uploading photos Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
8.1 Test for the addition of photo Admin will field the required field and click on add photo Photo added successfully Photo added successfully
In this table below, is the unit testing for logout of an admin.

Unit Test 9 Test Class: Admin Designed By:
Lutchmanen Harassen
Data Source: Admin Entry Objective: Logout Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
9.1 Test for Logout Logout button will be tested when the client click on the logout button Logout Successful Logout Successful

3.3 System Testing
In this table below, is the system testing for client entry.

System Testing 1 Test Class: Client Designed By: Lutchmanen Harassen
Data Source: Client Entry Objective: Testing Functional requirements Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
1.1 Registration of user User fill all required data on registration form User account created Registration Successful
1.2 Client Login Client login into system by email and password Client will be logged in the system Login Successful.

1.3 Booking of service Client choose which activity he wants Client ticket booked and paid Booking and Payment successful.

In this table below, is the system testing for admin entry.

System Testing 2 Test Class: Admin Designed By: Lutchmanen Harassen
Data Source: Admin Entry Objective: Testing Functional requirements Tester: Lutchmanen Harassen
Test Case Description Task Expected Result Actual Result
2.1 Admin Login Admin login into system by email and password Admin will be logged in the system Login Successful.

2.2 Adding a ticket Admin adds new ticket through admin panel Ticket must be added and saved into database Ticket added successfully
2.3 Adding a visit Admin adds new visit through admin panel Visit must added and saved into database Visit added successfully
4.0 Implementation4.1 What is Implementation?Implementation involves the installation of the new system. This phase involves enabling operations and the deployment of the new system in the targeted environment.

In order to run the new system, MYSQL, PHP and Apache Server will have to be installed. It is a tiresome and very difficult task for some average developers and beginners. Luckily, WAMP is a combination of all three. The name WAMP itself stands for Windows, Apache, MySQL and PHP. It is mostly used in web development.
In the table, the tools that have been used for the development of the project is displayed:
Name
Purpose
HTML5 To define the structure of contents on the web-based system
CSS To define how HTML elements will be displayed on the web-based system.

JavaScript To make the web-based system more interactive
PhpTo develop and handle the application layer of the on the web-based system
Ajax To make web pages more responsive and avoid the need to reload them.

JQueryTo ease the use of JavaScript language
MySQL To be used as database for the system
NetbeansTo be used as IDE for HTML, PHP, CSS, JavaScript, Ajax and JQuery.

HeidiSqlTo be used as Database Management System for MySQL database
Apache To be used as Web Server
WAMP To install Apache Web server, PHP and MySQL server on Microsoft Windows Operating System
Bootstrap To be used to build the user interface of the web-based system
StarUMLTo develop UML diagrams
GIMP To create graphics, logos and icons and to edit images which are going to be used in the web-based system.

Microsoft Windows 7 Operating System Operating System on which the booking system will be developed and tested
4.2 Installation of WAMP Server
The WAMP server has been downloaded from http://www.wampserver.com/en/Step 1
Click on WAMP SERVER 64BITS to download the WAMP 3.0.6

Step 2
Click on next button to proceed with the installation

Step 3
Leave the default folder to c:wamp64 and follow the instruction by clicking on next until the setup finish the installation.

4.3 MySQL DATABASEWAMP has been installed successfully on the system. Now we have to create the database and then create the appropriate tables within the database.

First we will have to create the MySQL database via the WAMP server. There is a software called HeidiSQL which can be used to create and access the data much easier.

HeidiSQL is freely available on the internet on below URL
https://www.heidisql.com/4.3.1 Installation of HeidiSQLWe will install HeidiSQL on the system, which is a freeware, and it is freely available for download.

Step 1
Run the installer and proceed with the installation

Step 2
Click on next and click on install

Step 3
Click on Finish

4.3.2 Create the DatabaseHeidiSQL has been installed successfully, now we are going to create the database.

Step 1: Double-click on the HeidiSQL icon to launch the software

Step2: A new session should be created before creating the database. Click on new then select “Session in root folder”.

4.4 Installation of IDEWe will need to install an integrated development environment (IDE). IDE is a software use to write the code.
We will choose to install NetBeans because it is a well-known and mostly use IDE amongst website developers. Coding Language such as JAVA, HTML5, PHP, C, C++ and Javascript can be written and executed in NetBeans.

NetBeans is an open source software and freely available online to download.

Below are the different type of NetBeans bundle that can be downloaded

Before installing NetBeans, Java Developer Kit (JDK) is required. JDK is a program environment use to write Java code and applications.
4.4.1 Installation of Java Developer Kit (JDK)The Java Developer Kit can be downloaded on Oracle Website at the below URL
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlStep 1
Go to the above URL and download JAVA SE Development Kit 8u162 which is the latest version available online.

Step 2
Select the Accept License Agreement and download the version for Windows x64 as we are using a PC having Windows 64 bit.

Step 3
Lunch the executable file and follow the instruction.

Step 4
Click on next button to start the installation.

Step 5
Click on Close button to close the setup

4.4.2 Installation of NetBeansNetBeans is a freeware that can be downloaded on the below URL
https://netbeans.org/downloads/Below are the steps to install NetBeansStep 1
Click on the executable file once it has finished downloaded

Step 2
Click on Next button and follow the instruction

Step 3
Once the installation finished, now we can launch the software from the desktop icon

We have installed WAMP, HeidiSQL and Netbeans successfully and now we can start the coding.

5.0 Other Project Matters5.1 System SecuritySecurity is a very important matter nowadays. Thus, maintaining and ensuring security is really vital. The protection of the data, software and hardware from threats within the system is primordial. Suitable measures should be taken and put in place in order to detect, supervise and prevent security holes throughout the system.

5.2 Security threatsComputer security threats are relentlessly inventive. Masters of disguise and manipulation, these threats constantly evolve to find new ways to annoy, steal and harm. Arm yourself with information and resources to safeguard against complex and growing computer security threats and stay safe online.

The cause of these threats can be intentional like hacking or it can occur by an accidental cause like computer malfunctioning or natural disaster.

In the table below, the internal threats have been identified with security measures:
Internal threats examples Security preventives
Natural Disasters Use of Cloud services for storage of data
Use of redundant hardware
Use of disaster resistant devices
Staff theft or data leakage There should be control for accessing every files and folders
All activities that are being performed should be observed
Illegal activities
Encryption or authentication should be used to secure the Wi-Fi
There should be restrictions on downloads
Network failure Use of UPS is necessary
Backups should be done regularly
Unauthorized access to information Use of data encryption is important
Access to files and folders should be controlled
Close observance on activities being performed
Strong password should be used
In the table below, the external threats have been identified with its security measures:
External threats examples Security preventives
SQL Injection Data encryption must be use
Eavesdropping Messages must be encrypted to prevent it
Malware Use of anti-malware is needed
Password cracking Implement password timeout and lock-out
Use password complexity
Authentication
Phishing A web filter should be implemented
Users should be well trained
Updated firewall and antivirus software should be used
Hacking and virus attack Use of powerful and updated antivirus software
Use updated firewall software
Use of pirated software should be avoid
In the table below, threats concerning the system have been identified with its security measures:
System Security preventives
Hardware failure Use of cloud services is available and can be use
Inspection and maintenance of hardware should be done on a regular basis
Use of redundant services is necessary
Disasters Use of cloud services is available and can be use
Use of redundant services is necessary
Regular backups must be done
Network failure Use of UPS
Regular backups must be done
Regular backups for server also must be done

5.2 Evaluation of the system
This section is the comparison of the objectives of the project listed at the beginning of the system to those that have been accomplished. In the table, are the objectives which have been and not.

No. Project Objectives Status
To allow new users to register
To allow clients login
To allow clients to book a visit
To allow the clients with the facility to book a visit anytime as the website will be available 24/7.
To allow clients to connect to the website via their PCs, laptops or any mobile devices.
To allow clients to rate and comment on the website about the services that they have made use of.
To allow the clients with payment facilities such as online payment.
To allow clients to give their feedback on a particular cleaner.
In the table above, we can clearly see that out of 8 objectives, six of them have been successfully achieved but two were not met. This is mainly due to lack of time and knowledge. Also, like stated in the beginning, the methodology used is the Waterfall model, thus changes is not acceptable. Therefore, these objectives could not be met.

6.0 Maintenance
Maintenance is the last step in the methodology used to develop the project. This step occurs after the implementation and testing of the system, and involves making modifications to the system or an individual component to alter attributes or improve performance. Usually, these modifications occur either due to change requests by the director, or bugs during use of the system. Client is provided with regular maintenance and support for the developed software.

There are four types of maintenance:
1. Corrective, this one is mainly concerned with the removal of errors and bugs from the software.

2. Adaptive, this one is concerned with the enhancement of the system by adding new features, competencies and functions as a result of new technologies.

3. Perfective, this one is concerned with the improvement of the features of the system usually done as per request by the users of the system.

4. Preventative, this one is concerned with the prevention of problems and correcting them before they happen.

This phase can be significantly affected by each previous step in the model, for example, mistakes made during analysis and design can seriously hinder the success of the new system. Maintenance is then seen as a reactive step in which any errors are addressed so the system can operate effectively.