Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

NEA – Coursework Analysis:

Background:

The company I am going to be designing a system for is R2R Family Camp Ltd. They are a small
organisation which run family activity camps. This organisation has been running for a while now
however may be looking to expand in the future.

The event allows families to take part in various teams and do activities such as archery, canoeing,
kayaking, orienteering, pioneering, rock climbing, bush craft and zip wire. The various teams cater for
all ages and compete against each other in many activities. The camp normally occurs on a bank
holiday. The number of bookings and participants vary but usually the participants per trip encompass
around 200 people. This is a family friendly trip, which allows family and friends of all ages alike to
experience outdoor living which takes place at a campsite. The trip allows a break from urban life to
explore the serene surroundings of the countryside and take part in healthy recreational and
educational activities throughout the weekend.

The camp is family-friendly and it integrates the concept of diverse opportunities by offering the
option of indoor cabin accommodation as well as the option of outdoor accommodation bringing your
own tent. The indoor campers have selective kitchen access, wet room showers, accessible toilets,
and an indoor dining area. Outdoor campers also have access to outdoor shower cubicles and toilets.
In terms of transportation participants are given a coach ticket included in the total cost.

The organisation also takes chefs who cook three meals a day to provide a unique, wholesome,
experience to all campers and helping them cope with some of the struggles of being away from home
comfort by reducing the responsibility upon them to bring and cook their own meals.

The tent spaces are also allocated throughout the field upon the campers’ arrival according to sections
in order to keep the tents correctly aligned on the land. These are set up on the site by instructing
participants on where to pitch up their tents.

Each day participants are split into teams according to age and gender. Teams must all take part in
activities which contribute to the competitive nature of the camp. Winners of activities are decided
towards the end of the trip followed by an award ceremony on the last day of the event. Each night
there is also a campfire for all to gather around and spend some quality time with their families after
the days of activities.

The Users:

The company staff members manage the bookings however this is quite a small team and most of the
staff are assigned to their teams on arrival and are only involved in the business throughout the
weekend on a volunteer basis. Due to this all key staff members will need to have access to the system
and those who are simply volunteers will be informed by the core members of any information they
need separately. Aside from this customers will also need to access the system to make the bookings
hence my system will be split into two separate parts to accommodate both the needs of the staff and
the customers.
Observation:

Through observing the process of bookings in the company I can infer that the flow chart below
represents the general procedure:

Booking Payment Confirmation

1. Customer goes online and fills out the booking form


2. Customer then either emails the form back or hands in a printed copy directly to the staff
3. Customer then follows up with a payment
4. Customer then follows up with a confirmation call for the payment
5. Staff members then receives these details and closer to the event, emails out ticket
confirmations

Analysis Comments of Observation:

Although the procedure isn’t difficult for the customers, from an administration point of view it seems
to be quite a manual system which does not link any of its key components very well. The records of
bookings are not automatic and the payments are not able to be made on the same system as the
bookings. All information is also sent out manually between the customer and the company through
email which is not a very secure way of recording bookings since if hacked this could potentially risk
exposing confidential customer information such as contact and address details.

The Problem Definition:

The current issue with the system seems to be that it is very much a manual based system which is
not very well connected through a single database. If the process of bookings is not made more
efficient it may be hard for the company to scale up in the future. If or when new employees enter
the company it would be difficult to train them since there is no system to teach them to use. The use
of a manual system is also extremely out-dated and makes it hard for the company to keep up with its
competitors and reach higher profit margins. This issue also needs to be solved since the company
cannot expand if the system is not able to be used by multiple staff members. Specifically the system
has no automated way of customers entering their details and storing them efficiently. There is also
no automated form of invoice or receipt for the customers and they are manually emailed out their
confirmations which make the process very tedious. Another key issue with the booking process are
there is no delegated area for all the bookings to be viewed without the staff members having to
manually collate a spread sheet. There is also no way to see new bookings being made except manually
checking the company’s email account.
Investigation – Documentation:

Currently the bookings are taken using a booking form which the customer needs to print off and fill
out to hand in or email back to the company. This booking form is available on the company website.
Though the website looks professional it is merely a cosmetic appearance with pure promotional
purpose since it has no ability to process any customer requests as mentioned in the interview:

Although the booking form is quite thorough


it lacks the sophistication of an automatic
system due to the fact that the customer
needs to email the form through to the
management or manually fill it in and hand
it in, rather than fill it out online.

The booking form asks for customer details


such as name booking requests, any illnesses,
contact details, and other details of the
booking for the customer.

There is also a section where customers


choose their accommodation type – indoor or
a tent however it is then up to them to
calculate their cost based on the pricing guides
provided and then transfer the correct amount
before its authorised by the a staff member.

There is also a volunteer box at the bottom where participants can register their interest in
volunteering for the company to help out over the weekend.
Analysis Data Dictionary:

Personal Details
Data Example Type Length
Title Mr/Miss/Mrs/Ms String 4
Forename John String 20
Surname Frost String 20
Address 123 First Street String 50
Postcode E12 4AB String 7
Tel (Home) 02081234567 String 11
Mobile 07123456789 String 11
Ethnicity English String 20
Occupation Doctor String 50
Marital Status Married String 10

Booking Details
Data Example Type Length
Title Mr/Miss/Mrs/Ms String 4
Forename John String 20
Surname Frost String 20
Gender Male (M) Boolean 1
Age 22 Integer 3
Cost £130.00 Float -
Medical Condition Asthma String 50
Disability None String 50
Allergy Nuts String 50
Medication Taken Inhaler String 50
Accommodation Tent/Indoor String 10

Entity-Relationship Diagram

Below is the finalised ER diagram for the analysis component. It will consist of the tables shown
below.

Reservation Customer Zone

Staff
Interview of the Current System with a Member of the Admin Team:

Describe the current system?

At the moment, the process of booking starts with the customer downloading the booking form
from a PDF link. After this the customer fills this out and simply emails it back to the company. The
customer may call with any queries on the contact details provided and then completes of bank
transfer of the required total for the booking. The booking forms are then stored on our own file
records manually.

We wish to scale up the professionalism of our business in the future but this will be difficult given
the current manual system.

Do you have an existing interlinked automatic system?

Currently we do not hold such a system.

Do you use any databases to log bookings?

We currently do not use any such system; we simply download the customers’ emailed forms and
save them to our local folders in our booking records. This system is currently very disjointed and
would be much improved if it was made more automatic.

What are the general inputs and outputs of the system?

The inputs include the personal details via the emailed booking form and the money paid through
bank transfer.

The outputs are then sent to the customers. These include the terms and conditions and a ticket
confirmation. These are communicated to the customers manually through email.

How many people currently manage the bookings?

Currently just staff members which involve only 3-4 people since volunteers who help out during the
actual event cannot have access to all the data due to customer confidentiality and data integrity
purposes.

How do customers update their information, should they need to, after submitting their bookings?

They must contact the company directly or come to our office in order to speak to our staff and
update their details. We understand this is a very time consuming process and limits the efficiency
and accuracy of our information of our customers when they are making bookings.

How is a booking cancelled?

Currently customers have to contact the company directly they do not have the ability to cancel
their own bookings.

How do you view all the booking?

As the bookings come through we have to manually enter all the details into a spread sheet in order
to collate all the details.
If we wish to view all the bookings this cannot be done until this spreadsheet has been collated after
majority of the bookings have come in

Proposed System Features:

Why do you require the system to be updated?

It’s very limiting to our growth and also extremely time consuming. We need to automate our
processes in order to achieve a higher level of productivity.

What elements of the old system are essential to the new system?

The ease of a customer filling out a form online with a simple bank transfer, since this makes it easier
for us to track our company transactions.

We will also need the customer details to be stored so that they available for staff to view and
reference as per needed throughout the booking process.

Whilst we currently manually ensure that there are no overbookings or double bookings the new
system will also need to carry this feature automatically.

What new features would you like to add?

We would like to add a feature which allows us to automatically calculate profits based on the
number of bookings.

It would also be nice to analyse which counties our target demographic comes from in order to
advertise more efficiently to maximise our resources.

We would also like customers to be able to automatically update their details online.

We would like customers to be able to cancel their bookings online through their account.

Would you like the same system to be used for customers and staff?

Yes we would like the same system to be used but we need to ensure that there is a certain level of
authorisation so that customers and staff can access the appropriate pages without having access to
confidential data.

Please describe the overall process order you want the system to follow?

1. Customer Register/Login
2. Customer makes a booking
3. Customer makes a bank transfer of cost
4. This booking is sent to staff for approval
5. Once approved the staff member who approved the booking and the booking reference is
recorded for future records
6. This booking will now appear I relevant county searches or profit projections
DFD of Current System – Level 0

DFD of Current System – Level 1.0

Level 1.0 DFD doesn’t apply very well to the current system since the company’s processes aren’t split
into any sub categories or interlinked and all the processes are manual.
Proposed System DFD:

Data Source Destination Table:


Data Explanation Source Destination
Booking Form Customers go online and fill Online Customer - Staff
out a booking form. These
are either handed in
manually or emailed to the
company.
Payment Customers then follow up Customer Company Account
with a bank transfer and Bank Transfer
their name labelled.

Ticket Confirmation Emailed after the booking is Staff Customer


confirmed. Bookings are
confirmed by calling or
emailing the company to
follow up the payment
made.

Proposed Source Destination Table:

Data Explanation Source Destination


Customer Details Customers will register Customer Customer Table
using the registration form
which will gather their
details.
Reservation Details These details will be Customer Reservation Table
gathered throughout the
booking process.

Booking Will be shown to the Staff Customer


Confirmation customer before when they
confirm their booking for
their future reference.
Payment Customers then follow up Customer Company Account
with a bank transfer and Bank Transfer
their name labelled.

Limitations:
Hardware Constraints:

If the correct hardware becomes unavailable or damaged it will be difficult to access the bookings
database, despite this due to the fact that the system will be on an online server this should not be
too much of a problem for the user. The only application needed for the system would be a web
browser since the database will be available on an online server.

The use of SQL servers requires a reasonably up to date operating system i.e. a recent version of
Windows OS as well as at least 1-4GB RAM for optimum performance paired with a recommended 64-
bit processor.

These spec requirements may create a hardware constraint for staff and customers which the
company should be aware of. Despite this, most customers and company devices are compatible with
these requirements.

Making the solution adaptable to different smart devices such as tablets or smartphones would make
it more accessible for a wider range of target customers as well as any new staff recruited but time
constraints won’t allow me to add this feature unfortunately.

Software Constraints:

The software constraints of taking a system from manual to entirely automatic solution is that if there
is any issue with a network, internet connection or quality of the server being used to access the
database it could mean the whole system is down for a period of time. This may impact the company’s
ability to operate smoothly and efficiently and defeat the purpose of an automatic system temporarily.

The individuals in question also need to be able to utilise the solution and any features it will entail.
This means that they will need to be trained and whenever a new employee or volunteer enters the
company they will also need to undergo a small amount of mandatory training.

Regardless of the constraints mentioned overall the solution will come with very little software
complications and the only software needed to utilise it is a web browser.

Users’ IT knowledge:

The users of the system will mainly be the management team of the organisation. They are relatively
experienced in running their company however may not have the IT ability to fully execute my
database hence I will ensure my system is concise and simple to use whilst maintaining the
professional front end appearance. I will ensure it caters to the direct needs of the organisation.
Currently the only users of the system are these two key staff members, the managers; hence the
system should not require too much training to execute. Overall the system will not be too difficult to
navigate hence should be suitable for the main aims and target users.

Time Constraints:

The technical solution will need to be completed before the start of April.

Objectives:

General Objectives:
The key aim of the system is to facilitate bookings for the company through a website and make the
process of making and reviewing bookings much more efficient for both staff and customers. This will
make the process less time consuming and facilitate growth for the business.

Specific Objectives

1. The user interface should be simple and well designed


2. The site should be simple to navigate for users
3. The customer should be able to:
a) Register
b) Login
c) View personal details
d) Update personal details
e) Make a booking
f) View all bookings under their name
g) Change a booking
h) Delete/Cancel a booking
4. Staff members should be able to:
a) Login
b) View all bookings made
c) Approve bookings
d) View all customers registered
e) View a profit projection
f) Search for most popular areas users are from i.e. Most Common County
5. The login system:
a) Allow customers to login
b) Allow customers to logout
c) Allow staff to login
d) Allow staff to logout
e) Encrypt passwords

6. The registration system:

a) Should allow new customers to register

7. Authorisation:
a) Should allow staff to access necessary pages
b) Should allow customers to access necessary pages
8. Validation:
a) Presence check

b) Format Check
9. Store data into database:
a) Store in Customer Table
b) Store in Reservation Table
c) Store in Login Table

10. The system should allow:


a) Prevention of double bookings i.e. filtering
b) Search/Selection – i.e. Customers from specific counties/areas

Design

IPSO Chart
INPUT PROCESS
Customer Customer
 Registration Details  Register as a Customer
 Login Details  Login to Customer Account
 Booking Details  Update Personal Details
 Make a Booking
Staff  Delete Booking
 Login Details
Staff
 Login to Staff System
 Check Profit Projections
 Approve Bookings
 Search County Customers
STORAGE OUTPUT
Customer Customer
 Customer Table  View All Current Bookings
 Reservation Table  View Personal Details
 Login Table
Staff
Staff  View All Customers
 Staff Approved Table  View All Bookings
 Login Table  View Profit Projections
 View County Analytics

Entity-Relationship Diagram

Below is the finalised ER diagram for design purposes. It will consist of 5 tables as shown below.

Modular Design
Customer

Staff
Evaluation - Complexity Table
System Component Complexity Reason

Booking System High This system prevented double booking


and used a multistage booking system to
ensure all bookings made were assigned
adequate zones with correct max
capacity to cater for desired no. people.

Home Page Low This page is merely design based hence


doesn’t bode any complex features.
Login System Medium-High The login system utilises the details
customers enter upon registering and
insert them into the login table. This also
encrypts the password using an MD5
hashing algorithm to protect
confidential data. Any time the customer
tries to login the details entered are
cross-checked with these existing
records to ensure only registered users
can log in.
Registration Medium This utilises an SQL SELECT statement
which inserts data into 2 tables
simultaneously in order to enter
registration details and foundational
login details so that a customer can log
in again later.
Profit Projection High This utilises a high order SUM function
and allows a staff user to search the total
profits made within a certain date range.
Location Analytics High This page uses a search function by
utilising a query which allows the staff
user to search a county in order to
display all customer records from the
area searched.
Staff Approve Bookings Very High This uses SET based logic to crosscheck
the records which exist in one table in
the database but not in another so as to
only display booking which have not yet
been approved by staff and allow them
to be approved.
Navigation Bar Medium-High This uses a nested IF condition which
checks the user type through the session
variable which then displays the
appropriate navigation links so that
customers and staff can only access the
data they are authorised to access.
Evaluation – Objectives Met:

1. The user interface should be simple and well designed


I achieved this in my technical solution through the use of moderate CSS I used images to
make the backgrounds of the pages attractive and I simply put a navigation bar/menu at the
top of each page which meant the appropriate users could access any pages they needed
very easily. An example of this which can be found in my technical solution is if a new user
wanted to register they would simply see “Register” click it and be taken straight to the
registration page presented with a form where they would enter their details.

2. The site should be simple to navigate for users

The simplicity of navigation for the users was increased by the fact that I utilised a nested IF
condition in order to display the navigation bar. This ensured a personalised menu was
displayed depending on the “SESSION ID” of the user. If the User Type was defined as
customer at the start of the session it would display the necessary pages for this i.e. the
relevant booking and registration pages needed. If the User Type was defied as Staff in the
session it would display the staff menu which would allow the user to view the pages
needed to view bookings, approve bookings, view customers, or view profit projection etc.

3. The customer should be able to:

a) Register

The customer is able to do this through the registration page. After entering their
details their information is stored in the “Customer” table within the database and
their email is stored as a username within the Login table as well as their password.

b) Login

The customer can login simply by pressing the “Login” option of the navigation bar
and they will be taken straight to the login page. If their Username and Password
match an existing combination stored in the “Login” table then they can login
successfully.

c) View personal details


d) Update personal details

Both these objectives are achieved simultaneously through the “Edit Personal Details”
page where once clicked the current session customer’s details appear and the
customer is also able to change them by typing into the fields to change their
information.

e) Make a booking

Once a customer logs in they can click on the Make Booking link on the navigation bar.
This tales them to the start of the booking process. Firstly they enter their desired
number of people and desired dates for booking. The process then continues to show
them the available zones/rooms/spaces they can choose from which fit their desired
dates. If none are available they must go back and select different dates. The process
then continues to the booking confirmation page where they are given the calculated
cost for their stay and they are asked to press confirm. This is then inserted into the
“Reservation” table in the database.

f) View all bookings under their name

If the customer clicks view bookings all their current confirmed bookings will be shown
to them.

g) Delete/Cancel a booking

The customer can delete any of their bookings on the same page where they can view
their bookings. Next to each booking there is a delete button where if pressed the
record will be deleted from their bookings as well as from the “Reservation” table in
the database.

4. Staff members should be able to:

a) Login

Staff members can login the same way as customers can however their details are
stored in a separate staff table in the database.

b) View all bookings made


c) Approve bookings

If the staff user clicks on the View Bookings link they can view all bookings and also
approve these by clicking the approve button next to each booking. Once the bookings
have been approved they disappear from this section

d) View all customers registered

The staff member can also use the View Customers link to view any registered
customers regardless of whether they have completed a booking or not.

e) View a profit projection

The View Profit Projection page allows staff members to enter a date range and view
all profits made within that range for example a month or year they want to focus on.
Once they search this date range all reservations made within this range will be
displayed. A SUM function was then used to ensure the total profits during this time
were displayed.
f) Search for most popular areas users are from i.e. Most Common County

This is included in the analytics page where the staff user can type in a
county/town/area and all the reservations made from the area will be displayed. This
is useful to the company since they can see where the majority of their target
demographic lies and therefore increase advertising in the necessary areas to
maximise their revenues over time whilst they expand.

5. The login system:


a) Allow customers to login

Customers can login by clicking the login button. They will be presented with a form
where they must enter their User Email and Password. If these details match any
existing records in the Login Table/ the details they entered upon registration they
will login successfully, else the page will refresh and they will have to try again.

b) Allow customers to logout

Customers can log out by clicking the logout button. This destroys all of their existing
sessions in order to protect their data.

c) Allow staff to login

Staff can login in the same way as customers but the system they will be presented
with once they do so will be different due to the if condition encoded into the n=page
controlling the navigation bar. This is why customers and staff can see different links
at the top of the page.

d) Allow staff to logout

Staff can logout the same way described as customers.

e) Encrypt passwords

I used a MD5 hashing algorithm to hash the passwords entered when customers
register and these were stored under HashedPW in order to ensure all staff and
customer passwords were encrypted to maintain complete data security and make
my system as realistic as possible.

6. The registration system:

a) Should allow new customers to register


New customers can register through the registration page. After entering their details
their information is stored in the “Customer” table within the database and their
email is stored as a username within the Login table as well as their password stored
as HashedPW using a MD5 hashing algorithm to maintain data security and complete
integrity.

7. Authorisation:

a) Should allow staff to access necessary pages


b) Should allow customers to access necessary pages

These two objectives are achieved This uses a nested IF condition which checks the
user type through the session variable in the code controlling the navigation bar which
then displays separate headers to users identified as staff and users identified as
customers to ensure they can only access necessary and appropriate data.

8. Validation:

a) Presence check

Presence checks are located throughout the system for all required fields so that a
form cannot be submitted if all the required information is not present. If a user tries
to submit a form without entering the necessary details an error message will appear;
“Please fill in this field”.

b) Format Check

Relevant fields only allow information in the correct format to be entered i.e. emails
must have the format email@email.com. This is also ensured by the database
character limits coinciding with the data types, for example the PostCode field will
only record 7 values i.e. (E12 4CB).

9. Store data into database:

a) Store in Customer Table


b) Store in Reservation Table
c) Store in Login Table

These 3 commands are executed by various INSERT SQL statements as present in the
technical solution.

10. The system should allow:

a) Prevention of double bookings i.e. filtering


This objective is met via only allowing customers to book vacant zones. After they
select their desired dates they are taken to the next page where they must select their
zone from a drop down list. This list only displays zones which can accommodate the
number of people they need for the selected dates. It cross checks the dates with all
current reservation dates and checks the number of people in the booking with the
max capacity of the zones. This process means any risk of double bookings is
eliminated right from the start of the booking process.

b) Search/Selection – i.e. Customers from specific counties/areas

This is executed by using a query and referencing it later in a SELECT SQL statement in
order to create a search function. The staff user can search a county and all bookings
with the county entered will be displayed.

You might also like