ASmart Restaurant Menu Ordering Systemusing Arduino
ASmart Restaurant Menu Ordering Systemusing Arduino
net/publication/356682466
CITATIONS READS
0 7,438
3 authors, including:
SEE PROFILE
All content following this page was uploaded by Dusingiziamana Jean Paul on 01 December 2021.
OPTION OF INDUSTRIAL IT
Reg.No: 18/12060
W : www.ines.ac.rw
DECLARATIONOF ORGINALITY
I do hereby declare that the work presented in this dissertation is my own contribution
to the best of my knowledge. The same work has never been submitted to any other
University or institution. I therefor declare that this work is my own for the partial
fulfillment ofthe award of a Bachelor’s degree of Science in Computer Science, with
honours in Industrial IT at INES-Ruhengeri.
ii
APPROVAL
This is to certify that this dissertation work entitled “A Smart Restaurant Menu
Ordering System using Arduino”is an original study conducted by
DUSINGIZIMANA Jean Paul under supervision and guidance.
iii
DEDICATION
This dissertation
dedicated to:
My Parents,
My Supervisor,
My fellow Students,
iv
ACKNOWLEDMENTS
This work is conducted through the contribution of several people who has spent their
time helping me to carry out this study.
For that, all glory and praise be to the Almighty God for has provided me the strength,
courage and health to accomplish my studies at INES-RUHENGERI.
Special thanks to my parents and my family who gives me all their have to help me in
my education since my childhood until now to carry out this work.
v
ABSTRACT
vi
TABLE OF CONTENTS
DECLARATION OF ORGINALITY........................................................................II
APPROVAL................................................................................................................ III
DEDICATION............................................................................................................ IV
ACKNOWLEDMENTS.............................................................................................. V
ABSTRACT................................................................................................................ VI
TABLE OF CONTENTS..........................................................................................VII
LIST OF FIGURES....................................................................................................IX
LIST OFABBREVIARIONS...................................................................................... X
LIST OFAPPENDICES.............................................................................................XI
1.9 Methodology.............................................................................................................4
vii
CHAPTER 3: RESEARCH METHODOLOGY..................................................... 11
5.1 Conclusion.............................................................................................................. 29
5.2. Recommendations..................................................................................................29
REFERENCES........................................................................................................... 31
APPENDICES.............................................................................................................33
viii
LIST OF FIGURES
ix
LIST OF APPENDICES
x
LIST OF ABBREVIARIONS
JS: JavaScript
xi
CHAPTER 1: GENERAL INTRODUCTION
In INES restaurant menu ordering is relying on the interaction with waiters to place
order intothe kitchen. In busy hours of restaurant this coordination is a challenge result
in dissatisfaction to the customer. And this result also courses the late of payments as
well as the exchanging cash in hand. This system came up with the innovation of
making the payments using RFID card and USSD to top up account as well as using
LCD to display and select available menu or to request a customer menu.
Traditionally the method in which customers specify their desired menu to the waiter
who takes the order on a paper personally, then takes the order to the kitchen
department and then they supply the order to the customer. So, it was a time-
consuming process.
30
It leads to wastage of paper and also it requires reprinting of all menu cards. Also, in
many cases for small change to be made in menu card it is not convenient to print all
menu cards again and again. Simply saying that the menu card once printed can’t be
changed. After some days, the menu card lost its worthy look and attractiveness.
The general objective of this project is to develop a smart restaurant menu ordering
system using arduino.
a) Designing user friendly admin panel and user panel for menu ordering system
(Web interface).
d) Designing the Arduino system for making payments of orders using RFID cards.
30
1.4 Research question
A. How RFID card technology can be used to make payments to ordered menu?
B. What are the benefits of using USSD to top up and check balance on card?
C. How can restaurant owner and manager control and monitor their restaurant daily
records and daily report?
A. Technology is used to allow customers to select menu and menu items from smart
screens via friendly user panel.
B. The benefits that may be achieved using Arduino chips, Node MCU ESP8266
WIFI, RFIDs and LCD in order to help both restaurant owner and customers to get
and provide efficient services.
C. Restaurant owner/manager can control and monitor their restaurant daily records
and daily report.
D. USSD can be used to top up the amount as well as checking the balance.
Global ICT policies have become more mainstream in the last decade underpinning
growth, jobs, increasing productivity, enhancing the delivery of public and private
services, and achieving broad social-economic objectives in the areas of health care,
education, climate change, energy, employment and social development. As such, the
global ICT industry is fast changing as a result of emerging technologies, economic,
social and business trends. As ICT applications and services are becoming ubiquitous,
they are increasingly essential for ensuring sustainable economic development, and
Rwanda is no exception.
30
The Government of Rwanda (GoR) strongly believes thatInformation and
Communication Technology (ICT) can enable Rwanda leap-frog the key stages of
industrialization. As such, GoR has integrated ICTs, through the NICI process, as a
key driver for social-economic development to fast-track Rwanda’s economic
transformation, and consistently strives to align the country’s development agenda to
global trends in order to be competitive(NICI, 2015).
1.7Significance study
As ICT and IoT applications and services are becoming ubiquitous, a proposed
system plays ICT role in restaurants to applying cashless as well as implementing
smart campus strategy as vision INES-Ruhengeri as well as our country.
Shifting academic skills from the paper into real world to help the community
problem especially INES-Ruhengeri to make smart campus.
This study can help INES restaurant owner to control the walk-flow of restaurant and
have benefit to the customers of the restaurant to select available menu and make
customized menu at any time.
This study concerned itself to observe and interviewing different stages which related
to restaurant activities especially menu ordering, payment management and report
management.
The limit of this research concerns on time, money and hardware material andonly
focus on INES restaurant and its customers which limits the findings of this study.
This research was covered in two months to be completed.
1.9 Methodology
30
1.9.2 Software Requirements
Several software was used in order to achieve the objective, those used software are
including Google chrome, Firefox ESR as web browser, python3.9, PostgreSQL,
Arduino IDE, visual studio code, WPS Writer, MS office, Dbeaver, Projectlibre and
Kali Linux OS.
This system run on different web browser like Google chrome, Firefox, internet
explorer, Safari, Microsoft edge, Opera..., and run in different operating system like
Linux OS, Android, Windows OS Mac OS.
Chapter II. Literature review, this chapter offers theoretical concepts, fundamentals
tools and languages that support this project during development process.
Chapter IV. Design and Implementation, this chapter focus and describe the design
and Implementationproject.
30
CHAPTER 2: LITERATURE REVIEW
Other available menu ordering system: Moreover, starting from the time when it is
realized that hospitality services have great impact on restaurant business transaction,
many new ordering and services scheme has been proposed up till now.
Traditional ordering system (Paper based menu card): It is the method in which
customers specify their desired menu to the waiter who takes the order on a paper.
Personally he then takes the order to the kitchen department and then he supply the
food item to the customer. So it was a time consuming process. It leads to wastage of
paper and also it requires reprinting of all menu cards. Also, in many cases for small
change to be making in menu card it is not convenient to print all menu cards again
and again. Simply saying that the menu card once printed can’t be changed. After
some days the menu card lost its worthy look and attractiveness. Self Service or self-
ordering system in restaurants refer to the restaurants taking order from customers
using technologies such as the internet, kiosks etc. Usually the users prefer self-
service because of speed and convenience in making order and transaction while
minimizing the miscommunication(Patel, 2015).
30
2.2.2 RFID Tags
RFID Tags are small objects that contain a chip and antenna for WIFI to identify
RFID object.
Node MCU V3 is an open source IoT stage. It utilizes the Lua scripting dialect. The
Lua venture is the premise of board, and based on the ESP8266 SDK 1.4. Node MCU
utilizes many open sources. The Node MCU continues running on the ESP8266 Wi-Fi
Source module. In this board, the advertisements USB/UART converter chip and also
decoupled LDO control supply. Likewise, the board includes 2 smaller than usual
push catches.The ESP8266 is the name of a micro controller designed by Espressif
Systems. The ESP8266 itself is a self-contained WiFi networking solution offering as
a bridge from existing micro controller to WiFi and is also capable of running self-
contained applications. This module comes with a built in USB connector and a rich
assortment of pin-outs. With a micro USB cable, you can connect NodeMCU devkit
to your laptop and flash it without any trouble, just like Arduino. It is also
immediately breadboard friendly(Adnan, 2018).
2.2.4 Python3.9
30
2.2.5 Django
Django is a free open source and high-level Python web framework that enable rapid
development of secure and maintainable website, Its high-level built-in data structure
combined with dynamic typing and binding that make django very attractive for rapid
application. (Zen, 2018)
2.2.6 SQLite
2.2.7 Normalization
2.2.8 Database
The front end is the interface of a system. Front-end web development, also known as
client-side development is the practice of producing HTML and CSS for a website or
Web Application so that a user can see and interact with them directly. The challenge
associated with front end development is the tools and techniques used to create the
front end of a website change constantly.
30
2.2.10 Back End
The back end refers to parts of a computer application or a program's code that allow
it to operate and that cannot be accessed by a user. Most data and operating syntax are
stored and accessed in the back end of a computer system. Typically, the code is
comprised of one or more programming languages. The back end usually consists of
three parts: a server, an application, and a database. Back-end developers write code
that makes it all work (Toby, 2001).
2.2.11 PostgreSQL
30
2.2.13 Arduino IDE 1.8.0
30
CHAPTER 3: RESEARCH METHODOLOGY
The general objective of this study is to make smart restaurant menu ordering system
using arduino, by conducting this research different methodology has been used
including data collection, software development methodology and system design.
3.1.1Flowchart of methodology
The flowchart below is showing the flows and step by step to conduct this study.
30
3.2 Data collection technique
3.2.1 Observation
3.2.2 Documentation
This technique of collecting data had permit the researchers to consult scientific books,
newspapers, memoirs, class notes, web pages, and papers related to the subject of the
project (Morrison, 2009).
Agile model is a combination of iterative and incremental process models with a focus
on process adaptability and customer satisfaction by rapid delivery of working
software product. Agile Methods break the product into small incremental builds.
Each iteration typically lasts from about one to three weeks. The iterative approach is
taken and working software build is delivered after each iteration (Ruparelia, 2010).
30
3.3.1.1 Agile software development sprint planning
Within the agile SDLC (System Development life cycle), work is divided into
sequential development phases and sprints, with the goal of producing a working
product.
Planning Phase
Planning is a project planning method that estimates work using self-contained work
units called iterations or sprints. This phase defines which items are done in each
sprint, and creates a repeatable process, to help developer to learn how much to
achieve.
Requirement analysis is used for determine requirements for develop Smart restaurant
menu ordering system (Smart-RMO) to be used by both restaurant owner and their
customers. The possible requirements of the system to be captured in this phase are
captured by using flow-charts and use case diagram. The essential purpose of this
phase was to find the needs and define the problem that needs to be solved.
System design Phase
During conducting this project, this phase used for designing documents are prepared
as per the requirement specification document. System design helps in specifying
hardware and system requirements and also helps in defining overall system
architecture.
Implementation Phase
As the aim of this phase is to translate the design into real the design into the working
project using different tools, programming and scripting languages and framework
such as Arduino IDE, Django, Python, HTML, PostgreSQL, SQLite.
Testing Phase
After, project completion,it is deployed in testing environment. The testing team starts
testing the functionality of the entire system. This is done to verify that the entire
application works according to the customers and restaurant owner’s need.
30
During this phase, fix the errors now system is Stable, and working, Now Smart-RMO
(Smart restaurant menu ordering system) is deployed on heroku and is running on:
http://smartrmo.herokuapp.com
Maintenance Phase
After all, above phase what next is to keep system up to date to satisfy system users
and hand any errors and resolve any issue that may exist in system, in this
maintenance phase, updates and upgrades are very useful point to keep in mind.
This system run on different web browser like Google chrome, Firefox, internet
explorer, Safari, Microsoft edge, Opera..., and run in different operating system like
Linux OS, Android, Windows OS Mac OS and this system run in device screen size.
30
MFRC522 RFID Reader
Bread Board
Telephone.
3.5.3 Frameworks
Django
Bootstrap
Python 3.9
Arduino 1.8
JavaScript 2.2
30
CHAPITER 4: DESIGN AND IMPLEMENTATION
The LCD shows the available menu and menu items with picture of menu, that allow
customer to select one or more menu then customer can make order.
This is key part of this project where all functionality of this system is based as
illustrated in figure 8: Arduino part block diagram.
30
Figure 6: Arduino part block diagram
The figure below illustrates circuit diagram of arduino part of the system and show the
installation of ESP8266 with RFID RC522.
30
4.1.3 System server
The system server is the machine that store the database of this system, for this study
the system can run on 127.0.0.1:/8000 and http//:smartrmo.herokuapp.com which can
be accessed by system users especially restaurant manager and or restaurant owner.
The users of this system are those who use this system like Customer (Students or
Staff), These users include the following:
Restaurant Owner: is the administrator of the system who has all privileges and
grant and revoke the privileges to the other users.
Restaurant Customer:Customers are those who use the restaurant by viewing the
menu, making orders and make payment.
Restaurant Kitchen keepers: Kitchen keeper are the restaurant employees that
interact with this system by delivering the ordered order.
30
4.3 Use case diagram.
The figure below shows all users of the system and show their roles and how each use
of the system can access the system.
30
4.4.1.1 Conceptual Data Model of Smart-RMO by the help of ERD
Moreover, as the main purpose of this conceptual data modeling is to analyze the
schema situation on paper and create the conceptual database, First, is to create the
entities (tables), which are Customer, Menu, Order, Payment, Abonoment, Category,
CardNumber, and authentication-users.
The second, is to create the attributes for each entity such as for entity Customer (id,
first_name, last_name, reg_no, image and category_id), for entity of Menu (id, name,
price, ingredient, created_by, created_at), for entity of Order (id, name, created_by_id,
and created_at), for entity of Payment (id, paid_by, order, amount), for entity of
Abonoment (id, category), for entity of provinces (id, and name), for entity of districts
(id, name, and province), for entity of sectors (id, name, and district), for entity of
cells (id, name, and sector), and for entity of authentication-users (id, password, last-
login, is-superuser, first-name, last-name, phone, email, category, gender, is-staff, is-
active, and date-joined).
Then, by creating the relationship between the entities and their related entity, Here,
there are the entities which has relation with other entities as well as they related with
others through the attributes respectively such as illustrated in figure:10, and figure:12.
Each entity is associated to its belonging entity that its information by including either
one to one or one to many relationships.
30
4.5 Data flow diagramof SmartRMO
Data flow diagram (DFD) illustrate the follow of this system to all system actors. Here
manager can login to the system so that he or she can manage customers, menus,
orders, payment, reporting view notifications and logout. While the customers can
view menu on menu page, make orders, and make payments.
30
4.6.1 ERD for SmartRMO
For the help of this graphical representation shows system entities and their
relationship as shown in figure 13: ERD for SmartRMO, that shows the relations
between entities such as order, customers, menu, category, payment.
Web interface is the font-end of the system that help system users to interact with the
system and perform their different functionality according to the privileges and access
level. This interface is designed in GUI (Graphical User interface) which is user-
friendly to the customer as well as to the Manager/Owner.
30
4.7.1 Manager/Owner Login
The Figure15: Add/Create menu shows how to add menu to the system to be
displayed on menu page. Here manager can add menu image, name of menu, set price
and list the ingredients that made that menu.
30
Figure 13: Add/Create menu
30
4.7.3 Add new customer
The Figure16: Add new customer, shows how the manager can register the customers
to the system by recording customer’s fist name, last name, registration number,
category and profile picture.
The home page is the main web page of a website that always shown in a web browser
when the application starts up. The home page of this system is shown in figure below.
30
4.7.5 Menu Page.
The Figure: Menu Page shows smart menu card to show the available menu and the
ingredient that made each menu, on this page a customer now can choose one menu
and can order that menu.
The figure 18 shows all available menu from menu page then the customer may click
to order now button to select and send the order, the figure 19 illustrate how the
customers can enter PIN that related to their cards to confirm the order.
30
After entering PIN that related to the card to confirm the order, the user Tap a card to
RFID reader to pay the order, as shown in figure below that gives the response to the
customer if payment successfully or failed in case of insufficient balance and if card is
valid, registered or not and if the order was selected.
The figure: 20 shows the feedback on serial monitor for different status of payments
after tapping the card and processing the payment procedures.
30
4.7.7 USSD top up and Check balance
The figure 21 illustrates the use us USSD (Unstructured Supplementary Service Data)
in this system, USSD is used for loading (top-up) and checking balance of the
customer. The Africa’s Talking plays role of testing USSD API.
30
Figure 20: Reporting and evaluation
CHAPTER 5: CONCLUSION AND RECOMMENDATION
5.1 Conclusion
As the general objective of the study was todevelopa smart restaurant menu ordering
system using Arduino, with the generally aim to exclude paper-based menu card and
talk and talk menu ordering which was done manually. This system was developed to
digitalize the menu cards avoid daily printing paper-based menu cards, no waiters
needed to talk and talk about the available menu, and no needs of cash payment the
customers pay by using smart card. This system comes to help customers, restaurant’s
employees and owner, but great opportunity to the owner to store restaurant’s
database and help the restaurant owner to make efficientevaluation and report using
admin panel of the system.
5.2. Recommendations
Based to the difficulties that met while conducting this research, It is pleasure and
honor to recommendINES RUHENGERI to install IoT laboratory that may help the
learners to develop small and large project of IoT by the help of campus laboratory
30
5.2.2. To INES Ruhengeri’s Restaurant owner
5.2.3. To Customers
It is pleasure and honor to recommend the next researchers to continue to work on this
application mainly following features:
Next researcher should integrate the automatic convey to convey customer’s order on
their tables after making the order on table authentically.
Add SMS get way for both customers and restaurant owners.
30
REFERENCES
Chowdhary, J. (2009). Html5 and javascript web apps. Tokyo: Asia Publishing House.
pp 453.
30
Ruparelia, N. B. (2010). Programming methodology tutor bits. Journal of Computer
and Technology, 6(3)23-25.
Gikandi, G. (2020). Africans's talking: Design theory analysis for ussd. London: Spon
Press. pp 987.
Nawy, E. G. (2008). Systems development life cycle (sdlc) models. Chicago: CRC
Press. pp 76- 77.
Angell I, K. J. (2006). Rfid and the end of cash. Communications of the acm Journal
of Computer Engineering, 3(1), 23-25.
30
APPENDICES
30
Appendix A: ARDUINO CODE
/*For more info visit my github on: https://github.com/Dusipaul/SmartRMO.git
-------------------------RFID_NodeMCU/RFID_NodeMCU.ino-------------------------
##############################################
# Installation : #
# D2 <----------> SDA/SS #
# D5 <----------> SCK #
# D7 <----------> MOSI #
# D6 <----------> MISO #
# D1 <----------> RST #
# 3V/3V3<---------> 3.3V #
##############################################
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ## # # # # # # # # #
*/
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include <SPI.h>
30
#include <MFRC522.h>
//---------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------//
int readsuccess;
byte readcard[4];
String StrUID;
//------------------------------------------------SETUP-------------------------------------------//
void setup() {
Serial.println("---------------------------");
buffer[len*2] = '\0';
}/*------------------------------------END of RFID_NodeMCU.ino------------------------*/
30
Appendix B: DJANGO/PYTHON CODE
/*-----------------------------------view.py-------------------------*/
import json
def homepage(request):
menus=Menu.objects.all()
context={
'menus':menus
@csrf_exempt
if request.method == "POST":
30
comment = request.POST.get("comment") or ""
try:
order = Order()
order.menu = menu_obj
order.customer = card_by_pin
order.comment = comment
order.save()
message = "Order sent successfully Please TAP YOUR CARD to GET your
order"
messages.success(request, message)
except Exception as e:
else:
if orders:
30
Appendix C: USSD CODE
/*----------------------------------------------ussd-api.py---------------------------------------*/
import uuid
import string
import random
def initialMenu():
return response
#####################################################################
@csrf_exempt
def ussdAPI(request):
if request.method == 'POST':
session_id = request.POST.get('sessionId')
service_code = request.POST.get('serviceCode')
phone_number = request.POST.get('phoneNumber')
userResponse = userInput(text,-1)
30
new_action = onBack(text)
phone = preparePhone(phone_number)
response=""
#ussd_session=Session.objects.filter(session=session_id).filter(phone=phone).first()
if text == "":
response = initialMenu()
pin = CardNumber.objects.filter(pin=req_pin).first()
if pin:
else:
prev = CardNumber.objects.filter(pin=req_pin).first()
prev.save()
if prev:
else:
30
response = "END Top up failed! \n try again"
card = CardNumber.objects.filter(pin=req_pin).first()
if card:
else:
else:
return HttpResponse(response)
else:
30