CP3 - Proposed Solution to a Realistic Problem - Apartment Administration software

Authors Avatar

Author – Joe Ainsworth        Date: 05/07/2007        Number of pages -

CP3 - WJEC COURSEWORK

Analyse, Design, Implement and Document

a Proposed Solution to a Realistic Problem

Title: Apartment booking software

Author: Joe Ainsworth

  1. CONTENTS

CHAPTER 1 - CONTENTS        

CHAPTER 2 - ANALYSIS        

Background        

Analysis of Current System        

Section 2.1 - Problem Definition        

Section 2.2 - Objectives        

CHAPTER 3 - DESIGN        

Section 3.1 - Justification of the proposed solution        

Section 3.2 - Modes of Operation        

Section 3.3 - Hardware and Software Requirements        

Section 3.4 - User and/or operator interface        

Section 3.5 - Files content, structure and access        

Section 3.6 - Processing stages        

Section 3.7 - Testing strategy        

CHAPTER 4 - TIME PLAN        

Section 4.1 - Overall time plan        

CHAPTER 5 - IMPLEMENTATION        

CHAPTER 6 - PROGRAM DOCUMENTATION        

Section 6.1 - Annotated Listing        

Section 6.2 - Procedures/ subroutine details        

Section 6.3 - Cross-referenced list of variables used        

CHAPTER 7 - TESTING        

Section 7.1 - Test data/expected results        

Section 7.2 - Actual test runs        

CHAPTER 8 - EVALUATION        

Section 8.1 - Evaluation of the implemented system        

CHAPTER 9 - USER DOCUMENTATION        

Section 9.1 - Installation        

Section 9.2 - Use        

CHAPTER 10 - BIBLIOGRAPHY        


  1. Analysis


Background

My identified project will be an apartment booking system. The client is Dawn Ainsworth who is the owner of the apartment which is located in a winter sports and summer activities area in Madzhare, Bulgaria. The apartment is rented out on a weekly basis for people wishing to holiday in the area rather than for long term occupation.

The apartment is fairly new and has only been made available for rent since August 2005 and therefore has not seen much custom yet. The following summer season it is expected that a form of internet advertising will be used to capture new custom. For this reason it is important to implement a system which will be able to be used for the forthcoming holiday seasons.

The organisation is not a large-scale operation and at present the client owns just one apartment but is looking to expand into the property rental market which is set to grow in Bulgaria and additional residencies will be required to meet demands. Due to this it is important that a system is in place that will be able to handle the high demand whilst being simple to use and mange. Currently all management and bookings for the apartment are done remotely off-site with an inefficient paper system which I intend to replace with a computer application. The project will be deep enough for further modules to be applied in the second year.

        The client needs outputs which are presented to the customer to reflect the apartment’s image. Outputs provided for the customer would include invoices and letters which will need to be clean and simplistic. On the management side the client will need outputs such as a calendar to show available week’s available and pricing aswell as statistical analysis. In addition the booking system will need to be easy to use as the client is not completely computer literate.

Client’s details

Bulgaria apartment location

Pine Ridge Apartments

Apartment X

Madzhare

Borovets

Bulgaria

Management location

Penair View

Truro

Cornwall

United Kingdom

Managing and maintaining the manual book keeping of such a property through a paper based system is time consuming and tedious. My client currently relies on bookings through e-mail and telephone so it would be quite appropriate to have software that the client would be able to use to automatically check availability in real time rather than rely on paper records or print outs which could be subject to human error a piece of software would benefit my client as it would allow for a faster turn around and would provide statistical analysis of availability and other data. Computerization of the processes used would save time, reduce human error and the client would benefit with a far more efficient system. Therefore this will be good scope for my project.


Analysis of Current System

There is software available for the management of properties, however they are expensive and complex and therefore they are not many are suitable for my client. With a system already in place it will be easy to find out what are the advantages and disadvantages of the current system and how they can be adapted or approved upon in my solution.

Currently the system used to administrate the property by my client is mainly paper based this is mainly due to the fast that the system has not been in place for long and the client has not managed to setup a suitable computer based system. Though the current system is mainly paper based there is limited use of computer resources.

The aim of the current system for the user is to record the availability of the apartment on a per week basis including the pricing on each specific week, whether it is vacant or not and to record customer information and contact details. The system also produces a series of paper based documents and emails for the end user.

The client has to input data into the system in order for it to function correctly. All of the data that is inputted into the current system is either numerical or alphabetical. A typical cycle of the system,

  1. My client receives a booking from a customer.
  2. The customers requested booking date and week are then taken and matched against the availability calendar to check whether the apartment is vacant or not. If the apartment is not vacant then the customer will be able to book this week
  3. The customers contact details will be recorded consisting of name, address, telephone number and preferred invoice method, either email or letter. These details will then be recorded on to paper and stored in a file.
  4. A deposit will be requested from the customer using their preferred invoice method.
  5. When the deposit is received from the customer to the client the booking is reserved. Again the preferred invoice method is used to confirm this.
  6. Closer to the booking date the full payment is requested. A letter or email is then sent to the customer stating the payment has been received and further instructions are sent.
  7. The booking process is now completed.

Where email and letters are applicable templates are used. Emails will usually include an attachment of a word processed letter.

Disadvantages of current system

Using a mainly paper based system has many downsides for my client. These disadvantages are not directly visible to the customer.

  • Paper - The system produces a lot of paper as an output and it is generally difficult and takes up a lot of valuable time organising a vast amount of paper. The paper also takes up a lot of physical space.
  • Organisation - Picking out individual records requires having to trawl through a file. The documents are in alphabetic order to a certain extent.
  • Updating and editing records - Using paper to store customer contact details on has limitations, this includes have to edit existing records. Editing an existing record in order to update it means that a completely new record will have to be made. Not only does this waste valuable time but it also generates a lot of waste paper.
  • Human error - The current system is vulnerable to human error. If the user of the system makes a mistake then it is likely they do not know about it. This could affect the usability of the system.
  • Confusing – There are so many parts to the system it can becoming confusing to use. There are records located both on paper and as saved files on the computer. It would benefit from centralisation which could be achieved computerising the system. Also, if somebody else were to take over the running it may be difficult for them to understand how it works properly.

Advantages of the system

The disadvantages outweigh the advantages and this is why I propose to create a new system for my client. Advantages of the current system,

  • Templates - Using templates for email and word processing of letters saves a lot of time. The user does not have to continuously spend time creating and writing new documents. However, the address and other details still have to be typed.
  • Program compatibility - The system makes limited use of software packages by Microsoft. Programs used are Word for word processing and Outlook for email, both programs are compatible. The choice of word to create letters is good because a majority of users have word installed so when word formats are sent through email it is almost guaranteed the recipient can open them.
  • Email – When a customers preferred method of contact is email. My client can save time by emailing the customer invoices, this means they do not have to post letters using mail, but can send them as attachments which is cheaper and faster.
  • Spreadsheets – Spreadsheets are a good way to statistically analyse data. In the system they are used to calculate finances such as incomes, outgoings and profit margins from rental.

Limitations of current system

In general the system works ok, however it takes a long time to maintain and update it manually, and these are its main weaknesses. It does everything it is intended to do. You can manage the availability of the apartment and store customer details. With simple user input the spreadsheet functions well as part of the system it is able to calculate the profit of the apartment.

However the system is confusing and fairly inefficient. A main drawback of the system is that it is not centralized as such, whilst most parts are paper based there is computer work which means manipulation of data from the paper and requires it to be inserted into the computer. My proposed solution would rid of all paper elements to manage the apartment and would introduce a piece of software specifically designed to manage the running of the apartment.


Current availability calendar for the apartment also records whether the customer has paid the deposit and the total balance.

Questionnaire intended to find out more information on the system. 


  1. Problem Definition

BROAD AIMS OF THE PROJECT

  • The general aim of my project is to create a more efficient system. I am to computerize the current paper based system by means of a piece of software. By more efficient I mean in terms of ease of access, usability, speed of use, organisation of data and reduced amount of operational error.
  • Create a system with the lowest possible cost for the client to implement.
  • Make the system clear and simple to use
  • To decrease the amount of time it takes to operate the additional system by replacing processes with automated functions and minimising user input to just using a keyboard and mouse.
  • To create a system which is centralized and where data records are located in the same area which require no physical room or handling.
  • To make the system require a minimum amount of effort, less than the current system requires. Therefore I the system will automate process’s that were done by hand by automating them, for example the organisation of data into files.
  • The system must be secure preventing unauthorised access.
  • To produce outputs for the user and also that can be presented to the clients customers.

POSSIBLE LIMITATIONS

  • The computer the program is installed on may not have a high enough specification. Will money have to be spent upgrading the computer?
  • Users may not know to use the system. The system relies on basic computer knowledge of the user however there could be exceptions if I create a system which is easy to use and includes a help file or will tuition have to be given?
  • Dates will differ slightly every year. Will the program be useable every year or will I have to allow time to update the date based process and calendar on the system?
  • Is the programming language sufficient enough to make such a program? Can either Pascal or Delphi be used to make the program. Delphi is a object based programming application so user interfaces will be easy to create. Pascal is a high-level language The main advantage of high-level languages over low-level languages is that they are easier to read, write, and maintain. Ultimately, programs written in a high-level language must be translated into machine language by a compiler or interpreter.
  • Will the user prefer the paper based system to the computerized system? This should not be the case if the system is delivered to their exact requirements.
  • Will it be easy enough to back up data files encase of a program failure which could result in the program being dropped for alternatives.

  1. Objectives

GENERAL OBJECTIVES

  • To perform the task that was done manually on the old system significantly faster.
  • The system will be able to organise input information and validate it to prevent input error and then save it to the relevant files.
  • It must be able to store the large amounts of data input into the system.
  • It must be able to display the contents of these files in appropriate ways according to the data that has been requested to be shown. It must be able to provide a printable output of this data if the user requires
  • After customer details have been input into the system it should be possible to search for a customer to find their contact information and the option of editing their details should be available.
  • The program has to be reliable. There will be no errors in the program due to coding which will could cause a fault within the program or make it crash causing lose of data. The system will have to be reliable in order for it to be effective otherwise the old system may be preferred by the user.
  • To eliminate the use of pen and paper
  • Reduce the risk of human error by using a well constructed computer application
  • The ability to quickly create outputs for customers at a touch of a button. Outputs will include invoices which can be created either in word processing formats to send as letters or as emails. Keyboard input should be minimal if not in existent.
  • To make available a calendar to the user that displays when the apartment is occupied and the cost of the week if available.
  • To be able to print availability so it is possible to have a hard copy of availability on paper encase the system cannot be used due to hardware error.
  • Easy to back-up and save data in a selected location.
  • As the new system will be installed on a computer accessible not only by the client but to others it will have to be fairly secure. I intend to password protect the program to stop unauthorised use.
  • Use a help file which can be accessed through the program and a paper based manual.

  1. Design


  1. Justification of the proposed solution

Justification for computerizing system

The main reason for justifying the computerization of the system is because of the manual way of working takes a long time and it was understood that it could be improved computerization. The client, however, did not have enough computer knowledge to produce an effective computer based system that would operate better than their manual system. Because of their lack of knowledge my client may have ended up spending more time using the computer based system and therefore deciding to continue using the manual system. Though they could not make a completely computer based system they introduced themselves into using Microsoft Word and email for contacting customers, both saved a lot of time and repetitive work. On this basis it seems justified for me to create them a fully functioning computer system eliminating the tedious manual work. There is noway of improving the speed of using the manual system unless staff were employed and this is not suitable considering the income of the business. Having a centralised system will also mean maintaining, updating and adding records to the system will be easier and faster. The fully computerized system would also mean that all parts of the system would be compatible with one another.

Possible software

To make my system it would be possible to use various pieces of software. There are 3 types of software that I could use.

Spreadsheet software

Spreadsheets are used for insertion and analyses of numerical data, they are good for creating charts and graphs to represent data input. It is possible to store alphabetic data, but you cannot really do much with it – usually used just for headings of columns and cells. A spreadsheet is limited to storing data but it is possible to use powerful formula to analyse the data. A range of diagrams can be generated from data, including column and bar graphs, line, pie and scatter graphs. For my system there is however, no need for graphs. Considering spreadsheet software is dedicated to numerical analysis I do not think that a spreadsheet would be a suitable solution for my system. Neither would it cater for the storage of records like customer details etc and it would not be as appealing as a GUI.

Word processing software

Advanced packages can contain features of the above system. Input of data by the user would be simple but the disadvantages severely outweigh the advantages. The user will have to operate the software with no clear guidance along the way. There is also noway of tailoring the program to the users needs so there will be unnecessary features and the GUI is crowded with items that are not relevant.

Programming

Another way to create the system would be to code a program myself and therefore it can be tailored to the users needs. There are different types of programming language,

Low-level language

A low level language is a language is a machine language or assembly language. Low-level languages are closer to the hardware then high-level languages which tend to be closer to the human language. Because it is a ‘low’ language it does not mean that it is inferior to ‘high’ level language. Low-level languages are more difficult to understand, however it does have some advantages. Commands are often extremely direct which generally means they are faster to complete because the program will be coded in such a way the computer can understand. When compiling a low level language it is also much faster because it is closely related to, and easily translated into machine language. Low-level languages lack the conveniences of a high-level language however it is usually possible to write more efficient code in them.

However, it would take a lot longer to code a program in low-level language and experience and skill would be required. All the code is in one procedure and therefore maintainability would be extremely difficult. Low-level languages are also dependent on hardware so if one program works on one type of computer it may not worker on one with a different hardware configuration. There are also high-level and fourth generation program languages which are easier to use as the programming is near English. A low-level language will not be suitable for me considering my experience and time available.

High-level language

The lack of portability in low-level languages is not a problem here – high-level language allows the programmer to ignore many details of the computers hardware. Essentially the program is closer to the English language and therefore is far easier to use, understand and learn. High-level Program languages include C or Pascal. The main advantage of high-level languages over low-level languages is that they are easier to read, write, and maintain. Ultimately, programs written in a high-level language must be translated into machine language by a compiler or interpreter on the computer. A compiler is also useful because it will not compile the program correctly if there are programming errors it will warn the user where these are which makes them easier to fix, this sort of feature is not available with a low-level language.

A language like Pascal will automatically generate machine code when it is compiled saving the programmer a lot of time and effort. A downside to Pascal though would be its graphical abilities and therefore high-level languages also include 4th generation programs which use similar high-level languages but also contain graphical functions to create GUI’s with.

Fourth-generation programs

        A typical fourth-generation program would be Delphi which is available to use at college. Delphi is an object orientated program which makes it possible to create graphical interfaces with. Each object can have its own code which will be execute when used. In addition to this procedures can also be used. Delphi creates a certain amount of code automatically, for example when you create a new object, this saves the programmer time and effort and the features of objects can be changed for customisability. Delphi requires minimal amount of coding and is very fast to produce programs with. Delphi is my preferred choice as I do not have much experience in coding and it has a good compiler with the addition of being able to make good looking interfaces.

Database software

It would be possible to create the system entirely in a piece of database software such as Microsoft Access. Data would be stored in specific tables, the addition and editing of data can be done through forms. Tables can be setup to have various different relationships which enables easy storage and access of data. Using a program like Access would mean that it would be fairly simple to produce report outputs for the client using built a built in feature like mail merge. Other features and advantages of using a database over the current system include,

  • Graphical analysis of statistics
  • Queries to find specific data in tables
  • A use of rules to control the storage and validation of data
  • Easy export and save of data in event of program failure
  • The ability to search and organise tables of data depending on the needs of the user

A database would be the next best alternative to creating a program in Delphi. However, it may be difficult to navigate around a database, the user would have to open Access then select a database and the navigation within can be confusing unless you are experienced with using the program. Access has the ability to store large amounts of information. It would also be extremely difficult for what I intend to do; to create a calendar which displays current occupants and gives the user the ability to add/edit data with the click of a button.


  1. Modes of Operation

Batch processing

Batch processing involves holding large volumes of data which is received from a system. The data received will be held in a transaction file until it can be processed. When the transaction file is processed they are usually done so in batches. When the batches are processed they are usually done at a time when the computer carrying out the processing is idle. This sort of method is very efficient when many transaction files have to be processed. If I were to use this method in my system the data that is processed in transaction files would be input with a keyboard through the computer. However, batch processing can also be used with ‘On-line’ processing and for example data can be stored in transaction files from items such as barcode readers. This process is often used at supermarkets when code controls have to be carried out and the data is processed during the night ready for the morning.

Join now!

A disadvantage of using batch processing is that you cannot see up to data information. Therefore this type of processing will not be suitable for my program because the user will require to see the data as soon as it has been inserted into the system.

Real time processing

This sort of processing means the computer has to keep up with data input from an external operation. It has to process data instantly and produce results that can be output immediately. Real-time processing can be further broken down into two subcategories.

Interactive – This is where more than ...

This is a preview of the whole essay