Professional Documents
Culture Documents
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
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
1.2. Scope
The HLD documentation presents the structure of the system, such as the database
1.3. Definitions
SQL - SQL (Structured Query Language) is used to perform operations on the records stored in the
database.
HTML - Hyper Text Markup Language, used to for creating Web pages.
1.4. Overview
3
• describe the performance requirements
- Security
- Reliability
- Maintainability
- Portability
- Reusability
2. General Description
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 .
• 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.
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
The main design features include the following major parts: the architecture, the user interface
design, and the database.
Customer
5
Admin
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.
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.
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.
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
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.
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.
In this project, the major classes are as follows : Flight, Customer and Ticket . The relationships
between these major classes are: