Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

A PROJECT REPORT ON

Restaurant Management System


A DISSERTATION REPORT SUBMITTED
IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE

AWARD OF THE DEGREE

BACHELOR OF COMPUTER APPLICATION

BENGALURU NORTH UNIVERSITY


2023
Submitted by: Registration No:
Shanu Joseph [ R2014306 ]

Under the guidance of


Prof. Satya Kumar
CERTIFICATE

This is certify that Mr. Shanu Joseph (R2014306)of Koshys Institute of


Management studies is confide students of this college. He has
conducted a project entitled “Restaurant Management System” is
original study conducted by him.

The project undertaken by the candidate and the report has


been executed by him under the guidance of Pro Satya Kumar, Koshys
Institute of Management Studies. This Project report has not formed
a basis for the award of the Degree of Bengaluru North University or
any University.

Signature of HOD Signature of Principal

Examiner 1

Examiner 2
GUIDE CERTIFICATE

This is to certify that the project entitled “Restaurant Management


System” prepared by Mr.Shanu Joseph(R2014306) has been conducted
under my direct super vision and guidace of prof.Satya kumar.

This study is in partial fulfilment for the award of “ Batchelor


of Computer Application” from Bengaluru North University. Further
it is certified that this project has not been previously submitted to
any other university for the requirement of Batchelor of Computer
Application.

Place: Bangalore Signature of Guide

Date:
UNDERTAKING

Shanu Joseph(R2014306) studying in 5th Semester BCA ensure that the


project entitled “Restaurant Management System” submitted to the
Department of Computer Application has been carried out by our self,
as per the requirement of Bengaluru North University. This Report has
not formed the basics for the award of the Degree of the Bengaluru
North University or any other University.

Place: Bangalore Signature of Student

Date: Mr.Abhiraj AR (R2014205)


ACKNOWLEDGEMENT

We take this opportunity to express my deep sense of gratitude to


the Director Dr. Prakash B Nayak, Academic Director Dr. Sara
Kunnath and Vice Principal Prof. Sandhya S for the valuable
guidance, keen interest and helpful criticism, during the course of
studies.
We express sincere thanks to our respected HoD Prof. S. Uma
Mageshwari for providing all necessary help during our project and
enabling us to draft this project and also the successful
implementation of the project.

Also, We express sincere thanks to our respected Guide Prof. Satya


Kumar, and all our faculties for providing all necessary help during our
project.

Last but not the least I would like to thank our Friends, the Teaching
and Non-Teaching Staffs and all other who have directly and directly
helped me in successful completion of the project.
Place: Bangalore Date:

CONTENTS

1. Abstract
2. Introduction
3. Project Aims and Objectives
4. Organization Structure
5. Existing System
6. Proposed System
7. System Design
8. Coding
9. Future Developments
10. Conclusion
1. ABSTRACT

Customer satisfaction is the key to success for any business. In a


restaurant, the traditional hand-waving method for calling
services is inefficient often leading to many complaints. The
Restaurant Management System increases operational efficiency
through use of an internal wired communications system. The
communications system increases customer satisfaction by
leaving a system at each table which the customer can use to
request for a server. This system allows managers and owners to
easily monitor restaurant functions and employee progress.
In many popular restaurants, waiters/waitresses tend to miss out
on tables or customers’ calls during busy hours potentially
decreasing ones clientele. While this is an ongoing issue, there
is still no product that drastically improves the communication
between the servers and the customers in the current market.
Hence, the goal is to design a system in which the customers
can call their servers easily and help the restaurant increase
overall efficiency.
2. INTRODUCTION

In many popular restaurants, waiters/waitresses tend to


miss out on tables or customers’ calls during busy hours potentially
decreasing ones clientele. While this is an ongoing issue, there
is still no product that drastically improves the communication
between the servers and the customers in the current market.
Hence, the goal is to design a system in which the customers
can call their servers easily and help the restaurant increase
overall efficiency. An internal wired communication system will
allow prompt notification to the server when a customer requires
service. Moreover, servers can also be more focused on serving
their current customers and save their time and energy from
always keeping an eye out for needy customers. On top of meeting
the needs of customers, restaurant managers can also monitor
the response time of their waiters/waitresses through use of
this system. Hardworking, proficient employees will become
more recognized while lazy, inefficient employees become
motivated to improve. As a result, the restaurant becomes more
efficient and possibly increasing morale while improving the level
of customer satisfaction.

3. Project Aims and Objectives

Now a day, the world is getting into digital world. System was
trying to build out to make people even more convenience on
any aspects. Restaurant Management System provide an system
based food ordering system without help of a waiter. It involves
seller and buyer which could bring benefits to each other. It is win-
win situation that will bring benefits to the world. This system was
bringing a convenience for customer that can make order by
help of a computer. It provides customer with a completely
new way to make order. By providing customer convenience
and also increase the sales. No time wasted with order taking
or letting the customer browse the menu over the system. This
system provides more reliable usability, maintainability and
dependability functions. By creating quality, easy to keep track
management of new system. So that it can streamline all the
works by a simple click. By develop the system based food
ordering system can reduce the unnecessary costs such as staff
salaries, customer satisfaction, reputation, etc. Our restaurant
also easy to keep track for the maintenance and point
redemption
5.Existing System

In the existing manual System, many restaurants have a lot difficult to


manage the business. Sometimes its difficult to run all the sections
together. Errors occurs in calculating the costs and it takes a lot of
time.

6. Proposed System

The main point of developing this system is to help restaurant


administrator manage the restaurant business. The System can
efficiently handle and manage various activities of a restaurant and all
these activities will be happening under the supervision of the
administrator. The businesses in restaurants are now growing
constantly.
7. System Design
8.CODING

Login.tsx :

import * as React from "react";


import Avatar from "@mui/material/Avatar";
import Button from "@mui/material/Button";
import CssBaseline from "@mui/material/CssBaseline";
import TextField from "@mui/material/TextField";
import FormControlLabel from "@mui/material/FormControlLabel";
import Checkbox from "@mui/material/Checkbox";
import Link from "@mui/material/Link";
import Paper from "@mui/material/Paper";
import Box from "@mui/material/Box";
import Grid from "@mui/material/Grid";
import LockOutlinedIcon from "@mui/icons-material/LockOutlined";
import { Typography } from "@mui/material";
import { createTheme, ThemeProvider } from "@mui/material";
import { signInWithEmailAndPassword } from 'firebase/auth'
import { auth } from "../../firebase";
import { useNavigate } from "react-router-dom";
import { useEffect } from "react";

function Copyright(props: any) {


return (
<Typography
variant="body2"
color="text.secondary"
align="center"
{...props}
>
{"Copyright © "}
<Link color="inherit" href="https://mui.com/">
Your Website
</Link>{" "}
{new Date().getFullYear()}
{"."}
</Typography>
);
}
const theme = createTheme();

export default function Login() {


const navigate = useNavigate();
const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => {
// event.preventDefault();
const data = new FormData(event.currentTarget);
// console.log({
// email: data.get("email"),
// password: data.get("password"),
// });
signInWithEmailAndPassword(auth, String(data.get("email")),
String(data.get("password"))).then((response) => {
// console.log(response.user.uid);
if (response.user.uid) {
localStorage.setItem("uid", response.user.uid);
navigate("/home");
} else {
navigate("/")
alert("Invalid login");
}
});
};

useEffect(() => {
// check if user is already login
const token = localStorage.getItem("uid");
if (token) {
navigate("/home")
} else {
navigate("/")
}
});

return (
<ThemeProvider theme={theme}>
<Grid container component="main" sx={{ height: "100vh" }}>
<CssBaseline />
<Grid
item
xs={false}
sm={4}
md={7}
sx={{
backgroundImage:
"url(https://drive.google.com/uc?export=view&id=1YtondKnmZMHJaoV
IaiutuVDuKRimk-4X)",
backgroundRepeat: "no-repeat",
backgroundColor: (t) =>
t.palette.mode === "light"
? t.palette.grey[50]
: t.palette.grey[900],
backgroundSize: "cover",
backgroundPosition: "center",
}}
/>
<Grid item xs={12} sm={8} md={5} component={Paper} elevation={6}
square>
<Box
sx={{
my: 8,
mx: 4,
mt: 15,
display: "flex",
flexDirection: "column",
alignItems: "center",
}}
>
<Avatar sx={{ m: 1, bgcolor: "secondary.main" }}>
<LockOutlinedIcon />
</Avatar>
<Typography component="h1" variant="h5">
Sign in
</Typography>
<Box
component="form"
noValidate
onSubmit={handleSubmit}
sx={{ mt: 1 }}
>
<TextField
margin="normal"
required
fullWidth
id="email"
label="Email Address"
name="email"
autoComplete="email"
autoFocus
/>
<TextField
margin="normal"
required
fullWidth
name="password"
label="Password"
type="password"
id="password"
autoComplete="current-password"
/>
<FormControlLabel
control={<Checkbox value="remember" color="primary" />}
label="Remember me"
/>
<Button
type="submit"
fullWidth
variant="contained"
sx={{ mt: 3, mb: 2 }}
>
Sign In
</Button>
<Grid container>
<Grid item xs>
<Link href="#" variant="body2">
Forgot password?
</Link>
</Grid>
<Grid item>
<Link href="#" variant="body2">
{"Don't have an account? Sign Up"}
</Link>
</Grid>
</Grid>
<Copyright sx={{ mt: 5 }} />
</Box>
</Box>
</Grid>
</Grid>
</ThemeProvider>
);
}
Home.tsx :

import * as React from "react";


import Box from "@mui/material/Box";
import "./home.css";

import ProductCard from "./components2/productCard";


import Drawer from "../../Components/drawer";
import BillingCard from "./components1/billingCard";

import { Grid } from "@mui/material";


import { useEffect, useState } from "react";
import { useNavigate } from "react-router-dom";
import { db } from "../../firebase";
import { collection, getDocs, query, where } from "firebase/firestore";
import LinearProgress from '@mui/material/LinearProgress';

export default function Home() {


const [showAdmin, setShowAdmin] = useState(true);
const [showPage, setShowPage] = useState(false);
const navigate = useNavigate();
async function checkUserType() {
try {
const token = localStorage.getItem("uid");
const q = query(collection(db, "users"), where("uid", "==", token));
const querySnapshot = await getDocs(q);
const type = querySnapshot.docs[0].data();
if (type.type == "user") {
localStorage.setItem("branch", type.branch_id);
// setShowAdmin(false);
setShowPage(true);
} else {
// setShowPage(true);
}
}
catch (err) {
console.log('Error');
}
}
useEffect(() => {
// check if user is already login
const token = localStorage.getItem("uid");
if (token) {
navigate("/home")
} else {
navigate("/")
}
checkUserType();
// setShowPage(true);
}, []);

return (
<>
{
showPage ?
<Drawer>
< Box >
<Grid
container
rowSpacing={3}
columnSpacing={{ xs: 0, sm: 1, md: 2, lg: 2, xl: 2 }}
>
{showAdmin ?
<Grid item xl={4} lg={4} md={6} sm={12} xs={12}>
<ProductCard />
</Grid> : null}
<Grid item xl={4} lg={4} md={6} sm={12} xs={12}>
<BillingCard />
</Grid>
</Grid>
</Box >
</Drawer >
: <Box sx={{ width: '100%' }}>
<LinearProgress />
</Box>
}
</>
);
}
billingpage.tsx :

import * as React from "react";


import Box from "@mui/material/Box";
import Button from "@mui/material/Button";
import Typography from "@mui/material/Typography";
import Drawer from "../../Components/drawer";
import AddIcon from "@mui/icons-material/Add";
import { Grid, TextField } from "@mui/material";
import Counterdb from "./dtBillpage";
import AdfScannerIcon from "@mui/icons-material/AdfScanner";

export default function BasicModal() {


return (
<Drawer>
<div>
<Grid container rowSpacing={2} columnSpacing={{ xs: 1, sm: 2, md: 3
}}>
<Grid
item
xs={12}
sm={12}
md={12}
lg={12}
xl={12}
sx={{ textAlign: "center" }}
>
<Typography
id="modal-modal-title"
variant="h6"
component="h2"
sx={{ fontSize: 23 }}
>
Billing
</Typography>
</Grid>
<Grid item xs={12} sm={12} md={6} lg={6} xl={6}>
<TextField
required
fullWidth
id="outlined-basic"
label="Name"
variant="outlined"
/>
</Grid>
<Grid item xs={12} sm={12} md={6} lg={6} xl={6}>
<TextField
required
fullWidth
id="outlined-uncontrolled"
label="Mobile Number"
/>
</Grid>
<Grid item xs={12} sm={12} md={6} lg={6} xl={6}>
<TextField
fullWidth
id="outlined-basic"
label="Email Adress"
variant="outlined"
/>
</Grid>
<Grid item xs={12} sm={12} md={6} lg={6} xl={6}>
<TextField
fullWidth
disabled
id="outlined-uncontrolled"
label="Billing Id"
defaultValue="#"
/>
</Grid>
<Grid
sx={{ textAlign: "center" }}
item
xs={12}
sm={12}
md={12}
lg={12}
xl={12}
>
<TextField
sx={{ width: 700, textAlign: "left" }}
id="outlined-select-currency"

label="Product"
defaultValue="Product"
helperText="Please select your Product"
>
shanu
</TextField>
<Button
variant="contained"
sx={{
ml: 5,
mt: 1,

color: "white",
backgroundColor: "#64dd17",
":hover": {
bgcolor: "#76ff03",
color: "white",
justifyContent: "flex-end",
},
}}
endIcon={<AddIcon />}
>
Add
</Button>
</Grid>
<Grid item xs={12} sm={12} md={12} lg={12} xl={12}>
<Box>
<Counterdb />
</Box>
<Box sx={{ mt: 2, ml: 100 }}>
<Button variant="contained" endIcon={<AdfScannerIcon />}>
Print
</Button>
</Box>
</Grid>
</Grid>
</div>
</Drawer>
);
}
The technologies that are used to implement this project are:

ReactJS:

and work with and the to-do list app can be elegantly designed as a
single page application (SPA) React (also known as React.js or ReactJS)
is a free and open-source front-end JavaScript library for building user
interfaces based on UI components. It is maintained by Meta
(formerly Facebook) and a community of individual developers and
companies. React can be used as a base in the development of single-
page, mobile, or server-rendered applications with frameworks like
Next.js. However, React is only concerned with state management and
rendering that state to the DOM, so creating React applications
usually requires the use of additional libraries for routing, as well as
certain client-side functionality. We chose React as the framework for
the frontend of the application because it is simple to implement

Node.js:

Node.js is an open-source, cross-platform, back-end JavaScript


runtime environment that runs on the V8 engine and executes
JavaScript code outside a web browser. Node.js lets developers use
JavaScript to write command line tools and for server-side scripting—
running scripts server-side to produce dynamic web page content
before the page is sent to the user's web browser. Consequently,
Node.js represents a "JavaScript everywhere" paradigm, unifying web-
application development around a single programming language,
rather than different languages for server-side and client-side scripts

Firebase:

Firebase is a set of hosting services for any type of application.


It offers NoSQL and real-time hosting of databases, content,
social authentication, and notifications, or services, such as a
real-time communication server.

Visual Studio Code:

Visual Studio Code, also commonly referred to as VS Code, is a


source-code editor made by Microsoft for Windows, Linux and
macOS. Features include support for debugging, syntax
highlighting, intelligent code completion, snippets, code
refactoring, and embedded Git. Users can change the theme,
keyboard shortcuts, preferences, and install extensions that add
additional functionality
9. Future Developments

The main dispatcher system software may have a few areas to


improve on in the future. The current system allows anyone to view
and modify the database. Adding a user profiles with password
will improve the overall security of the system. As for eccentric
feature, colour code different request status, request type, or waiter
id would make the request table easier to read. In the future, it would
be efficient to join this main dispatcher software to the existing
ordering software that restaurants use today to increase the
productivity.

10. Conclusion

The purpose of the system is to improve worker efficiency and


maximize profit margin of restaurant owners by providing better
service. This project proved to be a larger task than expected due lack
of manpower and late arriving parts.

You might also like