Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 54

D.A.

V PUBLIC SCHOOL
S.E.C.L KORBA (C.G)

A Project Report
on

HOTEL MANAGEMENT SYSTEM

[As a part of the Informatics Practices Course]

SUBMITTED BY
AKSHAT GUPTA
[Roll No…….]

Under the Guidance of:

MR.ONKAR SINGH RATHORE SIR


PGT (INFORMATICS PRACTICES)
CERTIFICATE

This is to certify that the Project / Dissertation entitled HOTEL Management System is a

bonafide work done by Master AKSHAT GUPTA of class XII Session2018-19 in fulfillment

of CBSE’s BOARD Examination 2019 and has been carried out under my direct supervision

and guidance. This report or a similar report on the topic has not been submitted for any

other examination and does not form a part of any other course undergone by the candidate.

………………………… ……………………………..
Signature of Student Signature of Teacher/Guide

Name: AKSHAT GUPTA Name: ONKAR SINGH RATHORE


Roll No.: …………………… Designation: PGT (IP)

……….…………………
Signature of Principal
Name: MR. H.K PATHAK SIR
Date: ……………..

(i)
CERTIFICATE

This is to certify that the Project / Dissertation entitled HOTEL Management System is a

bonafide work done by Devendra Uraon of class XII Session2018-19 in fulfillment of

CBSE’s BOARD Examination 2019 and has been carried out under my direct supervision

and guidance. This report or a similar report on the topic has not been submitted for any

other examination and does not form a part of any other course undergone by the candidate.

………………………… ……………………………..
Signature of Student Signature of Teacher/Guide

Name: Devendra Uraon Name: ONKAR SINGH RATHORE


Roll No.: …………………… Designation: PGT (IP)

……….…………………
Signature of Principal
Name: MR. H.K PATHAK SIR
Date: ……………..

(ii)
CERTIFICATE

This is to certify that the Project / Dissertation entitled HOTEL Management System is a

bonafide work done by Hitesh Rathia of class XII Session2018-19 in fulfillment of CBSE’s

BOARD Examination 2019 and has been carried out under my direct supervision and

guidance. This report or a similar report on the topic has not been submitted for any other

examination and does not form a part of any other course undergone by the candidate.

………………………… ……………………………..
Signature of Student Signature of Teacher/Guide

Name: Hitesh Rathia Name: ONKAR SINGH RATHORE


Roll No.: …………………… Designation: PGT (IP)

……….…………………
Signature of Principal
Name: MR. H.K PATHAK SIR
Date: ……………..

(iii)
ACKNOWLEDGEMENT

I
Akshat Gupta undertook this Project work, as the part of my XII-Informatics
Practices course. I had tried to apply my best of knowledge and experience, gained
during the study and class work experience. However, developing software system is
generally a quite complex and time-consuming process. It requires a systematic study,
insight vision and professional approach during the design and development. Moreover, the
developer always feels the need, the help and good wishes of the people near you, who have
considerable experience and idea.

I would like to extend my sincere thanks and gratitude to my teacher Mr.ONKAR SINGH
RATHORE SIR I am very much thankful to our Principal

Mr. H.K PATHAK for giving valuable time and moral support to develop this software.

I would like to take the opportunity to extend my sincere thanks and gratitude to my father
Mr. S.R GUPTA, and my mother Mrs. MEENA GUPTA for being a source of inspiration
and providing time and freedom to develop this software project.

I also feel indebted to my friends Devendra Uraon and Hitesh Rathia for the valuable
suggestions during the project work.

AKSHAT GUPTA
Class XII

(iv)
ACKNOWLEDGEMENT

I
Devendra Uraon undertook this Project work, as the part of my XII-Informatics
Practices course. I had tried to apply my best of knowledge and experience, gained
during the study and class work experience. However, developing software system is
generally a quite complex and time-consuming process. It requires a systematic study,
insight vision and professional approach during the design and development. Moreover, the
developer always feels the need, the help and good wishes of the people near you, who have
considerable experience and idea.

I would like to extend my sincere thanks and gratitude to my teacher Mr.ONKAR SINGH
RATHORE SIR I am very much thankful to our Principal

Mr. H.K PATHAK for giving valuable time and moral support to develop this software.

I would like to take the opportunity to extend my sincere thanks and gratitude to my father
Mr……….. , and my mother Mrs……………..for being a source of inspiration and
providing time and freedom to develop this software project.

I also feel indebted to my friends Akshat Gupta and Hitesh Rathia for the valuable
suggestions during the project work.

DEVENDRA URAON
Class XII

(v)
ACKNOWLEDGEMENT

I
Hitesh Rathia undertook this Project work, as the part of my XII-Informatics
Practices course. I had tried to apply my best of knowledge and experience, gained
during the study and class work experience. However, developing software system is
generally a quite complex and time-consuming process. It requires a systematic study,
insight vision and professional approach during the design and development. Moreover, the
developer always feels the need, the help and good wishes of the people near you, who have
considerable experience and idea.

I would like to extend my sincere thanks and gratitude to my teacher Mr.ONKAR SINGH
RATHORE SIR I am very much thankful to our Principal

Mr. H.K PATHAK for giving valuable time and moral support to develop this software.

I would like to take the opportunity to extend my sincere thanks and gratitude to my father
Mr. ………… , and my mother Mrs. ………… for being a source of inspiration and
providing time and freedom to develop this software project.

I also feel indebted to my friends Devendra Uraon and Hitesh Rathia for the valuable
suggestions during the project work.

Hitesh Rathia
Class XII

(vi)
CONTENTS…
1. Introduction------------------------------------------------------------------1

2. Objective & Scope of the Project-----------------------------------------2

3. Theoretical Background---------------------------------------------------4

4. System Implementation---------------------------------------------------16

4.1 The Hardware used:-----------------------------------------------------16

4.2 The Softwares used:-----------------------------------------------------16

5. Problem Definition & Analysis------------------------------------------22

5.1 Analysis (DFDs, ER Diagrams.)

6. System Design & Development------------------------------------------23

6.1 Database Design:--------------------------------------------------------24

6.2 Menu Design:------------------------------------------------------------34

6.3 I/O Forms Design & Event Coding:----------------------------------36

7. User Manual---------------------------------------------------------------150

7.1 How to install: ---------------------------------------------------------151

7.2 Working with Software:-----------------------------------------------152

8. References -----------------------------------------------------------------173

(vii)
1. INTRODUCTION…

This software project is developed to automate the functionalities of a Hotel.The purpose of

the software project is to develop the Management Information System (MIS) to automate

the record keeping of Staff, Number of rooms, Customers and Number of rooms booked and

receive transactions with a view to enhance the decision making of the functionaries.

A MIS mainly consists of a computerized database, a collection of inter-related tables for a

particular subject or purpose, capable to produce different reports relevant to the user. An

application program is tied with the database for easy access and interface to the database.

Using Application program or front-end, we can store, retrieve and manage all information

in proper way.

This software, being simple in design and working, does not require much of training to

users, and can be used as a powerful tool for automating a Hotel Management System.

During coding and design of the software Project, Java NetBeans IDE, a powerful front-end

tool is used for getting Graphical User Interface (GUI) based integrated platform and coding

simplicity. As a back-end a powerful, open source RDBMS, My SQL is used as per

requirement of the CBSE curriculum of Informatics Practices Course.


2. OBJECTIVES AND SCOPE OF THE PROJECT…

During the past several decades personnel function has been transformed from a relatively obscure record
keeping staff to central and top level management function. There are many factors that have influenced this
transformation like technological advances, professionalism, and general recognition of human beings as
most important resources.

• A computer based management system is designed to handle all the primary information required to
Calculate monthly statements. Separate database is maintained to handle all the details required for the
Correct statement calculation and generation.

• This project intends to introduce more user friendliness in the various activities such as record updation,
maintenance, and searching.

• The searching of record has been made quite simple as all the details of the customer can be obtained by
simply keying in the identification of that customer.

• Similarly, record maintenance and updation can also be accomplished by using the identification of the
customer with all the details being automatically generated. These details are also being promptly
automatically updated in the master file thus keeping the record absolutely up-to-date.

• The entire information has maintained in the database or Files and whoever wants to retrieve can’t retrieve,
only authorization user can retrieve the necessary information which can be easily be accessible from the
file.

• The main objective of the entire activity is to automate the process of day to day activities of Hotel like:
1. Room activities, 2. Admission of a New Customer,
3. Assign a room according to customer’s demand, 4. Checkout of a computer and releasing the room
5. Finally compute the bill etc. 6. Packages available.
7. Advance online bookings. 8. Online Cancellation.
9. List of Regular customers. 10. Email facility.
11. Feedbacks.

This project has some more features:


• System Connectivity
• No data duplication
• No Paper Work Required
• Time Efficient
• Cost Efficient
• Automatic data validation
• User friendly environment
• Data security and reliability
• Fast data insertion & retrieval
• Easy performance check.
3.THEORITICAL BACKGROUND

3.1 INTRODUCTION TO NETBEANS IDE …

ABOUT NETBEANS IDE..


NetBeans IDE is a free, open source, integrated development environment (IDE) that enables you to develop
desktop, mobile and web applications. The IDE supports application development in various languages,
including Java, HTML5, PHP and C++. The IDE provides integrated support for the complete development
cycle, from project creation through debugging, profiling and deployment. The IDE runs on Windows,
Linux, Mac OS X, and other UNIX-based systems.

The IDE provides comprehensive support for JDK 7 technologies and the most recent Java enhancements. It
is the first IDE that provides support for JDK 7, Java EE 7, and JavaFX 2. The IDE fully supports Java EE
using the latest standards for Java, XML, Web services, and SQL and fully supports the GlassFish Server,
the reference implementation of Java EE.

NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be


developed from a set of modular software components called modules. NetBeans runs on Microsoft
Windows, macOS, Linux and Solaris. In addition to Java development, it has extensions for other languages
like PHP, C, C++ and HTML5, Javadoc and Javascript. Applications based on NetBeans, including the
NetBeans IDE, can be extended by third party developers.
The NetBeans Team actively supports the product and seeks feature suggestions from the wider community.
Every release is preceded by a time for Community testing and feedback.

NetBeans started as a student project (originally called Xelfi) in the Czech Republic in 1996. The goal was
to write a Delphi-like Java IDE in Java. Xelfi was the first Java IDE (Integrated Development Environment)
written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since Java
IDE space was uncharted territory at that time. The project attracted enough interest that these students, once
they graduated, decided that they could market it as a commercial product. Soliciting resources from friends
and relatives for a web space, they formed a company around it.

Soon after, they were contacted by Roman Stanek, an entrepreneur who had already been involved in several
startups in the Czech Republic. He was looking for a good idea to invest in, and discovered Xelfi. He met
with the founders; they hit it off, and a business was born.

In the spring of 1999, NetBeans DeveloperX2 was released, supporting Swing. The performance
improvements that came in JDK 1.3, released in the fall of 1999, made NetBeans a viable choice for
development tools. By the summer of 1999, the team was hard at work re-architecting DeveloperX2 into the
more modular NetBeans that forms the basis of the software today.

Something else was afoot in the summer of 1999: Sun Microsystems wanted better Java development tools,
and had become interested in NetBeans. It was a dream come true for the NetBeans team: NetBeans would
become the flagship tool set of the maker of Java itself! By the Fall, with the next generation of NetBeans
Developer in beta, a deal was struck. Sun Microsystems had also acquired another tools company, During
the acqusition, the young developers who had been involved in open-source projects for most of their
programming careers, mentioned the idea of open-sourcing NetBeans. Fast forward to less than six months
later, the decision was made that NetBeans would be open sourced. While Sun had contributed considerable
amounts of code to open source projects over the years, this was Sun's first sponsored open source project,
one in which Sun would be paying for the site and handling the infrastructure.
History…
NetBeans began in 1996 as Xelfi (word play on Delphi), a Java IDE student project under the guidance of
the Faculty of Mathematics and Physics at Charles University in Prague. In 1997, Roman Staněk formed a
company around the project and produced commercial versions of the NetBeans IDE until it was bought
by Sun Microsystems in 1999. Sun open-sourced the NetBeans IDE in June of the following year . Since
then, the NetBeans community has continued to grow. In 2010, Sun (and thus NetBeans) was
acquired by Oracle Corporation. Under Oracle, NetBeans competed with JDeveloper, a freeware IDE that
has historically been a product of the company. In September 2016, Oracle submitted a proposal to donate
the NetBeans project to the Apache Software Foundation, stating that it was "opening up the NetBeans
governance model to give NetBeans constituents a greater voice in the project's direction and future success
through the upcoming release of Java 9 and NetBeans 9 and beyond". The move was endorsed by Java
creator James Gosling. The project entered the Apache Incubator in October 2016.

NetBeans IDE 6.0 introduced support for developing IDE modules and rich client applications based on the
NetBeans platform, a Java Swing GUI builder (formerly known as "Project Matisse"),
improved CVS support, WebLogic 9 and JBoss 4 support, and many editor enhancements. NetBeans 6 is
available in official repositories of major Linux distributionsNetBeans IDE 6.5, released in November 2008,
extended the existing Java EE features (including Java Persistence support, EJB 3 and JAX-WS).
Additionally, the NetBeans Enterprise Pack supports the development of Java EE 5 enterprise applications,
including SOA visual design tools, XML schema tools, web services orchestration (for BPEL),
and UML modeling. The NetBeans IDE Bundle for C/C++ supports C/C++ and FORTRAN development.
NetBeans IDE 6.8 is the first IDE to provide complete support of Java EE 6 and the GlassFish Enterprise
Server v3. Developers hosting their open-source projects on kenai.comadditionally benefit from instant
messaging and issue tracking integration and navigation right in the IDE, support for web application
development with PHP 5.3 and the Symfony framework, and improved code completion, layouts, hints and
navigation in JavaFX projects.
NetBeans IDE 6.9, released in June 2010, added support for OSGi, Spring Framework 3.0, Java EE
dependency injection (JSR-299), Zend Framework for PHP, and easier code navigation (such as "Is
Overridden/Implemented" annotations), formatting, hints, and refactoring across several languages.
NetBeans IDE 7.0 was released in April 2011. On August 1, 2011, the NetBeans Team released NetBeans
IDE 7.0.1, which has full support for the official release of the Java SE 7platform.
NetBeans IDE 7.3 was released in February 2013 which added support for HTML5 and web technologies.
NetBeans IDE 7.4 was released on October 15, 2013.
NetBeans IDE 8.0 was released on March 18, 2014.
NetBeans IDE 8.1 was released on November 4, 2015.
NetBeans IDE 8.2 was released on October 3, 2016.
Netbeans 9.0, which adds support for Java 9, is currently in development by the Apache Incubator project
NETBEANS PLATFORM
The NetBeans Platform is a framework for simplifying the development of Java Swing desktop applications.
The NetBeans IDE bundle for Java SE contains what is needed to start developing NetBeans plugins and
NetBeans Platform based applications; no additional SDK is required.
Applications can install modules dynamically. Any application can include the Update Center module to
allow users of the application to download digitally signed upgrades and new features directly into the
running application. Reinstalling an upgrade or a new release does not force users to download the entire
application again.
The platform offers reusable services common to desktop applications, allowing developers to focus on the
logic specific to their application. Among the features of the platform are:
 User interface management (e.g. menus and toolbars)
 User settings management
 Storage management (saving and loading any kind of data)
 Window management
 Wizard framework (supports step-by-step dialogs)
 NetBeans Visual Library
 Integrated development tools
A showcase of applications developed on top of NetBeans Platform is available
at https://netbeans.org/features/platform/showcase.html
NetBeans IDE...
NetBeans IDE is an open-source integrated development environment. NetBeans IDE supports
development of all Java application types (Java SE (including JavaFX), Java
ME, web, EJB and mobileapplications) out of the box. Among other features are an Ant-based project
system, Maven support, refactorings, version
control (supporting CVS, Subversion, Git, Mercurial and Clearcase).
Modularity: All the functions of the IDE are provided by modules. Each module provides a well-defined
function, such as support for the Java language, editing, or support for the CVS versioning system, and
SVN. NetBeans contains all the modules needed for Java development in a single download, allowing the
user to start working immediately. Modules also allow NetBeans to be extended. New features, such as
support for other programming languages, can be added by installing additional modules. For instance, Sun
Studio, Sun Java Studio Enterprise, and Sun Java Studio Creator from Sun Microsystems are all based on
the NetBeans IDE.
License: From July 2006 through 2007, NetBeans IDE was licensed under Sun's Common Development and
Distribution License (CDDL), a license based on the Mozilla Public License (MPL). In October 2007, Sun
announced that NetBeans would henceforth be offered under a dual license of the CDDL and
the GPL version 2 licenses, with the GPL linking exception for GNU Classpath .The NetBeans Community
blog has announced that Oracle is proposing to entrust the development of the NetBeans platform and IDE
to the Apache Foundation to “open up the government model,” reaffirming its commitment to the project.
NetBeans is currently submitted as a Proposal to Apache, and it will enter incubation if accepted.
Other Products…
In an October 2016 interview with Gabriela Motroc, Oracle Vice President Bill Pataky stated that Oracle has
a number of products that depend on NetBeans.

 Oracle Developer Studio, a commercial C, C++, Fortran and Java


development environment is 100% based on NetBeans
 Oracle JDeveloper, an end-to-end development for Oracle’s technology
stack takes major subsystems from NetBeans
 Oracle JavaScript Extension Toolkit, a modular, open source toolkit
based on modern JavaScript, CSS3 and HTML5 design and development principles uses NetBeans as its
preferred IDE.
Integrated Modules…
These modules are part of the NetBeans IDE.
NetBeans Profiler…
The NetBeans Profiler is a tool for the monitoring of Java applications: It helps developers find memory
leaks and optimize speed. Formerly downloaded separately, it is integrated into the core IDE since version
6.0. The Profiler is based on a Sun Laboratories research project that was named JFluid. That research
uncovered specific techniques that can be used to lower the overhead of profiling a Java application. One of
those techniques is dynamic bytecode instrumentation, which is particularly useful for profiling large Java
applications. Using dynamic bytecode instrumentation and additional algorithms, the NetBeans Profiler is
able to obtain runtime information on applications that are too large or complex for other profilers.
NetBeans also support Profiling Points that let you profile precise points of execution and measure
execution time.

NetBeans GUI Builder


GUI design tool…
Formerly known as project Matisse, the GUI design-tool enables developers to prototype and
design Swing GUIs by dragging and positioning GUI components.
The GUI builder has built-in support for JSR 295 (Beans Binding technology), but the support for JSR 296
(Swing Application Framework) was removed in 7.1.
NetBeans JavaScript editor…
The NetBeans JavaScript editor provides extended support for JavaScript, Ajax, and CSS.[19][20]
JavaScript editor features comprise syntax highlighting, refactoring, code completion for native objects and
functions, generation of JavaScript class skeletons, generation of Ajax callbacks from a template; and
automatic browser compatibility checks.
CSS editor features comprise code completion for styles names, quick navigation through the navigator
panel, displaying the CSS rule declaration in a List View and file structure in a Tree View, sorting the
outline view by name, type or declaration order (List & Tree), creating rule declarations (Tree only),
refactoring a part of a rule name (Tree only).
The NetBeans 7.4 and later uses the new [Nashorn] JavaScript engine developed by Oracle.
NetBeans IDE Download Bundle…
Users can choose to download NetBeans IDE bundles tailored to specific development needs. Users can also
download and install all other features at a later date directly through the NetBeans IDE.
NetBeans IDE Bundle for Web and Java EE…
The NetBeans IDE Bundle for Web & Java EE provides complete tools for all the latest Java EE 6
standards, including the new Java EE 6 Web Profile, Enterprise Java Beans (EJBs), servlets, Java
Persistence API, web services, and annotations. NetBeans also supports the JSF 2.0 (Facelets), JavaServer
Pages (JSP), Hibernate, Spring, and Struts frameworks, and the Java EE 5 and J2EE 1.4 platforms. It
includes GlassFish and Apache Tomcat. Some of its features with javaEE includes

 Improved support for CDI, REST services and Java Persistence


 New support for Bean Validation
 Support for JSF component libraries, including bundled PrimeFaces library
 Improved editing for Expression Language in JSF, including code completion, refactoring and hints
NetBeans IDE Bundle for PHP…
NetBeans supports PHP since version 6.5. The bundle for PHP includes:

 syntax highlighting, code completion, occurrence highlighting, error highlighting, CVS version
control
 semantic analysis with highlighting of parameters and unused local variables
 PHP code debugging with xdebug
 PHP Unit testing with PHPUnit and Selenium
 Code coverage
 Symfony framework support (since version 6.8)
 Zend Framework support (since version 6.9)
 Yii Framework support (since version 7.3)
 PHP 5.3 namespace and closure support (since version 6.8)
 Code Folding for Control Structures (since version 7.2 dev )
NetBeans IDE Complete Bundle…
Oracle also releases a version of NetBeans that includes all of the features of the above bundles. This bundle
includes:

 NetBeans Base IDE


 Java SE, JavaFX
 Web and Java EE
 Java ME
 C/C++
 PHP (Version 5.5 and later)
 Apache Groovy
 GlassFish
 Apache Tomcat
3.2INTRODUCTION TO MYSQL & DATABASE

What is Database?
Introduction and Concepts:
A database is a collection of information related to a particular subject or purpose, such as tracking customer
orders or maintaining a music collection. Using any RDBMS application software like MS SQL Server,
MySQL, Oracle, Sybase etc, you can manage all your information from a single database file. Within the
file, divide your data into separate storage containers called tables. You may and retrieve the data using
queries.
A table is a collection of data about a specific topic, such as products or suppliers. Using a separate table for
each topic means you can store that data only once, which makes your database more efficient and reduces
data-entry errors. Table organises data into columns (called fields) and rows (called records).
A Primary key is one or more fields whose value or values uniquely identify each record in a table. In a
relationship, a primary key is used to refer to specific record in one table from another table. A primary key
is called foreign key when it is referred to from another table.

To find and retrieve just the data that meets conditions you specify, including data from multiple tables,
create a query. A query can also update or delete multiple records at the same time, and perform built-in or
custom calculations on your data.

Role of RDBMS Application Program:


A computer database works as a electronic filing system, which has a large number of ways of cross-
referencing, and this allows the user many different ways in which to re-organize and retrieve data. A
database can handle business inventory, accounting and filing and use the information in its files to prepare
summaries, estimates and other reports. The management of data in a database system is done by means of a
general-purpose software package called a Database Management System (DBMS). Some commercially
available DBMS are MS SQL Server, MS ACCESS, INGRES, ORACLE, and Sybase. A database
management system, therefore, is a combination of hardware and software that can be used to set up and
monitor a database, and can manage the updating and retrieval of database that has been stored in it. Most of
the database management systems have the following capabilities:
 Creating of a table, addition, deletion, modification of records.
 Retrieving data collectively or selectively.
 The data stored can be sorted or indexed at the user's discretion and direction.
 Various reports can be produced from the system. These may be either standardized report or that
may be specifically generated according to specific user definition.
 Mathematical functions can be performed and the data stored in the database can be manipulated
with these functions to perform the desired calculations.
 To maintain data integrity and database use.

The DBMS interprets and processes users' requests to retrieve information from a database. In most cases, a
query request will have to penetrate several layers of software in the DBMS and operating system before the
physical database can be accessed. The DBMS responds to a query by invoking the appropriate
subprograms, each of which performs its special function to interpret the query, or to locate the desired data
in the database and present it in the desired order.

What is My SQL ?

The management of data in a database system is done by means of a general-purpose software package
called a Database Management System (DBMS). Some commercially available RDBMS are MS SQL
Server, MS ACCESS, INGRES, ORACLE, and Sybase.
MySQL, the most popular Open Source SQL database management system, is developed, distributed, and
supported by Oracle Corporation. MySQL is named after co-founder Monty Widenius's daughter, My. The
name of the MySQL Dolphin (our logo) is “Sakila.”
 MySQL is a database management system.
A database is a structured collection of data. It may be anything from a simple shopping list to a
picture gallery or the vast amounts of information in a corporate network. To add, access, and
process data stored in a computer database, you need a database management system such as
MySQL Server. Since computers are very good at handling large amounts of data, database
management systems play a central role in computing, as standalone utilities, or as parts of other
applications.
 MySQL is based on SQL.
A relational database stores data in separate tables rather than putting all the data in one big
storeroom. This adds speed and flexibility. The SQL part of “MySQL” stands for “Structured Query
Language.” SQL is the most common standardized language used to access databases and is defined
by the ANSI/ISO SQL Standard. The SQL standard has been evolving since 1986 and several
versions exist. In this manual, “SQL-92” refers to the standard released in 1992, “SQL:1999” refers
to the standard released in 1999, and “SQL:2003” refers to the current version of the standard.
 MySQL software is Open Source.
Open Source means that it is possible for anyone to use and modify the software. Anybody can
download the MySQL software from the Internet and use it without paying anything. If you wish,
you may study the source code and change it to suit your needs. The MySQL software uses the GPL
(GNU General Public License),
 The MySQL Database Server is very fast, reliable, and easy to use.
If that is what you are looking for, you should give it a try. MySQL Server also has a practical set of
features developed in close cooperation with our users. You can find a performance comparison of
MySQL Server with other database managers on our benchmark page. MySQL Server was originally
developed to handle large databases much faster than existing solutions and has been successfully
used in highly demanding production environments for several years. Although under constant
development, MySQL Server today offers a rich and useful set of functions. Its connectivity, speed,
and security make MySQL Server highly suited for accessing databases on the Internet.
 MySQL Server works in client/server or embedded systems.
The MySQL Database Software is a client/server system that consists of a multi-threaded SQL server
that supports different backends, several different client programs and libraries, administrative tools,
and a wide range of application programming interfaces (APIs).

The Main Features of MySQL


 Written in C and C++.
 Works on many different platforms.
 Uses multi-layered server design with independent modules.
 Provides transactional and nontransactional storage engines.
 Designed to make it relatively easy to add other storage engines. This is useful if you want to provide
an SQL interface for an in-house database.
 Uses a very fast thread-based memory allocation system.
 Executes very fast joins using an optimized nested-loop join.
 Implements SQL functions using a highly optimized class library that should be as fast as possible.
Usually there is no memory allocation at all after query initialization.
 Provides the server as a separate program for use in a client/server networked environment, and as a
library that can be embedded (linked) into standalone applications. Such applications can be used in
isolation or in environments where no network is available.
 Password security by encryption of all password traffic when you connect to a server.
 Support for large databases. We use MySQL Server with databases that contain 50 million records.
We also know of users who use MySQL Server with 200,000 tables and about 5,000,000,000 rows.
 MySQL client programs can be written in many languages. A client library written in C is available
for clients written in C or C++, or for any language that provides C bindings.
 APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl are available, enabling MySQL
clients to be written in many languages.
 The Connector/ODBC (MyODBC) interface provides MySQL support for client programs that use
ODBC (Open Database Connectivity) connections.
 The Connector/J interface provides MySQL support for Java client programs that use JDBC
connections. Clients can be run on Windows or Unix Connector/J source is available.
4.SYSTEM IMPLEMENTATION

4.1 The Hardware used:

While developing the system, the used hardware are:


PC with Pentium IV processor or sometimes, PC with Celeron (1.7 GHz) processor having 256 MB RAM,
SVGA and other required devices.

4.2 The Softwares used:


 Microsoft Windows® 10 as Operating System.

 Java NetBeans 8.0.1 as Front-end Development environment.

 MySQL as Back-end Sever with Database for Testing.

 MS-Word 2016 for documentation.


5. PROBLEM DEFINITION & ANALYSIS

The hardest part of building a software system is deciding precisely what to build. No other part of the
conceptual work is so difficult as establishing the detailed technical requirement. Defining and applying
good, complete requirements are hard to work, and success in this endeavor has eluded many of us. Yet, we
continue to make progress.
Problem definition describes the What of a system, not How. The quality of a software product is only as
good as the process that creates it. Problem definition is one of the most crucial steps in this creation
process. Without defining a problem, developers do not know what to build, customers do not know what to
expect, and there is no way to validate that the built system satisfies the requirement.
Problem definition and Analysis is the activity that encompasses learning about the problem to be solved,
understanding the needs of customer and users, trying to find out who the user really is, and understanding
all the constraints on the solution. It includes all activities related to the following:
 Identification and documentation of customer’s or user’s needs.
 Creation of a document that describes the external behavior and the association constraints that will
satisfies those needs.
 Analysis and validation of the requirements documents to ensure consistency, completeness, and
feasibility
 Evolution of needs.
After the analysis of the functioning of a Hotel Management System, the proposed System is expected to do
the following: -
 To provide a user friendly, Graphical User Interface (GUI) based integrated and centralized
environment for computerized Hotel Management System.
 The proposed system should maintain all the records and transactions and should generate the
required reports and information when required.
 To provide efficient and secured Information storage, flow and retrieval system, ensuring the
integrity and validity of records.
 To provide graphical and user-friendly interface to interact with a centralized database based on
client-server architecture.
 To identify the critical operation procedure and possibilities of simplification using modern IT tools
and practices.
5.1System Study & Analysis
PRINCIPLES OF SYSTEM ANALYSIS…
1. Understand the problem before you begin to create the analysis model.
2. Develop prototypes that enable a user to understand how human machine interaction will occur.
3. Record the origin of and the reason for every requirement.
4. Use multiple views of requirements like building data, function and behavioral models.
5. Work to eliminate ambiguity.
6.FLOW CHART (DFD, E-RD)
6.1 DATA FLOW DIAGRAM…
A Data Flow Diagram (DFD) is a graphical representation of the "flow" of data through an information system,
modelling its process aspects. A DFD is often used as a preliminary step to create an overview of the system
without going into great detail, which can later be elaborated. DFDs can also be used for
the visualisation of data processing (structured design).

A DFD shows what kind of information will be input to and output from the system, how the data will advance
through the system, and where the data will be stored. It does not show information about process timing or
whether processes will operate in sequence or in parallel, unlike a traditional structured flowchart which focuses
on control flow, or a UML activity workflow diagram, which presents both control and data flows as a unified
mode.
Data flow diagram serves two purposes:

1. To provide an indication of how data are transformed as they move through


the system.
2. To depict the functions that transformation the data flow.
Data Objects: A data object is a representation of almost any composite information that must be understood
by the software. By composite information, we mean something that has a number of different properties or
attributes. A data object encapsulates data only there is no reference within a data object to operations that
act on the data.

Attributes: Attributes define the properties of a data object and take on one of three different characteristics.
They can be used to: Name an instance of data object. Describe the instance. Make reference to another
instance in other table.

6.2 ENTITY RELATIONSHIP DIAGRAM (ERD)


Entity – Relationship Diagram: This depicts relationship between data objects. The attribute of each data
objects noted in the entity- relationship diagram can be described using a data object description.
6. SOFTWARES TESTING & ITS TYPES OF METHOD

6.1 Definition of Software Testing…


Software testing is an investigation conducted to provide stakeholders with information
about the quality of the software product or service under test.]Software testing can also
provide an objective, independent view of the software to allow the business to appreciate
and understand the risks of software implementation. Test techniques include the process of
executing a program or application with the intent of finding software bugs (errors or other
defects), and verifying that the software product is fit for use.
Software testing involves the execution of a software component or system component to
evaluate one or more properties of interest. In general, these properties indicate the extent to
which the component or system under test

 meets the requirements that guided its design and development,


 responds correctly to all kinds of inputs,
 performs its functions within an acceptable time,
 is sufficiently usable,
 can be installed and run in its intended environments and
 achieves the general result its stakeholders desire.
As the number of possible tests for even simple software components is practically infinite,
all software testing uses some strategy to select tests that are feasible for the available time
and resources. As a result, software testing typically (but not exclusively) attempts to execute
a program or application with the intent of finding software bugs (errors or other defects).
The job of testing is an iterative process as when one bug is fixed, it can illuminate other,
deeper bugs, or can even create new ones.
Software testing can provide objective, independent information about the quality of
software and risk of its failure to users or sponsors.
Software testing can be conducted as soon as executable software (even if partially
complete) exists. The overall approach to software development often determines when and
how testing is conducted. For example, in a phased process, most testing occurs after system
requirements have been defined and then implemented in testable programs. In contrast,
under an agile approach, requirements, programming, and testing are often done
concurrently.

Testing Methods…

Static vs. dynamic testing


There are many approaches available in software testing. Reviews, walkthroughs,
or inspections are referred to as static testing, whereas actually executing programmed code
with a given set of test casesis referred to as dynamic testing. Static testing is often implicit,
as proofreading, plus when programming tools/text editors check source code structure or
compilers (pre-compilers) check syntax and data flow as static program analysis. Dynamic
testing takes place when the program itself is run. Dynamic testing may begin before the
program is 100% complete in order to test particular sections of code and are applied to
discrete functions or modules. Typical techniques for this are either using stubs/drivers or
execution from a debugger environment.
Static testing involves verification, whereas dynamic testing also involves validation.
Together they help improve software quality. Among the techniques for static
analysis, mutation testing can be used to ensure the test cases will detect errors that are
introduced by mutating the source code.
The box approach[edit]
Software testing methods are traditionally divided into white- and black-box testing. These
two approaches are used to describe the point of view that the tester takes when designing
test cases.
White-box testing[edit]
Main article: White-box testing
White-box testing (also known as clear box testing, glass box testing, transparent box testing
and structural testing, by seeing the source code) tests internal structures or workings of a
program, as opposed to the functionality exposed to the end-user. In white-box testing, an
internal perspective of the system, as well as programming skills, are used to design test
cases. The tester chooses inputs to exercise paths through the code and determine the
appropriate outputs. This is analogous to testing nodes in a circuit, e.g. in-circuit
testing (ICT).
While white-box testing can be applied at the unit, integration and system levels of the
software testing process, it is usually done at the unit level. It can test paths within a unit,
paths between units during integration, and between subsystems during a system–level test.
Though this method of test design can uncover many errors or problems, it might not detect
unimplemented parts of the specification or missing requirements.
Techniques used in white-box testing include:

 API testing – testing of the application using public and private APIs (application


programming interfaces)
 Code coverage – creating tests to satisfy some criteria of code coverage (e.g., the test
designer can create tests to cause all statements in the program to be executed at least
once)
 Fault injection methods – intentionally introducing faults to gauge the efficacy of
testing strategies
 Mutation testing methods
 Static testing methods
Code coverage tools can evaluate the completeness of a test suite that was created with any
method, including black-box testing. This allows the software team to examine parts of a
system that are rarely tested and ensures that the most important function points have been
tested.[14] Code coverage as a software metric can be reported as a percentage for:

 Function coverage, which reports on functions executed


 Statement coverage, which reports on the number of lines executed to complete the
test
 Decision coverage, which reports on whether both the True and the False branch of
a given test has been executed
100% statement coverage ensures that all code paths or branches (in terms of control
flow) are executed at least once. This is helpful in ensuring correct functionality, but not
sufficient since the same code may process different inputs correctly or incorrectly.
Black-box testing[edit]
Main article: Black-box testing

Black box diagram


Black-box testing treats the software as a "black box", examining functionality without
any knowledge of internal implementation, without seeing the source code. The testers
are only aware of what the software is supposed to do, not how it does it.[15] Black-box
testing methods include: equivalence partitioning, boundary value analysis, all-pairs
testing, state transition tables, decision table testing, fuzz testing, model-based
testing, use case testing, exploratory testing, and specification-based testing.
Specification-based testing aims to test the functionality of software according to the
applicable requirements.[16] This level of testing usually requires thorough test cases to be
provided to the tester, who then can simply verify that for a given input, the output value
(or behavior), either "is" or "is not" the same as the expected value specified in the test
case. Test cases are built around specifications and requirements, i.e., what the
application is supposed to do. It uses external descriptions of the software, including
specifications, requirements, and designs to derive test cases. These tests can
be functionalor non-functional, though usually functional.
Specification-based testing may be necessary to assure correct functionality, but it is
insufficient to guard against complex or high-risk situations.
One advantage of the black box technique is that no programming knowledge is required.
Whatever biases the programmers may have had, the tester likely has a different set and
may emphasize different areas of functionality. On the other hand, black-box testing has
been said to be "like a walk in a dark labyrinth without a flashlight." Because they do not
examine the source code, there are situations when a tester writes many test cases to
check something that could have been tested by only one test case or leaves some parts of
the program untested.
This method of test can be applied to all levels of software
testing: unit, integration, system and acceptance. It typically comprises most if not all
testing at higher levels,but can also dominate unit testing as well.
Visual testing…
The aim of visual testing is to provide developers with the ability to examine what was
happening at the point of software failure by presenting the data in such a way that the
developer can easily find the information she or he requires, and the information is
expressed clearly.
At the core of visual testing is the idea that showing someone a problem (or a test
failure), rather than just describing it, greatly increases clarity and understanding. Visual
testing, therefore, requires the recording of the entire test process – capturing everything
that occurs on the test system in video format. Output videos are supplemented by real-
time tester input via picture-in-a-picture webcam and audio commentary from
microphones.
Visual testing provides a number of advantages. The quality of communication is
increased drastically because testers can show the problem (and the events leading up to
it) to the developer as opposed to just describing it and the need to replicate test failures
will cease to exist in many cases. The developer will have all the evidence he or she
requires of a test failure and can instead focus on the cause of the fault and how it should
be fixed.
Visual testing is particularly well-suited for environments that deploy agile methods in
their development of software since agile methods require greater communication
between testers and developers and collaboration within small teams.
Ad hoc testing and exploratory testing are important methodologies for checking
software integrity, because they require less preparation time to implement, while the
important bugs can be found quickly. In ad-hoc testing, where testing takes place in an
improvised, impromptu way, the ability of a test tool to visually record everything that
occurs on a system becomes very important in order to document the steps taken to
uncover the bug.
Visual testing is gathering recognition in customer acceptance and usability testing,
because the test can be used by many individuals involved in the development
process. For the customer, it becomes easy to provide detailed bug reports and feedback,
and for program users, visual testing can record user actions on screen, as well as their
voice and image, to provide a complete picture at the time of software failure for the
developers.
Grey-box testing…
Grey-box testing (American spelling: gray-box testing) involves having knowledge of
internal data structures and algorithms for purposes of designing tests while executing
those tests at the user, or black-box level. The tester is not required to have full access to
the software's source code. Manipulating input data and formatting output do not qualify
as grey-box, as the input and output are clearly outside of the "black box" that we are
calling the system under test. This distinction is particularly important when
conducting integration testing between two modules of code written by two different
developers, where only the interfaces are exposed for the test.
However, tests that require modifying a back-end data repository such as a database or a
log file does qualify as grey-box, as the user would not normally be able to change the
data repository in normal production operations. Grey-box testing may also
include reverse engineering to determine, for instance, boundary values or error
messages.
By knowing the underlying concepts of how the software works, the tester makes better-
informed testing choices while testing the software from outside. Typically, a grey-box
tester will be permitted to set up an isolated testing environment with activities such as
seeding a database. The tester can observe the state of the product being tested after
performing certain actions such as executing SQL statements against the database and
then executing queries to ensure that the expected changes have been reflected. Grey-box
testing implements intelligent test scenarios, based on limited information. This will
particularly apply to data type handling, exception handling, and so on.
6.SYSTEM DESIGN & DEVELOPMENT

6.1 Database Design:


An important aspect of system design is the design of data storage structure. To begin with a logical model
of data structure is developed first. A database is a container object which contains tables, queries, reports
and data validation policies enforcement rules or contraints etc. A logical data often represented as a records
are kept in different tables after reducing anomalies and redundancies. The goodness of data base design lies
in the table structure and its relationship.
This software project maintains a database named Library which contains the following tables.

Database Name: Hotel


Password used: pace
List of Tables:

Table Structure: Room

Table Structure: Booking


Table Structure: Type

Table Structure: Status1 … Status12 (12 tables for storing status of 12 rooms)

You might also like