You are on page 1of 24

A PROJECT REPORT

ON

“Restaurants management system”

DIPLOMA IN
THIRD YEAR COMPUTER TECHNOLOGY

SUBMITTED TO
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION, MUMBAI

SUBMITTED BY

Name of Student Enrollment No.


1. Pallavi Prakash Mairal 2011570025
2. Affan Nisar Mansuri 2011570026
3. Shubhangi Sunil More 2011570027
4. Kirtiratna Rahul Narwade 2011570028

GUIDED BY
( Prof.P.R.Gadpayle )

IETK, Kannad, Aurangabad

2022-2023
1
IETK, Kannad, Aurangabad

CERTIFICATE

This is to certify that the project report entitled “Restaurants


management System using java programing Language” Was
successfully completed by Student of Fifth semester Diploma in
Computer Engineering.

1. Pallavi Prakash Mairal


2. Affan Nisar Mansuri
3. Shubhangi Sunil More
4. Kirtiratna Rahul Narwade

In partial fulfillment of the requirements for the award of the


Diploma in Computer Engineering Department and submitted to
the Department of Computer Engineering of IETK, Kannad work
carried out during a period for the academic year 2022-23 as per
curriculum.

Name of Guide Name of HOD


(Prof.P.R.Gadpayle)
(Prof.P.R.Gadpayle)

2
INDEX

1. ACKNOWLEDGMENT

2. ABSTRACT

3. INTRODUCTION

4. SCOPE OF PROJECT

5. FUTURE DEVELOPMENTS

6 . OUTPUT AND SOURCE CODE

8 . REFFERNCE

9. CONCLUSION

3
ACKNOWLEDGMENT
This micro project is done as a semester micro project, as a part course titled
“Restaurant management system”

We thanks Prof.P.R.Gadpayle who have been the great inspiration and who have
provided sufficient background knowledge and understanding of this subject.

Our humble prostration goes to our H.O.D. Prof.P.R.Gadpayle, for providing all the
necessary resources and environment, which have aided us to complete this micro
project.

4
ABSTRACT

Running a restaurant is hectic enough as it is, so why not make the day-to-day
processes easier by having a system that will help ease the workload for you? There
are so many day-to-day processes that restaurants have to deal with. These can range
from scheduling in employees, managing HR, monitoring employee attendance to
preparing for payroll and to keep record of transactions and database. In current
marketplace, there is a great value for food, restaurants and its management .There is
day by day increment on the number of restaurants and food places that are emerging
today. It can be considered as a rapid growth in the field of business and food
restaurants and its management system. The management system applied for every
restaurant is different from the other one. Some restaurants may be bigger while the
other may be smaller but every restaurant or hotel requires a management system and
this is termed as Restaurant Management System.

Customer satisfaction is the key to success for any business. In a restaurant, the
tradition hand-waving method for calling services is inefficient often leading to many
complaints. The Restaurant Management System increase operational efficiency
through use of an internal wired communication 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,
waiter /waitresses tend to miss out on tables or customers call during busy hours
potentially decreasing ones clientele. While this is an ongoing issue, there is still no
product that drastically improves 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.

5
INTRODUCTION

This restaurant management system can be used by employees in a restaurant to handle


the clients, their orders and can help them easily find free tables. The restaurant menu
is organized by categories (appetizers, soups, salads, entrees, sides and drinks) of menu
items. Each menu item has a name, price and associated recipe. A recipe for a menu
item has a chef, preparation instructions and associated ingredients

Restaurant management system is the system for manage the restaurant business.
Restaurant management can vary across multiple management styles, however, there is
always one common denominator when it comes to setting goals: maximizing a
restaurant’s profitability. In order to maximize a restaurant’s profitability, one has to
always examine and understand a restaurant’s operational costs and how these relate to
a restaurant’s productivity and efficiency in delivering quality service to its customers.
Management takes a very important role in controlling and manipulating the balance of
costs and profitability. An effective manager must always concern himself/herself with
restaurant issues that pertain to inventory/stocking, pricing, order-taking, and much
more. Oftentimes, a restaurant’s profitability either rises or falls depending on how
well itis being managed.

6
SCOPE OF PROJECT
 
Scope of project in building a computerized system for silk route to handle billing
restaurant records was to include the employees who are involved in the process of
billing of a customer to storage of restaurant records and enables to view the records as
desired. The employees are given limited access in order to safe guard the privacy and
security of their cords. The database is maintained in the whole project.

The primary scope of the restaurant management system project is well depicted on the
user case diagram that are well showcased in this report. However, the central system
functionalities of the restaurant management system comprise generating report,
inventories, employee, records, and managing orders.

7
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

 On place features:
 Add, delete, and update staff info.
 Add, delete, update food items, items price, equipment’s and
ingredients.
 Prepare billing info.
 View tracking of sales.
 Precondition of ingredients needs for a specific day.

 Payment methods:

 Cash.
 Card.
 Online Payment.

8
LOGIN PAGE

import javax.swing.JOptionPane;
public class Login extends javax.swing.JFrame {
public Login() {
initComponents();
}
private void SignUpBtnActionPerformed(java.awt.event.ActionEvent evt) {
if(UsernameTb.getText().isEmpty() || PasswordTb.getText().isEmpty()){
JOptionPane.showMessageDialog(this, "Missing Information");
}else if(UsernameTb.getText().equals("Admin") &&
PasswordTb.getText().equals("Password"))
{
new Items().setVisible(true);
this.dispose();
}else{
JOptionPane.showMessageDialog(this, "Wrong Username and Password");
UsernameTb.setText("");

9
PasswordTb.setText("");
}
}
private void jLabel5MouseClicked(java.awt.event.MouseEvent evt) {
new Selling().setVisible(true);
this.dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Login().setVisible(true);
}
});
}

10
ITEMS MANAGEMENT

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import net.proteanit.sql.DbUtils;

11
public class Items extends javax.swing.JFrame {
public Items() {
initComponents();
ShowProduct();
}
ResultSet Rs = null,Rs1 = null;
Connection Con = null;
Statement St = null, St1=null;
int PrNum;
private void CountProd(){
try{
St1 = Con.createStatement();
Rs1 = St1.executeQuery("Select Max(PNum) from ProductTbl");
Rs1.next();
PrNum = Rs1.getInt(1)+1;
}catch(Exception e){
}
}
private void ShowProduct(){
try{
Class.forName("com.mysql.jdbc.Driver");
Con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/restaurentdb","root","tiger");
St = Con.createStatement();
Rs = St.executeQuery("select * from ProductTbl");
ProductList.setModel(DbUtils.resultSetToTableModel(Rs));
}catch(Exception e){

12
}
}
private void FilterProduct(){
try{
Class.forName("com.mysql.jdbc.Driver");
Con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/restaurentdb","root","tiger");
St = Con.createStatement();
Rs = St.executeQuery("select * from ProductTbl where
Category='"+FilterCb.getSelectedItem().toString()+"'");
ProductList.setModel(DbUtils.resultSetToTableModel(Rs));
}catch(Exception e){
JOptionPane.showMessageDialog(this, e);
}
}
private void DeleteBtnActionPerformed(java.awt.event.ActionEvent evt) {
if(PrNameTb.getText().isEmpty() || PriceTb.getText().isEmpty() ||
PrCatCb.getSelectedIndex() == -1)
{
JOptionPane.showMessageDialog(this, "Missing Information!!!");
}else{
try {
CountProd();
Con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/restaurentdb","root","tiger");
PreparedStatement pst = Con.prepareStatement("delete from Producttbl where
PNum=?");
pst.setInt(1, key);

13
int row = pst.executeUpdate();
JOptionPane.showMessageDialog(this, "Item Delete!!!");
Con.close();
ShowProduct();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, ex);
}
}}
private void AddBtnActionPerformed(java.awt.event.ActionEvent evt) {
if(PrNameTb.getText().isEmpty() || PriceTb.getText().isEmpty() ||
PrCatCb.getSelectedIndex() == -1)
{
JOptionPane.showMessageDialog(this, "Missing Information!!!");
}else{
try {
CountProd();
Con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/restaurentdb","root","tiger");
PreparedStatement pst = Con.prepareStatement("Insert into Producttbl
values(?,?,?,?)");
pst.setInt(1, PrNum);
pst.setString(2, PrNameTb.getText());
pst.setString(3, PrCatCb.getSelectedItem().toString());
pst.setInt(4, Integer.valueOf(PriceTb.getText()));
int row = pst.executeUpdate();
JOptionPane.showMessageDialog(this, "Item Added!!!");
Con.close();
ShowProduct();

14
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, ex);
}}}
int key = 0;
private void ProductListMouseClicked(java.awt.event.MouseEvent evt) {
DefaultTableModel model = (DefaultTableModel) ProductList.getModel();
int MyIndex = ProductList.getSelectedRow();
key = Integer.valueOf(model.getValueAt(MyIndex, 0).toString());
PrNameTb.setText(model.getValueAt(MyIndex, 1).toString());
PriceTb.setText(model.getValueAt(MyIndex, 3).toString());
}
private void EditBtnActionPerformed(java.awt.event.ActionEvent evt) {
if(PrNameTb.getText().isEmpty() || PriceTb.getText().isEmpty() ||
PrCatCb.getSelectedIndex() == -1)
{
JOptionPane.showMessageDialog(this, "Missing Information!!!");
}else{
try {
CountProd();
Con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/restaurentdb","root","tiger");
PreparedStatement pst = Con.prepareStatement("update Producttbl set
PName=?,Category=?,Price=? where PNum=?");
pst.setInt(4, key);
pst.setString(1, PrNameTb.getText());
pst.setString(2, PrCatCb.getSelectedItem().toString());
pst.setInt(3, Integer.valueOf(PriceTb.getText()));
int row = pst.executeUpdate();

15
JOptionPane.showMessageDialog(this, "Item updated!!!");
Con.close();
ShowProduct();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, ex);
}}}
private void FilterCbItemStateChanged(java.awt.event.ItemEvent evt) {
FilterProduct();
}
private void RefreshBtnActionPerformed(java.awt.event.ActionEvent evt) {
ShowProduct();
}
private void jLabel3MouseClicked(java.awt.event.MouseEvent evt) {
new Login().setVisible(true);
this.dispose();
}
private void jLabel2MouseClicked(java.awt.event.MouseEvent evt) {
new ViewSells().setVisible(true);
this.dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Items().setVisible(true);
}
});
}

16
List of Sells

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import net.proteanit.sql.DbUtils;

public class ViewSells extends javax.swing.JFrame {

public ViewSells() {
initComponents();
ShowBills();
}
ResultSet Rs = null,Rs1 = null;
Connection Con = null;
Statement St = null, St1=null;

private void ShowBills(){


try{
Class.forName("com.mysql.jdbc.Driver");
Con =

17
DriverManager.getConnection("jdbc:mysql://localhost:3306/restaurentdb","root","tiger");
St = Con.createStatement();
Rs = St.executeQuery("select * from BillTbl ");
BillList.setModel(DbUtils.resultSetToTableModel(Rs));
}catch(Exception e){

}
}
private void jLabel3MouseClicked(java.awt.event.MouseEvent evt) {
new Login().setVisible(true);
this.dispose();
}

public static void main(String args[]) {


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ViewSells().setVisible(true);
}
});
}

18
SELLING

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import net.proteanit.sql.DbUtils;

public class Selling extends javax.swing.JFrame {

public Selling() {
initComponents();
ShowProduct();

PriceTb.setEditable(false);
SellerTb.setEditable(false);

19
PrNameTb.setEditable(false);
}
ResultSet Rs = null,Rs1 = null;
Connection Con = null;
Statement St = null, St1=null;

private void ShowProduct(){


try{
Class.forName("com.mysql.jdbc.Driver");
Con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/restaurentdb","root","tiger");
St = Con.createStatement();
Rs = St.executeQuery("select * from ProductTbl");
ItemsList.setModel(DbUtils.resultSetToTableModel(Rs));
}catch(Exception e){

}
}
int BNum;
private void CountBill(){
try{
St1 = Con.createStatement();
Rs1 = St1.executeQuery("Select Max(BNum) from BillTbl");
Rs1.next();
BNum = Rs1.getInt(1)+1;
}catch(Exception e){

}
}
private void InsertBill(){

try {
CountBill();
Con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/restaurentdb","root","tige");
PreparedStatement pst = Con.prepareStatement("Insert into BillTbl values(?,?,?,?)");
pst.setInt(1, BNum);
pst.setString(2, SellerTb.getText());
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDateTime now = LocalDateTime.now();
pst.setString(3, now.toString().substring(1, 10));
pst.setInt(4, GrdTot);
int row = pst.executeUpdate();

20
JOptionPane.showMessageDialog(this, "Bill Added!!!");
Con.close();
ShowProduct();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, ex);
}
}
int GrdTot = 0;
private void AddBtnActionPerformed(java.awt.event.ActionEvent evt) {
if(PrNameTb.getText().isEmpty() || PrQtyTb.getText().isEmpty()){
JOptionPane.showMessageDialog(this, "Missing Information!!!");
}else{
int Total = Integer.valueOf(PriceTb.getText()) * Integer.valueOf(PrQtyTb.getText());
GrdTot = GrdTot+Total;
TotalLbl.setText("Rs "+GrdTot);
DefaultTableModel model = (DefaultTableModel) BillTable.getModel();
String nextRowId = Integer.toString(model.getRowCount());
model.addRow(new Object[]{
Integer.valueOf(nextRowId)+1,
PrNameTb.getText(),
PriceTb.getText(),
PrQtyTb.getText(),
Total
});
}
}
private void PrintBtnActionPerformed(java.awt.event.ActionEvent evt) {
try{
InsertBill();
BillTable.print();
}catch(Exception e ){
}
}
int key = 0;

private void ItemsListMouseClicked(java.awt.event.MouseEvent evt) {


DefaultTableModel model = (DefaultTableModel) ItemsList.getModel();
int MyIndex = ItemsList.getSelectedRow();
key = Integer.valueOf(model.getValueAt(MyIndex, 0).toString());
PrNameTb.setText(model.getValueAt(MyIndex, 1).toString());
PriceTb.setText(model.getValueAt(MyIndex, 3).toString());
}
private void jLabel3MouseClicked(java.awt.event.MouseEvent evt) {

21
new Login().setVisible(true);
this.dispose();
}
public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Selling().setVisible(true);
}
});
}

22
REFFERNCE

FUTURE
DEVELOPMENTS
FUTURE
DEVELOPMENT
 www.google.com
 www.wikipedia.com

Active expert software B.V.2010


 http://www.activexpert.com/xmstookit/howto/
 http://www.dynamicdrive.dynamicindex3/snow.com.htm

23
CONCLUSION

The project entitled “RESTAURANT MANAGEMENT SYSTEM” has


been proposed to be implementing to replace the manual system.

The developed system accomplishes all the objectives stated for the need for the
change of the system.

The outputs produced seem to satisfy all the user but it will definitely take to look
forwarded for the real consequence the new system could produce.

This project was made user friendly by the use of visual basic enabling the user to
interact easily with the database.

It's also enabled the platform to serve the needs of emerging information technology
Trends and needs.

24

You might also like