You are on page 1of 9

High Level Design

Flight Reservation Management System


Revision Number: 1.1

Last date of revision: 27/7/2022

By
Aisha A. Majeed
Akshaya K Salim
Ancy Rajan
Nithya Nepolean
Contents
1. Introduction
1.1. High Level Design
1.2. Scope
1.3. Definitions
1.4. Overview
2. General Description
2.1. Product Perspective
2.2. Tools used
2.3. General Constraints and assumptions
3. Design Details
3.1. Main Design Features
3.2. Application Architecture
3.3. Technology Architecture
3.3.1. Web Application Architecture
3.3.2. Presentation Layer
3.3.3. Data Access Layer
3.3.4. Tools Used
3.4. Standards
3.5. Database design
3.6. Files
3.7. User Interface
3.8. Error Handling
3.9. Interfaces
3.10. Help
3.11. Performance
3.12. Security
3.13. Reliability
3.14. Maintainability
3.15. Portability
3.16. Reusability
3.17. Application compatibility
3.18. Resource utilization
3.19. Major Classes

2
1. Introduction

1.1. High Level Design

The purpose of this High Level Design (HLD) Document is to add the necessary detail to the

current project description to represent a suitable model for coding. This document is also

intended to help detect contradictions prior to coding, and can be used as a reference

manual for how the modules interact at a high level.

1.2. Scope

The HLD documentation presents the structure of the system, such as the database

architecture, application architecture (layers), application flow (Navigation), and

technology architecture. The HLD uses non-technical to mildly-technical terms which

should be understandable to the administrators of the system.

1.3. Definitions

SQL - SQL (Structured Query Language) is used to perform operations on the records stored in the
database.

IDE - An integrated development environment is a software application that provides


comprehensive facilities to computer programmers for software development

HTML -  Hyper Text Markup Language, used to  for creating Web pages.

1.4. Overview

The HLD will:

• present all of the design aspects and define them in detail

• describe the user interface being implemented

• describe the software interfaces

3
• describe the performance requirements

• include design features and the architecture of the project

• list and describe the non-functional attributes like:

- Security
- Reliability
- Maintainability
- Portability
- Reusability

2. General Description

2.1. Product Perspective

The Flight Reservation System will be comprised of 2 different user interfaces. The language
implemented is Python. Pycharm IDE along with Django framework is used to build the project and
provide dependencies. The administrative and customer interfaces will be using HTML pages to
display the web pages, and SQL to retrieve, insert, delete, and update the database. Django is used
to persist data between Python object and relational database. The Django web framework
includes a default object-relational mapping layer (ORM) that can be used to interact with
application data from various relational databases such as SQLite. This setup will allow for multiple
users to login and interact with the application dynamically. SQLite is used to handle the relational
database of the entire system.

The first user interface is of the customer, which can create booking of flight. The second type of
user is the Administrator. They have the ability to manage flight details .

2.2. Tools used

• The front end of the application is designed by using HTML, CSS and Bootstrap. Interfacing
with the database to display information on the user’s web browser will be done using
HTML.
• Pycharm is used as IDE.

4
• The project will have a relational database backend that is SQL based. The actual software
used is SQLite3.
• Django is the framework used.
•  Django ORM queries can be used to manipulate the data.

2.3. General Constraints and assumptions

The web application requires to be loaded in the customer’s web browser. The administrators are
required to keep the table of the flight availability including the cost. The track of bookings made
by the customer is made. Customers will have the ability to view flight details and make bookings.
The admin login to access their respective role.

3. Design Details

3.1. Main Design Features

The main design features include the following major parts: the architecture, the user interface
design, and the database.

3.2. Application Architecture – Use case diagram

Customer

5
Admin

3.3.2. Presentation Layer

The administrators will have the access to view, add, edit and delete the flight details. Customers
will the ability to view the available flight, book flight and cancel the booked flight.

3.3.3. Data Access Layer

The flight database will be accessible to administrators. For the customers they can access their
own data from the database and ticket as well once booked. Admin login will determine access of
the admin to flight database.

6
3.5. Database design

3.6. Files

This application requires some of files. Django uses many flies for project creation. Database is
used to store all the details regarding flights, customers and tickets.

3.7. User Interface

The user interface is a very simple plain layout with very little graphics. It will display information
very clearly for the user and will primarily output information to the user through HTML pages.
Administrative screens are used mainly for input through text fields in HTML pages.

3.8. Error Handling

Should errors be encountered, an explanation will pop up as to what went wrong. An error will be
defined as anything that falls outside the intended usage.
3.9. Interfaces

There is are two in this application, the user (admin and customer) interface.

3.10. Help

Help will come in the form of all the documentation created prior to coding, which explain the
intended uses. Detailed instructions will be written on how to create and implement the system
with the intentions.

7
3.11. Performance

For everything to run smoothly, it should be able to update data on the database and refresh the
tables dynamically. The gateways will also need to supply requested pages to the users at a
reasonable speed. The database server will need to keep up with all database requests and
transactions.

3.12. Security

A username and password will be required to log into an admin interface. For now, there will also
be no log of failed attempts of an administrator logging in. Security is not considered as a priority
in current stage of project.

3.13. Reliability

The server will be kept running throughout, so that the pages are smoothly loaded and
transactions are processed.

3.14. Maintainability

There is very little or no maintenance required for this application.

3.15. Portability

Portability is possible to any system. For everything to work properly, all files should be compiled
from the source.
3.16. Reusability

The code written have the ability to be reused with no issues. The detailed instructions are written
on how to create this project, everything will be completely reusable and replicated.

3.17. Application compatibility

The components for this project will be using Python as an interface between them. So a system
with Python and Django compatibility will run this application. For the customer, Chrome or
Mozilla Firefox is recommended for the best user experience.

8
3.18. Resource utilization

Very few resources are required to run this application. System memory will be utilised to handle
the application and its database. An uninterrupted internet connection with high bandwidth is
required.

3.19. Major Classes

In this project, the major classes are as follows : Flight, Customer and Ticket . The relationships
between these major classes are:

• Admin can add, update delete and view Flight details


• A customer can book, view and cancel Ticket

You might also like