PROJECT REPORT
ON
CAFE MANAGEMENT SYSTEM
ACADEMIC YEAR: 2023-24
Submitted to:
Mr. Ashish Thomas
Sophia Sr. Sec. School, Lalarpura, Jaipur
In
Partial Fulfilment of the
requirement for Qualifying
SSCE Examination
BOARD ROLL NO :
NAME : LAVANYA SAINI
CLASS : XII- B
SUBJECT : INFORMATICS PRACTICES
SUBJECT CODE : 065
PROJECTGUIDE : Mr. Ashish Thomas
~1~
Sophia Sr. Sec. School, Lalarpura, Jaipur
CERTIFICATE
This to certify that the project entitled CAFE MANAGEMENT is a bonafide
work done by Lavanya Saini of class XII session 2023-2024 in partial fulfilment
of CBSE’s Examination 2024 and has been carried out under my direct
supervision and guidance. This report on the topic has not been submitted for any
other examination and does not form a part of any other courses undergone by the
candidate.
Guide : Mr. Ashish Thomas
Date : ……………………………..
External Examiner’s No. : ……………………………..
External Examiner’s Name : ……………………………..
Signature : ……………………………..
Date : ……………………………..
~2~
ACKNOWLEDGEMENT
I would like to acknowledge all those without whom this project would not have
been successful. Firstly, I would wish to thank our Computer Science teacher
Mr.Ashish Thomas who guided me throughout the project and gave his immense
support. He made us understand how to successfully complete this project and
without him, the project would not have been complete.
This project has been a source to learn and bring our theoretical knowledge to the
real-life world. So, I would really acknowledge his help and guidance for this
project.
I owe my great deal to my family & friends for their unflagging support and
encouragement.
LAVANYA SAINI
XII - B
~3~
TABLE OF CONTENT [TOC]
S.No. Description Page No
01 ACKNOWLEDGEMENT 03
02 INTRODUCTION 05
03 OBJECTIVE OF THE PROJECT 06
04 PROPOSED SYSTEM 07
05 SYSTEM DEVELOPMENT LIFE CYCLE (SDLC) 08
06 IMPORTANCE OF SOFTWARE LIFE CYCLE 09
07 HARDWARE AND SOFTWARE REQUIREMENT 10
08 FLOW CHART 11
09 SOURCE CODE 12
10 OUTPUT 30
11 BIBILOGRAPHY 42
~4~
INTRODUCTION
This project on “CAFÉ MANAGEMENT” is general software developed (using
python) to simplify school operations by automating them. In this project it covers
major aspects of CAFÉ MANAGEMENT; it could perform the following
operations – Customer Management, Bill Management and Employee
Management.
OBJECTIVE OF THE PROJECT
The objective of this project is to let the students apply the programming
knowledge into a real-world situation/problem and exposed the students how
programming skills helps in developing a good software.
1. Write programs utilizing modern software tools.
2. Apply object-oriented programming principles effectively when developing
small to medium sized projects.
3. Write effective procedural code to solve small to medium sized problems.
4. Students will demonstrate a breadth of knowledge in computer science, as
exemplified in the areas of systems, theory and software development.
5. Students will demonstrate ability to conduct research or applied Computer
Science project, requiring writing and presentation skills which exemplify
scholarly style in computer science.
~5~
PROPOSED SYSTEM
Today one cannot afford to rely on the fallible human beings of be really wants to
stand against today’s merciless competition where not to wise saying “to err is
human” no longer valid, it’s outdated to rationalize your mistake. So, to keep pace
with time, to bring about the best result without malfunctioning and greater
efficiency so to replace the unending heaps of flies with a much- sophisticated
hard disk of the computer.
One has to use the data management software. Software has been an ascent in
atomization various organizations. Many software products working are now in
markets, which have helped in making the organizations work easier and
efficiently. Data management initially had to maintain a lot of ledgers and a lot of
paperwork has to be done but now software production this organization has
made their work faster and easier. Now only this software has to be loaded on the
computer and work can be done.
This prevents a lot of time and money. The work becomes fully automated and
any information regarding the organization can be obtained by clicking the
button.
Moreover, now it’s an age of computers of and automating such an organization
gives the better look.
~6~
SYSTEM DEVELOPMENT LIFE CYCLE
[SDLC]
The system development life cycle is a project management model that defines
the stages involved in bringing a project from inception to completion. Software
development teams, for example, deploy a variety of systems development life
cycle models that include waterfall, spiral and agile processes.
Systems development life cycle phases include ideation, requirements, design,
development, testing, deployment, maintenance.
~7~
IMPORTANCE OF SOFTWARE LIFE CYCLE
• It provides visibility for the engaged parties.
• It allows to control the project.
• Predictable deliveries throughout an entire development process.
• Eliminating risks like going over budget or deadline breach.
• The process goes on until all the requirements are met.
~8~
MINIMUM SOFTWARE AND HARDWARE
REQUIREMENTS
HARDWARE:-
1. PC - Desktop/Laptop
2. Processor - intel i3
3. RAM - 2GB
4. Hard Disk - 2 GB
SOFTWARE:-
1. Operating System – windows 7 and later version (32-bit / 64-bit)
2. Language - Python
3. IDE - Python idle 3.7(min)
4. Database - MySQL
5. Database driver - mysql connector
6. Library for plotting - matplotlib
7. Other libraries- pandas
~9~
FLOW CHART
Main Menu
Customer Bill Employee
Management Management Management
Add a new Add Bill Add
Customer details details Employee
details
Search a Customer Search
Search Bill employee
details details details
View all View all
View all Bill employee
Customer details details details
Edit Customer Edit Bill Edit employee
details details
details
Delete Customer Delete Bill Delete
details employee
details details
~ 10 ~
~ 11 ~
SOURCE CODE
MySQL CODE
create databases cafemanagemet;
use cafemanagemet ;
Create table Customer
(Cust_id char(3),
Cust_name varchar(30),
Phoneno char(10),
Address varchar(50),
Primary key(Cust_id));
Create table Bill
(Cust_id char(3),
Order_name varchar(20),
Billno char(3),
Price int,
Quantity int ,
Modes_of_payment
varchar(20),
Primary key(Cust_id),
Foreign Key (Cust_id) references Customer (Cust_id));
~ 12 ~
Create table Employee
(Empid char(3),
Salary int,
Emp_address varchar(50),
Emp_phoneno char(10),
Salary_hike float,
Primary key (Empid));
~ 13 ~
PYTHON CODE
import mysql.connector
mydb=mysql.connector.connect( host='localhost',
user='root', password='12345',
database='sportsshopmanagement')
mycursor=mydb.cursor()
Main Menu
def Main_Menu():
while True:
print("\t___________________________________________________________")
print(" *******WELCOME TO CAFE MANAGEMENT ******* ")
print("\t___________________________________________________________")
print("\n\t ***** MAIN MENU ***** ")
print("1: Customer Management Menu")
print("2: Bill Management Menu ")
print("3: Employee Management Menu")
print("4: Visual Representation")
print("5: Exit")
print("\t ")
choice=int(input("Enter Your Choice:"))
if choice==1:
Customer_Management()
elif choice==2:
Bill_Management()
elif choice==3:
Employee_Management()
elif choice==4:
~ 14 ~
View_Graph()
elif choice==5:
break
else:
print("ERROR: Invalid Choice Try Again")
cont=input("Press any key to continue")
Customer Management Menu
def Customer_Management():
while True:
print("\t ")
print("\t********CUSTOMER DETAILS********")
print("\t ")
print("1: Add Customer Details")
print("2: Search Customer Details")
print("3: View all Customer Details")
print("4: Edit Customer Details")
print("5: Delete Customer Details")
print("6: Return Main Menu")
print('______________________________________')
choice=int(input("Enter Your Choice:"))
print('______________________________________')
if choice==1:
Add_Customer_Details()
elif choice==2:
~ 15 ~
Search_Customer()
elif choice==3:
View_Customer()
elif choice==4:
Edit_Customer_Details()
elif choice==5:
Delete_Customer()
elif choice==6:
return
else:
print("ERROR: Invalid Choice Try Again")
cont=input("Press any key to continue")
Add New Customer Details
def Add_Customer_Details():
Cust_id=int(input("Enter Customer id:"))
Cust_name=input("Enter Name of Customer:")
Phoneno=input("Enter Phone Number:")
Address=input("Enter Address:")
query="insert into Customer
values('{}','{}','{}','{}')".format(Cust_id,Cust_name,Phoneno,Address)
mycursor.execute(query)
mydb.commit()
print("Customer Details stored Successfully")
~ 16 ~
Search a Customer
def Search_Customer():
Cust_id=input("Enter Cust_id:")
sql="select * from Customer where Cust_id='{}'".format(Cust_id)
mycursor.execute(sql)
print("THE CUSTOMER DETAILS ARE AS FOLLOWS:")
res=mycursor.fetchall()
for x in res:
print(x)
View All Customer Details
def View_Customer():
print("The customer details are as follow:")
mycursor.execute("SELECT * FROM Customer")
myresult=mycursor.fetchall()
for x in myresult:
print(x)
Edit Customer Details
def Edit_Customer_Details():
Cust_id=input("Enter Customer id:")
Cust_name=input("Enter Name of Customer:")
Phoneno=input("Enter Phone number:")
Address=input("Enter Address:")
~ 17 ~
query="update Customer set Cust_name='{}',Phoneno='{}',Address='{}' Where
Cust_id='{}'".format(Cust_name,Phoneno,Address,Cust_id)
mycursor.execute(query)
mydb.commit()
print("Customer Details Changed Successfully")
Delete a Customer
def Delete_Customer():
Cust_id=input("Enter Customer ID of Customer:")
query="Delete from Customer where Cust_id='{}'".format(Cust_id)
mycursor.execute(query)
mydb.commit()
print("Customer Data Deleted")
Bill Management Menu
Def BillManagement():
while True:
print("\t ")
print("\t********BILL DETAILS********")
print("\t ")
print("1: Add Bill Details")
print("2: Search Bill Details")
print("3: View all Bill Details")
print("4: Edit Bill Details")
print("5: Delete Bill Details")
~ 18 ~
print("6: Return Main Menu")
print('______________________________________')
choice=int(input("Enter Your Choice:"))
print('______________________________________')
if choice==1:
Add_Bill_Details()
elif choice==2:
Search_Bill()
elif choice==3:
View_Bill()
elif choice==4:
Edit_Bill_Details()
elif choice==5:
Delete_Bill()
elif choice==6:
return
else:
print("ERROR: Invalid Choice Try Again")
cont=input("Press any key to continue")
Add Bill Details
def Add_Bill_Details():
Cust_id=input("Enter customer id:")
Order_name=input("Enter Name of order:")
~ 19 ~
Billno=input("Enter Bill number:")
Price=input('Enter Price:')
Quantity=input("Enter Quantity:")
Modes_of_payment=input (“Enter mode of payment:”)
query="insert into Item
values('{}','{}','{}','{}','{}')".format(Cust_id, order_name, billno, price,quantity,
modes_of_payment)
mycursor.execute(query)
mydb.commit()
print("Bill Details stored Successfully")
Search Bill Details
def Search_Bill():
Cust_id=input("Enter Cust_id:")
sql="select * from Item where Cust_id='{}'".format(Cust_id)
mycursor.execute(sql)
print("THE ITEM DETAILS ARE AS FOLLOWS:")
res=mycursor.fetchall()
for x in res:
print(x)
View All Bill Details
def View_Bill():
print("The Bill details are as follow:")
mycursor.execute("SELECT * FROM Bill")
myresult=mycursor.fetchall()
~ 20 ~
for x in myresult:
print(x)
Edit Bill Details
def Edit_Bill_Details():
Cust_id=input("Enter customer id:")
Order_name=input("Enter Name of Order:")
Billno=input("Enter Bill number:")
Price=input('Enter Price:')
Quantity=input("Enter Quantity:")
Modes_of_payment=input (“Enter mode of payment:”)
query="update Item set Order_name='{}',Billno='{}',Price='{}',Quantity='{}',
Modes_of_payment=’{}’ Where
Cust_id='{}'".format(Order_name,Billno,Price,Quantity,Modes_of_payment,Cust_id)
mycursor.execute(query)
mydb.commit()
print("Customer Details Changed Successfully")
Delete Bill Details
def Delete_Bill():
Cust_id=input("Enter Customer id:")
query="Delete from Item where Cust_id='{}'".format(Cust_id)
mycursor.execute(query)
mydb.commit()
print("Bill Data Deleted")
~ 21 ~
Employee Management Menu
def Employee_Management():
while True:
print("\t ")
print("\t********EMPLOYEE DETAILS********")
print("\t ")
print("1: Add Employee etails")
print("2: Search Employee Details")
print("3: View all Employee Details")
print("4: Edit Employee Details")
print("5: Delete Employee Details")
print("6: Return Main Menu")
print('______________________________________')
choice=int(input("Enter Your Choice:"))
print('______________________________________')
if choice==1:
Add_Employee_Details()
elif choice==2:
Search_Employee()
elif choice==3:
View_Employee()
elif choice==4:
Edit_Employee_Details()
~ 22 ~
elif choice==5:
Delete_Employee()
elif choice==6:
return
else:
print("ERROR: Invalid Choice Try Again")
cont=input("Press any key to continue")
Add Employee Details
def Add_Employee_Details():
Empid=input("Enter Employee id:")
Salary=input("Enter Salary of employee:")
Emp_address=input("Enter Employee address:")
Emp_phoneno=input("Enter Employee phone number:")
Salary_hike=input(‘Enter Salary hike:’)
query="insert into Employee
values('{}','{}','{}','{}','{}','{}','{}')".format(Empid,Salary,Emp_address,
emp_phoneno, Salary_hike)
mycursor.execute(query)
mydb.commit()
print("Employee Details stored Successfully")
Search Employee Details
def Search_Employee():
Empid=input("Enter Employee id :")
~ 23 ~
sql="select * from Bill where Empid='{}'".format(Empid)
mycursor.execute(sql)
print("THE EMPLOYEE DETAILS ARE AS FOLLOWS:")
res=mycursor.fetchall()
for x in res:
print(x)
View all Employee Details
def View_Employee():
print("The Employee details are as follow:")
mycursor.execute("SELECT * FROM Employee")
myresult=mycursor.fetchall() for x in
myresult:
print(x)
Edit Employee Details
def Edit_Employee_Details():
Empid=input("Enter Employee id:")
Salary=input("Enter Salary of employee:")
Emp_address=input("Enter Employee address:")
Emp_phoneno=input (“Enter Employee phone number:”)
Salary_hike=input(‘Enter Salary hike:’)
query="update Employee set Empid='{}', Salary='{}',Emp_address='{}',
Emp_phoneno='{}',Salary_hike='{}',
where Empid='{}'".format(Salary,Emp_address, Emp_phoneno, Salary_hike, Empid)
~ 24 ~
mycursor.execute(query)
mydb.commit()
print("Employee Details Changed Successfully")
Delete Employee Details
def Delete_Employee():
Empid=input("Enter Employee id:")
query="Delete from Employee where Empid='{}'".format(Empid)
mycursor.execute(query)
mydb.commit()
print(" Employee Data Deleted")
DATA VISUALIZATION
Graph Menu
def View_Graph():
while True:
print("\t____________________________________________________________")
print("\t ********DATA VISUALIZATION MENU******** ")
print("\t ")
print("1: Graph on the basis of Mode Of Payment ")
print("2: Graph on the basis of Sales ")
print("3: Return Main Menu")
print("\t ")
choice=int(input("Enter Your Choice:"))
if choice==1:
~ 25 ~
View_Graph_MOP()
elif choice==2:
View_Graph_Sales()
elif choice==3:
return
else:
print("ERROR: Invalid Choice Try Again")
cont=input("Press any key to return to Main Menu()")
Graph on the basis of Mode Of Payment
def View_Graph_MOP():
sql= 'Select count(Payment_Mode) as x, Payment_Mode from Sales group by
Payment_Mode'
print('Preferable mode of payment:')
Df1=pd.read_sql(sql,mydb);
print(Df1)
plt.bar(Df1['Payment_Mode'],Df1['x'],color='blue',width=0.25)
plt.title('Mode Of Payment')
plt.xlabel('Payment Mode')
plt.ylabel('No. Of Use ')
plt.show()
~ 26 ~
Graph on the basis of Sales
def View_Graph_Sales():
sql="Select count(month(order_date)) as count , monthname(order_date) as 'mod' from
sales where year(order_date)='2022' group by month(order_date) order by
month(order_date);"
sql2="Select count(month(order_date)) as count, monthname(order_date) as 'mod2'
from sales where year(order_date)='2023' group by month(order_date) order by
month(order_date);"
print("sales in different years:")
Df1=pd.read_sql(sql,mydb)
df2=pd.read_sql(sql2,mydb)
plt.plot(Df1['mod'],Df1['count'],color='red',label='2022')
plt.plot(df2['mod2'],df2['count'],color='blue',label='2023')
plt.title('SALES')
ticks=[1,2,3,4]
plt.yticks(ticks)
plt.show()
~ 27 ~
OUTPUT
MySQL
~ 28 ~
~ 29 ~
~ 30 ~
PYTHON
Main Menu
Customer Management Menu
~ 31 ~
Add Customer
Search Customer
~ 32 ~
View All Customer
Edit Customer Details
~ 33 ~
Delete Customer
~ 34 ~
Bill Management Menu
Add Bill
~ 35 ~
Search Bill
View All Bill
~ 36 ~
Edit Bill
Delete Bill
~ 37 ~
Employee Management Menu
Add Employee Details
~ 38 ~
Search Employee
View Employee
~ 39 ~
~ 40 ~
Edit Employee Detail
Delete Employee Details
~ 41 ~
Visual Representation
~ 42 ~
~ 43 ~
BIBLIOGRAPHY
1. Informatics Practices - NCERT
2. Textbook of Informatics Practices By Preeti Arora
3. Textbook of Informatics Practices by Sumita Arora
4. https://www.scribd.com/
5. https://www.tutorialaicsip.com/
6. https://medium.com/
~ 44 ~