0% found this document useful (0 votes)
17 views

Room Booking System

Uploaded by

Naveen Sampath
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Room Booking System

Uploaded by

Naveen Sampath
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 41

Room Booking System

A PROJECT REPORT
IN

COMPUTER SCIENCE FOR GRADE XII


(2024-2025)

Submitted in partial fulfillment of the requirement of CBSE, Delhi

Submitted By
Name here
(Enrolment No : )

UNDER THE GUIDANCE OF


Ms. S.EDITH PAULIN
(PGT COMPUTER SCIENCE)

1
CERTIFICATE OF COMPLETION

This is to certify that the project entitled “Room booking system”


submitted by Sudharsan in partial fulfillment of the requirement for the Central
Board of Secondary Education of Grade 12, GEMS New Millennium School is
done by him/her during the academic year 2024-2025, under my supervision
and guidance and this project or any part thereof has not been submitted
elsewhere for any classes.

Signature of Internal Guide


Ms. Edith Paulin. S

Date:

________________________________________________________________

Submitted for the project evaluation and viva voce held on ___________ 2025
at GEMS New Millennium School.

Signature of the External Examiner


Date:

2
ACKNOWLEDGEMENT

I take this opportunity to sincerely express


my gratitude to all who have helped me to
complete this
project file.
My sincere thanks to
Mrs. Fatima Martin,
our principal
for her constant support and encouragement
and
Ms. Edith Paulin,
our Grade XII Computer Science teacher,
whose help, guidance and advice
enabled me to complete this project file.

3
TABLE OF CONTENTS

S.No Particulars Page. No

1. Title of the project 5

2. Background of the project 6

3. Modules and their functions 8

4. Flow of Project 20

5. Use of Technology 27

6. Source Code and the output 30

7. Conclusion 43

8. Bibliography 45

4
TOPIC OF THE PROJECT
Effective Booking
System
2024-25

5
BACKGROUND OF THE
PROJECT

6
My project tackles the issue of inefficient
room booking at our school, where delays
often occurred due to the manual approval
process and communication with the school
manager. Recognizing the need for a
streamlined solution, we developed an SQL-
based room booking system. This system
allows users to view real-time room
availability and schedules, making it easier to
plan events and meetings. It also facilitates a
streamlined approval process by enabling the
school manager to grant or deny room
requests directly through the platform. This
solution aims to enhance efficiency, reduce
booking delays, and improve overall
management of school resources.

7
FUNCTIONS AND
MODULES

8
MODULES
import mysql.connecter:
By importing this package, we can
establish the connection between SQL and
Python.
import datetime:
This package provides basic functions for
display date related values in the
program.

import kivymd.app.MDApp:

By importing this class from KivyMD, we can


create a Material Design application using
Kivy. MDApp provides additional functionality
and widgets that adhere to the Material
Design guidelines.

import kivymd.uix.pickers.MDTimePicker:
This package provides a time picker widget
9
that allows users to select a time. It is used to
enhance the user experience by providing a
visually appealing and intuitive way to select
time values within the application.

import kivy.uix.label.Label:

This package provides a widget that displays


text in the application. Labels are used to
show static text or to display information that
doesn't need to be edited by the user.

import kivy.uix.textinput.TextInput:

This package provides a widget that allows


the user to enter text input. It is used to
collect text data from the user, such as
names, passwords, or any other textual
information.

import kivy.uix.button.Button:

10
This package provides a widget that
represents a clickable button in the
application. It is used to trigger actions when
the user interacts with the button.

import kivy.uix.boxlayout.BoxLayout:

This package provides a layout widget that


arranges its children in a vertical or horizontal
box. It is used to organize other widgets in a
single row or column.

import kivy.uix.gridlayout.GridLayout:

This package provides a layout widget that


arranges its children in a grid. It allows for
creating complex layouts by placing widgets
in rows and columns.

import
kivy.uix.screenmanager.ScreenManager:

This package provides a manager for handling

11
multiple screens in the application. It allows
for easy transitions between different
screens or views within the app.

import kivy.uix.screenmanager.Screen:

This package provides a widget that


represents a single screen or view in the
application. Screens are used to define
different parts of the application that can be
displayed independently.

import kivy.uix.spinner.Spinner:

This package provides a dropdown list widget


that allows users to select a value from a list
of options. It is used to provide a compact
and user-friendly way to choose between
multiple items.

import kivy.uix.popup.Popup:
This package provides a popup widget that
displays content in a modal window. Popups
12
are used to show additional information or to
request user input in a separate dialog.
import kivy.graphics.Color:
This package provides graphics instructions
for setting the color used in drawing
operations. It is used to define the color of
shapes, text, and other drawable elements in
the app.
import kivy.graphics.Rectangle:
This package provides graphics instruction for
drawing rectangles. It is used to create
rectangular shapes in the application’s user
interface.
import kivy.utils.get_color_from_hex:
This package provides a utility function to
convert a hexadecimal color string to an
RGBA color value. It is used to specify colors
in a format that is easy to understand and
consistent with web design.

13
FUNCTIONS
connect():
This function establishes a connection
between Python and MySQL.
cursor():
It is a special control structure that facilitates
the row-by-row processing of records in the
result set.
The syntax is:
<cursor object>=<connection object>.cursor()
execute():
This function is used to execute the SQL query
and retrieve records using python.
The syntax is:
<cursor object>.execute(<sql query string>)

14
fetchall():
This function will return all the rows from the
result set in the form of a tuple containing the
records.
commit():
This function provides changes in the database
physically.
len():
This function returns the number of
items in an object, such as the
number of rows in a tuple.
Syntax:
<number_of_items> = len(<object>)

str():
This function converts an object to its
string representation.
Syntax:
<string_representation> =
str(<object>)
15
add_widget():
This function adds a widget to a
parent layout in Kivy.
Syntax:
self.add_widget(<widget_instance>)
super().init():
This function initializes a parent class
in Python, allowing for inheritance
and method overriding.
Syntax:
super().__init__()
canvas.before.clear():
This function clears the canvas
instructions, typically before drawing
new elements in Kivy.
Syntax:
self.canvas.before.clear()
Color():
This function sets the color for
drawing in Kivy.
16
Syntax:
Color(<red>, <green>, <blue>,
<alpha>)
Rectangle():
This function draws a rectangle on the
canvas in Kivy.
Syntax:
Rectangle(pos=(<x>, <y>),
size=(<width>, <height>))
datetime.now():
This function returns the current local
date and time.
Syntax:
<current_datetime> = datetime.now()
strftime():
This function converts a datetime
object to a string format.
Syntax:
<formatted_date> =
<datetime_object>.strftime(<format>)
17
FLOW OF THE
PROJECT

18
1. Requirements Gathering
The initial phase of the project involved
consulting with the school manager to identify
the specific issues with the existing room
booking system. Key requirements included:
 A system to display real-time room
availability.
 A schedule view for planned events.
 An integrated approval process allowing
the school manager to review and approve
booking requests efficiently.
This stage was crucial for defining the scope and
functionality of the project.
2. System Design
Based on the gathered requirements, we
designed a robust system architecture:
 Database Management: SQL was chosen
for its efficiency in handling relational data.
The database design included tables for
rooms, bookings, and user information.
19
 User Interface: Kivy was selected for
developing the application interface. Kivy’s
support for multitouch and its rich set of
widgets were ideal for creating a user-
friendly experience across various devices.
We developed wireframes and detailed the
functionality required:
 Room Availability: Display current status
and schedule of rooms.
 Booking Requests: Allow users to submit
booking requests.
 Approval Workflow: Enable the school
manager to review and approve or deny
requests directly through the system.
3. Database Development
The SQL database was implemented to manage
and store critical data:
 Tables Created:
• Rooms Table: Stores room details
including room number, capacity, and
availability.
20
• Bookings Table: Tracks booking
requests, statuses, and associated
details.
• Users Table: Contains information
about users making booking requests
and the school manager.
The database schema was designed to support
efficient querying and ensure data integrity.
4. Interface Development
Using Kivy, we developed the application
interface:
 Room Availability Screen: Provides a real-
time view of available rooms and their
schedules.
 Booking Request Form: Allows users to
submit requests for room reservations.
 Admin Approval Panel: Allows the school
manager to review, approve, or deny
booking requests.

21
Kivy’s capabilities enabled us to create a
responsive and interactive interface that adapts
to different screen sizes and input methods.
5. Integration
We integrated the Kivy interface with the SQL
database to ensure seamless interaction:
 Real-Time Updates: The system provides
live updates on room availability and
booking status.
 Data Synchronization: Ensured that user
interactions with the interface are
accurately reflected in the database.
 Approval Process: Streamlined the
approval workflow by enabling direct
management of booking requests within
the application.
6. Testing
The testing phase involved:
 Functional Testing: Verified that all
features, such as room availability display,
22
booking requests, and approval processes,
worked as intended.
 User Testing: Gathered feedback from
actual users to ensure the interface was
intuitive and met their needs.
 Performance Testing: Assessed the
system’s performance to handle concurrent
users and data loads.
Testing was essential to identify and resolve any
issues before deployment.
7. Deployment and Feedback
After thorough testing, the system was deployed
for use. We continued to monitor its
performance and collected feedback from users
to make any necessary adjustments. The system
has significantly improved the efficiency of room
bookings, reducing delays and streamlining the
approval process.

23
USE OF
TECHNOLOGY

24
 WHAT IS MySQL?
MySQL is a relational DBMS that can run
virtually all platforms, including Linux, Unix
and Windows. Popular for web-based
applications and online publishing, MySQL is a
part of open-source enterprise stack LAMP
(Linux, Apache, MySQL, PHP).
MySQL is a freely available open-source
RDBMS that uses Structured Query
Language (SQL). It is downloadable from site
www.mysql.org MySQL is fast, reliable,
scalable alternative to many of the
commercial RDBMs available today. MySQL
provides you with a rich set of features that
support a secure environment for storing,
maintaining, and accessing data.
25
MySQL was created and supported by MySQL
AB, a company based in Sweden. This
company is now a subsidiary of Sun
Microsystems, which holds the copyright to
most of the codebase. On April 20th, 2009,
Oracle Corp., which develops and sells the
proprietary Oracle database, announced a
deal to acquire Sun Microsystems.
SQL provides many different types of
commands used for different purposes. SQL
commands can be divided into following
categories:
i. Data Definition Language (DDL)
ii. Data Manipulation Language (DML)
iii. Transaction Control Language (TCL)
iv. Session Control Commands
v. System Control Commands

26
 WHAT IS PYTHON?
Python is an interpreted, object-oriented,
high-level programming language with
dynamic semantics. Its high-level built in data
structures, combined with dynamic typing
and dynamic binding; make it very attractive
for Rapid Application Development, as well as
for use as a scripting or glue language to
connect existing components together.
Python's simple, easy to learn syntax
emphasizes readability and therefore reduces
the cost of program maintenance. Python
supports modules and packages, which
encourages program modularity and code
reuse. The Python interpreter and the
extensive standard library are available in
source or binary form without charge for all
27
Kivy, an open-source Python library for
developing multitouch applications. Kivy is
renowned for its versatility and ability to
create intuitive, interactive user interfaces
across various platforms, including Windows,
macOS, and mobile devices. It supports a
wide range of user interface elements and
gestures, which allowed us to design a user-
friendly room booking system with ease.
Kivy’s flexibility and rich set of widgets
enabled us to build a responsive application
that efficiently displays room availability,
schedules, and manages approvals. Its cross-
platform capabilities ensure that our solution
can be used seamlessly across different
devices and operating systems.
28
HARDWARE AND SOFTWARE
USED
SYSTEM:
OS- Windows 11 Professional 64-Bit
Language: English

System Manufacture-Gigabyte Technology


Co., Ltd
Processor: - Intel (R) Core ™ i5-12th gen
CPU @3.90 GHz (4CPUs), ~4.5GHz
Memory: 8 GB RAM
DirectX Version: Direct
XII Python: Python 3.2
MY SQL: MySQL
Workbench 8.20

29
SOURCE CODE AND
THE OUTPUT

30
31
32
33
34
35
36
37
CONCLUSION
38
This project involved developing a room booking
application using Kivy, allowing users to securely
log in and book rooms based on real-time
availability. The system significantly improves
efficiency by automating the process of
managing room bookings and implementing
role-based navigation for both users and admins.
During the development, I gained valuable skills
in Python application development, particularly
in handling database integration, user
authentication, and crafting intuitive user
interfaces. The project required approximately
39
60 hours of combined focused effort, dedicated
to coding, testing, debugging, and ensuring the
system's functionality. In the future, this booking
system could be implemented in schools or
educational institutions to streamline the
scheduling of classrooms and facilities, reducing
manual administrative work. It could also be
enhanced with features like real-time booking
notifications, cloud-based data storage for cross-
device access, and more complex user roles
tailored to different stakeholders, such as
students, teachers, and administrators.

40
BIBLIOGRAPHY
1) CLASS 12 NCERT COMPUTER SCIENCE
https://ncert.nic.in/textbook.php?lecs1=0-13

2) CLASS 12 PREETI ARORA

3) KIYI DOCUMENTATION
https://kivy.org/doc/stable/

4) PYTHON DOCUMENTATION
https://docs.python.org/3/

41

You might also like