Vicky
Vicky
A Project Work submitted in partial fulfillment of the requirements for the degree of
To the
VIGNESH.T
(Reg.No.C21UG197CSC039)
NALLANUR, DHARMAPURI-636809
MARCH - 2024
Mr. P.MUNIYAPPAN., M.Sc.,MPhil.,
Assistant Professor,
CERTIFICATE
This is to certify that the project entitled “FILE SHARING MANAGEMENT SYSTEM”
submitted to the Periyar University, Salem-11 in partial fulfillment of the requirements for the
award of the Degree of Master of Computer science is a record of original research work done by
M.MOHANKUMAR (Reg.No.C22PG197CSC006) during 2023-2024 of his study in the PG
Department of Computer science, Jayam Arts And Science College, Nallanur, Dharmapuri, under
my supervision and guidance and the project has not formed the basis for the award of any
Degree/Diploma/Associate ship/Fellowship or similar title to any candidate of any University.
I hereby declare that the dissertation entitled “FILE SHARING MANAGEMENT SYSTEM”
submitted to the Periyar University, Salem-11 in partial fulfillment of the requirements for the
award of the degree of Master of Computer science is a record of original research work done
by me under the supervision and guidance of Mr.P.MUNIYAPPAN., M.Sc.,MPhil., Assistant
Professor of Computer science, Jayam Arts and Science College, Nallanur, Dharmapuri and it
has not formed the basis for the award of any Degree/ Diploma/ Associate ship/ Fellowship or
similar title to any candidate of any University.
Date: (M.MOHANKUMAR)
ACKNOWLEDGEMENT
I thank the almighty for showering his choicest blessings in each step of my career.
I wish to express my sincere thanks to the Management of JAYAM ARTS AND SCIENCE COLLEGE
(M.MOHANKUMAR)
ABSTRACT
The purpose of the project entitled as "HOTEL MANAGEMENT SYSTEM" is to take hotel
management online in a very simple way in the form of software which is user friendly, simple,
fast, and cost- effective. It deals with the collection of room's information, customer's details, etc.
Traditionally, it was done manually. The main function of the system is to register customers for
rooms and store room's details i.e. room is vacant or occupied etc. and to retrieve these details as
and when required, and also to manipulate these details meaningfully. System input contains
rooom's details, customer's details, while system output is to get these details on to the screen. It
is accessible either by an administrator or receptionist. Only they can add data into the database.
The data can be retrieved easily. The data is managed properly and in a very efficient way.
CHAPTER CONTENTS PAGE.NO
INTRODUCTION
2 2.1 Introduction
2.2 Hardware requirements
2.3 Software specification
ANAYSIS
4 4.1 Introduction
4.2 Sample code
DESIGN
6 6.1 Introduction
6.2 Testing method
7 SAMPLE SCREENSHOTS
8 CONCLUSION
9 BIBLIOGRAPHY
1.1 INTRODUCTION:
The information is very difficult to retrieve and to find particular information like-
E.g. - To find out about the room’s history, the user has to go through various
registers. This results in inconvenience and wastage of time.
The information generated by various transactions takes time and effort to be stored at the right
place.
Various changes to information like room’s details or customers are difficult to make
as paperwork isinvolved.
Traditional calculations are error prone and take a lot of time this may result in
incorrect information. For example, calculation of a room's bills.
This becomes a difficult task as information is difficult to collect from various registers.
Objective: -
1) Define hotel
2) Recording information about the customers that come.
3) Generating bills.
4) Recording information related to rooms given to customers.
5) Keeping record of the current status of rooms.
These are the various jobs that need to be done in a hotel by the operational staff.
Traditionally, all these works are done on paper.
Scope of the Project: -
All this work is done manually by the receptionist and other operational staff and a
lot of papers areneeded to be handled and taken care of.
1.3 MODULES:
❖ Customer module
❖ Room module
Customer module:
1. Basically there are two things that the user is supposed to do i.e. check in and check out.
2. Check in means a user is assigned a room.
3. Check out means the user vacates the room.
1. Below is check in UI.
5.) Below is check out UI.
1.3.2 Room module:
HARDWARE REQUIREMENTS:
The most common set of requirements defined by any operating system or software
application is the physical computer resources, also known as hardware. A hardware
requirements list is often accompanied by a hardware compatibility list (HCL),
especially in case of operating systems. An HCL lists tested, compatibility and
sometimes incompatible hardware devices for a particular operating system or
application. The following subsections discuss the various aspects of hardware
requirements.
Memory: 1 GB RAM.
Front-End - Python
Back-End – Python
ANALYSIS
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 formwithout charge for all major platforms, and can be freely distributed.
Python is an open-source general-purpose interpreted programming language
available for themost popular operating systems.
The current versions are 3.x while 2.x is no longer supported, since 2020. This book
describes primarily the unsupported version 2 (while often the same code works in
version 3), but does at times reference changes in version 3.
There are a few implementations for Python 3 (and older): the standard
implementation written in C, and PyPy, a JIT-compiled version written in RPython - a
subset of Python. For Python 2 only there are Python written in Java and IronPython
written in C# for the .NET environment.
Tkinter:
The tkinter package (“Tk interface”) is the standard Python interface to the Tcl/Tk
GUI toolkit. Both Tk and tkinter are available on most Unix platforms, including
macOS, as well ason Windows systems.
Running python -m tkinter from the command line should open a window
demonstrating a simple Tk interface, letting you know that tkinter is properly
installed on your system, and also showing what version of Tcl/Tk is installed, so you
can read the Tcl/Tk documentation specific to that version.
Tkinter supports a range of Tcl/Tk versions, built either with or without thread
support. The official Python binary release bundles Tcl/Tk 8.6 threaded. See the
source code for the kinter module for more information about supported versions.
Tkinter is not a thin wrapper, but adds a fair amount of its own logic to make the
experience more pythonic. This documentation will concentrate on these additions
and changes, and refer tothe official Tcl/Tk documentation for details unchanged.
SQLite :
SQLite is a software library that implements a self-contained, serverless, zero-
configuration, transactional SQL database engine. SQLite is one of the fastest-
growing database engines around, but that's growth in terms of popularity, not
anything to do with its size. The source codefor SQLite is in the public domain.
SQLite is an in-process library that implements a self-contained, serverless, zero-
configuration, transactional SQL database engine. It is a database, which is zero-
configured, which means like other databases you do not need to configure it in your
system.
SQLite engine is not a standalone process like other databases, you can link it
statically or dynamically as per your requirement with your application. SQLite
accesses its storage filesdirectly.
SQLite does not require a separate server process or system to operate (serverless).
SQLite comes with zero-configuration, which means no setup or administration needed.
A complete SQLite database is stored in a single cross-platform disk file.
CONNECTIVITY:
Clients can connect to SQLite database using several protocols:
On UNIX systems, clients can connect using Unix domain socket files.
Following code section is us
conn =
sqlite3.connect('Hotel.db')
with conn:
cursor = conn.cursor()
cursor.execute(
'CREATE TABLE IF NOT EXISTS Hotel (Fullname TEXT,Address TEXT,mobile_number
TEXT,number_days TEXT,'
'room_number NUMBER)')
conn.commit()
LOCALIZATION:
The server can provide error messages to clients in many languages.
All data is saved in the chosen character set.
SYSTEM IMPLEMENTATION
4. IMPLEMENTATION:
4.1 Introduction:
Implementation is the stage of the project when the theoretical design is turned out into a working
system. Thus, it can be considered to be the most critical stage in achieving a successful new system and
in giving the user confidence that the new system will work and be effective.
The implementation stage involves careful planning, investigation of the existing system and
its constraints on implementation, designing of methods to achieve changeover and
evaluation of changeover methods.
def __init__(self,rt='',s=0,p=0,r=0,t=0,a=1800,name='',address='',cindate='',coutdate='',rno=101):
self.rt=rt
self.r=r
self.t=t
self.p=p
self.s=s
self.a=a
self.name=name
self.address=address
self.cindate=cindate
self.coutdate=coutdate
self.rno=rno
definputdata(self):
defroomrent(self):#sel1353
if(x==1):
self.s=6000*n
elif (x==2):
self.s=5000*n
elif (x==3):
self.s=4000*n
elif (x==4):
self.s=3000*n
else:
defrestaurentbill(self):
print("*****RESTAURANT MENU*****")
print("1.water----->Rs20","2.tea----->Rs10","3.breakfast combo--->Rs90","4.lunch---->Rs110","5.dinner---
>Rs150","6.Exit")
while (1):
if (c==1):
self.r=self.r+20*d
elif (c==2):
self.r=self.r+10*d
elif (c==3):
d=int(input("Enter the quantity:"))
self.r=self.r+90*d
elif (c==4):
self.r=self.r+110*d
elif (c==5):
self.r=self.r+150*d
elif (c==6):
break;
else:
print("Invalid option")
def laundrybill(self):
print ("1.Shorts----->Rs3","2.Trousers----->Rs4","3.Shirt--->Rs5","4.Jeans---->Rs6","5.Girlsuit--->Rs8","6.Exit")
while (1):
if (e==1):
self.t=self.t+3*f
elif (e==2):
self.t=self.t+4*f
elif (e==3):
self.t=self.t+5*f
elif (e==4):
self.t=self.t+6*f
elif (e==5):
self.t=self.t+8*f
elif (e==6):
break;
else:
print ("Invalid option")
defgamebill(self):
while (1):
if (g==1):
h=int(input("No. of hours:"))
self.p=self.p+60*h
elif (g==2):
h=int(input("No. of hours:"))
self.p=self.p+80*h
elif (g==3):
h=int(input("No. of hours:"))
self.p=self.p+70*h
elif (g==4):
h=int(input("No. of hours:"))
self.p=self.p+90*h
elif (g==5):
h=int(input("No. of hours:"))
self.p=self.p+50*h
elif (g==6):
break;
else:
def display(self):
print ("******HOTEL BILL******")
self.rt=self.s+self.t+self.p+self.r
self.rno+=1
def main():
a=hotelfarecal()
while (1):
print("1.Enter Customer Data")
print("2.Calculate rommrent")
print("5.Calculate gamebill")
print("7.EXIT")
if (b==1):
a.inputdata()
if (b==2):
a.roomrent()
if (b==3):
a.restaurentbill()
if (b==4):
a.laundrybill()
if (b==5):
a.gamebill()
S if (b==6):
a.display()
if (b==7):
quit()
import random
import datetime
name = []
phno = []
add = []
checkin = []
checkout = []
room = []
price = []
rc = []
p = []
roomno = []
custid = []
day = []
i=0
# Home Function
def Home():
print("\t\t\t 1 Booking\n")
print("\t\t\t 4 Payment\n")
print("\t\t\t 5 Record\n")
print("\t\t\t 0 Exit\n")
ch=int(input("->"))
if ch == 1:
print(" ")
Booking()
elif ch == 2:
print(" ")
Rooms_Info()
elif ch == 3:
print(" ")
restaurant()
elif ch == 4:
print(" ")
Payment()
elif ch == 5:
print(" ")
Record()
else:
exit()
# Function used in booking
def date(c):
pass
elif c[0]<29:
pass
else:
print("Invalid date\n")
name.pop(i)
phno.pop(i)
add.pop(i)
checkin.pop(i)
checkout.pop(i)
Booking()
# if month is odd & less than equal
# to 7th month
pass
elif c[1] <= 7 and c[1]%2 == 0 and c[0] <= 30 and c[1] != 2:
pass
# to 8th month
pass
# to 8th month
pass
else:
print("Invalid date\n")
name.pop(i)
phno.pop(i)
add.pop(i)
checkin.pop(i)
checkout.pop(i)
Booking()
else:
print("Invalid date\n")
name.pop(i)
phno.pop(i)
add.pop(i)
checkin.pop(i)
checkout.pop(i)
Booking()
else:
print("Invalid date\n")
name.pop(i)
phno.pop(i)
add.pop(i)
checkin.pop(i)
checkout.pop(i)
Booking()
# Booking function
def Booking():
global i
print(" ")
while 1:
n = str(input("Name: "))
a = str(input("Address: "))
name.append(n)
add.append(a)
break
else:
cii=str(input("Check-In: "))
checkin.append(cii)
cii=cii.split('/')
ci=cii
ci[0]=int(ci[0])
ci[1]=int(ci[1])
ci[2]=int(ci[2])
date(ci)
coo=str(input("Check-Out: "))
checkout.append(coo)
coo=coo.split('/')
co=coo
co[0]=int(co[0])
co[1]=int(co[1])
co[2]=int(co[2])
# check-in date
name.pop(i)
add.pop(i)
checkin.pop(i)
checkout.pop(i)
Booking()
name.pop(i)
add.pop(i)
checkin.pop(i)
checkout.pop(i)
Booking()
else:
pass
date(co)
d1 = datetime.datetime(ci[2],ci[1],ci[0])
d2 = datetime.datetime(co[2],co[1],co[0])
d = (d2-d1).days
day.append(d)
ch=int(input("->"))
if ch==0:
ch=int(input("->"))
if ch==1:
room.append('Standard Non-AC')
price.append(3500)
print("Price- 3500")
elif ch==2:
room.append('Standard AC')
price.append(4000)
print("Price- 4000")
elif ch==3:
room.append('3-Bed Non-AC')
price.append(4500)
print("Price- 4500")
elif ch==4:
room.append('3-Bed AC')
print("Price- 5000")
else:
# id for customer
rn = random.randrange(40)+300
cid = random.randrange(40)+10
rn = random.randrange(60)+300
cid = random.randrange(60)+10
rc.append(0)
p.append(0)
if p1 not in phno:
phno.append(p1)
elif p1 in phno:
for n in range(0,i):
if p1== phno[n]:
if p[n]==1:
phno.append(p1)
elif p1 in phno:
for n in range(0,i):
if p1== phno[n]:
if p[n]==0:
name.pop(i)
add.pop(i)
checkin.pop(i)
checkout.pop(i)
Booking()
print("")
print("Customer Id - ",cid)
roomno.append(rn)
custid.append(cid)
i=i+1
n=int(input("0-BACK\n ->"))
if n==0:
Home()
else:
exit()
# ROOMS INFO
def Rooms_Info():
print("")
print("STANDARD NON-AC")
print("---------------------------------------------------------------")
print("STANDARD NON-AC")
print("---------------------------------------------------------------")
print("3-Bed NON-AC")
print("---------------------------------------------------------------")
print("Side table, Balcony with an Accent table with 2 Chair and an")
print("3-Bed AC")
print("---------------------------------------------------------------")
print("1 Side table, Balcony with an Accent table with 2 Chair and an")
print()
n=int(input("0-BACK\n ->"))
if n==0:
Home()
else:
exit()
# RESTAURANT FUNCTION
def restaurant():
global i
f=0
r=0
for n in range(0,i):
f=1
print("-------------------------------------------------------------------------")
print("-------------------------------------------------------------------------")
print("-------------------------------------------------------------------------")
print(" --------------------
--------------")
print(" 37 Plain
Dosa............. 100.00")
ch=1
while(ch!=0):
rs=20
r=r+rs
rs=25
r=r+rs
rs=30
r=r+rs
rs=50
r=r+rs
rs=70
r=r+rs
rs=110
r=r+rs
rs=120
r=r+rs
rs=140
r=r+rs
rs=150
r=r+rs
rs=15
r=r+rs
rs=90
r=r+rs
elif ch==37:
rs=100
r=r+rs
rs=130
r=r+rs
elif ch<=46 and ch>=43:
rs=60
r=r+rs
elif ch==0:
pass
else:
print("Wrong Choice..!!")
r=r+rc.pop(n)
rc.append(r)
else:
pass
if f == 0:
n=int(input("0-BACK\n ->"))
if n==0:
Home()
else:
exit()
# PAYMENT FUNCTION
def Payment():
global i
f=0
for n in range(0,i):
if ph==phno[n] :
# checks if payment is
if p[n]==0:
f=1
print(" Payment")
print(" --------------------------------")
print(" 2- Paytm/PhonePe")
print(" 4- Cash")
x=int(input("-> "))
print(" (y/n)")
ch=str(input("->"))
if ch=='y' or ch=='Y':
print("\n\n --------------------------------")
print(" --------------------------------")
print(" Bill")
print(" --------------------------------")
print(" --------------------------------")
print(" --------------------------------")
print(" --------------------------------\n")
p.pop(n)
p.insert(n,1)
roomno.pop(n)
custid.pop(n)
roomno.insert(n,0)
custid.insert(n,0)
else:
for j in range(n+1,i):
if ph==phno[j] :
if p[j]==0:
pass
else:
f=1
if f==0:
n = int(input("0-BACK\n ->"))
if n == 0:
Home()
else:
exit()
# RECORD FUNCTION
def Record():
# checks if any record exists or not
if phno!=[]:
print("| Name | Phone No. | Address | Check-In | Check-Out | Room Type | Price |")
print("----------------------------------------------------------------------------------------------------------------------
")
for n in range(0,i):
print("|",name[n],"\t
|",phno[n],"\t|",add[n],"\t|",checkin[n],"\t|",checkout[n],"\t|",room[n],"\t|",price[n])
print("----------------------------------------------------------------------------------------------------------------------
")
else:
n = int(input("0-BACK\n ->"))
if n == 0:
Home()
else:
exit()
DESIGN
5.1 SYSTEM DESIGN:
5.1.1 INTRODUCTION TO UML:
UML Design
The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
and documenting the software system and its components. It is a graphical language, which provides a
vocabulary and set of semantics and rules. The UML focuses on the conceptual and physical
representation of the system. It captures the decisions and understandings about systems that must be
constructed. It is used to understand, design, configure, maintain, and control information about the
systems.
Specifying
Specifying means building models that are precise, unambiguous and complete UML
addresses the specification of all the important analysis design, implementation decisions
thatmust be made in developing and deploying a software system.
Constructing
UML models can be directly connected to a variety of programming language through
mapping a model from UML to a programming language like JAVA or C++ or VB. Forward
Engineering and Reverse Engineering is possible through UML.
Documenting
The Deliverables of a project apart from coding are some Artifacts, which are critical in
controlling, measuring and communicating about a system during its developing
requirements, architecture, desire, source code, project plans, tests, prototypes, releases, etc...
5.1 UML Approach
UML Diagram
A diagram is the graphical presentation of a set of elements, most often rendered as a connected graph of
vertices and arcs. you draw a diagram to visualize a system from a different perspective, so a diagram is a
projection into a system. For all but most trivial systems, a diagram represents an elided view of the elements
that make up a system. The same element may appear in all diagrams, only a few diagrams, or in no diagrams at
all. In theory, a diagram may contain any combination of things and relationships. In practice,however, a small
number of common combinations arise, which are consistent with the five most useful views that comprise the
architecture of a software-intensive system.
Use case diagrams are formally included in two modeling languages defined by the OMG:
ER Diagram
TESTING
6.1 INTRODUCTION TO SYSTEM TESTING:
The purpose of testing is to discover errors. Testing is the process of trying to discover every
conceivable fault or weakness in a work product. It provides a way to check the functionality
of components, sub-assemblies, assemblies and/or a finished product It is the process of
exercising software with the intent of ensuring that the Software system meets its
requirements and user expectations and does not fail in an unacceptable manner. There are
various types of tests. Each test type addresses a specific testing requirement.
Unit testing:
Unit testing involves the design of test cases that validate that the internal program logic is
functioning properly, and that program inputs produce valid outputs. All decision branches
and internal code flow should be validated. It is the testing of individual software units of
the application.
It is done after the completion of an individual unit before integration. This is a structural
testing that relies on knowledge of its construction and is invasive. Unit tests perform basic
tests at component level and test a specific business process, application, and/or system
configuration. Unit tests ensure that each unique path of a business process performs
accurately to the documented specifications and contains clearly defined inputs and expected
results.
Integration testing:
Integration tests are designed to test integrated software components to determine if they
actually run as one program. Integration tests demonstrate that although the components
were individually satisfactory, as shown by successfully unit testing, the combination of
components is correct and consistent. Integration testing is specifically aimed at exposing
the problems that arise from the combination of components.
Functional test:
Functional tests provide systematic demonstrations that functions tested are available as
specified by the business and technical requirements, system documentation, and user
manuals.
accepted.
rejected.
exercised.
invoked.
System Test:
System testing ensures that the entire integrated software system meets requirements. It tests a
configuration to ensure known and predictable results. An example of system testing is the
configuration oriented system integration test. System testing is based on process
descriptions and flows, emphasizing pre-driven process links and integration points.
Black Box Testing is testing the software without any knowledge of the inner workings,
structure or language of the module being tested. Black box tests, as most other kinds of
tests, must be written from a definitive source document, such as specification or
requirements document, such as specification or requirements document. It is a test in which
the software under test is treated as a black box. you cannot “see” into it. The test provides
inputs and responds to outputs without considering how the software works.
Unit Testing:
Unit testing is usually conducted as part of a combined code and unit test phase of the
software lifecycle, although it is not uncommon for coding and unit testing to be conducted
as two distinct phases.
Test objectives
Features to be tested
Integration Testing:
Software integration testing is the incremental integration testing of two or more integrated
software components on a single platform to produce failures caused by interface defects.
The task of the integration test is to check that components or software applications, e.g.
components in a software system or – one step up – software applications at the company
level – interact without error.
Test Results:
All the test cases mentioned above passed successfully. No defects encountered.
SAMPLE SCREENSHOTS
CUSTOMER DATA:
ROOM RENT BILL:
RESTAURANT BILL:
LAUNDRY BILL:
GAME BILL:
TOTAL COST: