0% found this document useful (0 votes)
18 views

ASmart Restaurant Menu Ordering Systemusing Arduino

This document describes a research project that developed a smart restaurant menu ordering system using Arduino. The system allows a restaurant to digitize their menu ordering and payment processes. It includes features like displaying the menu on a screen for customers to order from, allowing customers to charge accounts and make payments using RFID cards, and giving the restaurant owner and manager tools to monitor daily records and generate reports. The project used an agile development methodology and tools like Django, Python, SQL, and Arduino programming. It aims to address inefficiencies in the restaurant's previous manual system by streamlining processes and making reporting easier.

Uploaded by

Abhishek Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

ASmart Restaurant Menu Ordering Systemusing Arduino

This document describes a research project that developed a smart restaurant menu ordering system using Arduino. The system allows a restaurant to digitize their menu ordering and payment processes. It includes features like displaying the menu on a screen for customers to order from, allowing customers to charge accounts and make payments using RFID cards, and giving the restaurant owner and manager tools to monitor daily records and generate reports. The project used an agile development methodology and tools like Django, Python, SQL, and Arduino programming. It aims to address inefficiencies in the restaurant's previous manual system by streamlining processes and making reporting easier.

Uploaded by

Abhishek Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/356682466

A SMART RESTAURANT MENU ORDERING SYSTEM USING ARDUINO

Book · February 2020

CITATIONS READS

0 7,438

3 authors, including:

Dusingiziamana Jean Paul


Institut d'Enséignement Supérieur de Ruhengeri
1 PUBLICATION 0 CITATIONS

SEE PROFILE

All content following this page was uploaded by Dusingiziamana Jean Paul on 01 December 2021.

The user has requested enhancement of the downloaded file.


INSTITUT D’ENSEIGNEMENT SUPÉRIEUR DE RUHENGERI

Accredited by Ministerial Order N° 005/2010/Mineduc of 16 June 2010


Scientia etLux

FACULTY OF APPLIED FUNDERMENTAL SCIENCES

DEPARTMENT OF COMPUTER SCIENCE

OPTION OF INDUSTRIAL IT

A SMART RESTAURANT MENU


ORDERING SYSTEM USING ARDUINO

CASE STUDY: INES-RUHENGERI

A dissertation submitted in partial fulfillment of the requirements for


the award of a Bachelor’s degree of science in Computer Science with
honours of Industrial IT

By: DUSINGIZIMANA Jean Paul

Reg.No: 18/12060

Supervisor: NSENGIYUMVA Emmanuel


B.P. 155
Ruhengeri
Rwanda
Musanze, February 2021 T: +250 788 90 30 30
: +250 788 90 30 32
E :inesruhengeri@yahoo.fr

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.

The candidate name: DUSINGIZIMANA Jean Paul

Signature of the candidate: ...............................................................................................

Date of submission: ..........................................................................................................

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.

The supervisor’s name: NSENGIYUMVA Emmanuel

Signature of the supervisor: ..............................................................................................

Date of submission: ..........................................................................................................

iii
DEDICATION

This dissertation
dedicated to:

My Parents,

My Supervisor,

My fellow Students,

My Aunts and Uncle,

My Brothers and Sisters,

One & Only.

iv
ACKNOWLEDMENTS

This work is conducted through the contribution of several people who has spent their
time helping me to carry out this study.

I would like to make acknowledgement to my supervisor NSENGIYUMVA Emanuel


for his help and contributions of his supervision, also i make acknowledgement to my
fellow classmate for their support and ideas.

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

INES-Ruhengeri’s restaurant is using a manual system for performing all restaurant


activities include menu ordering, payment, menu card and evaluation where more time,
paper and notebooks are used this cause the hardness of printing annual, monthly or
daily report in case of evaluation and reporting and this cause injustice cases. In this
system, restaurant owner and manager control and monitor their restaurant daily
records and daily report, while the customers can be able to charge their accounts by
using USSD code and make payments by using RFID cards, and menu can be
displayed on screen to allow the customers to make their orders. The software
development methodology used in this project is” the agile model” There are usually
stages in this cycle: requirement analysis, design, testing, implementation,
maintenance which was used for development of this project, and for more about agile
model use in this research are explained in chapter 3.this application for front-end
designed in Django framework that combine HTML, CSS, JS and bootstrap as
scripting and makeup languages. The back end of the system is builds in
Sqlite3(127.0.0.1, offline), PostgreSQL(heroku) as databases, python and Arduino, as
main programming languages.

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

CHAPTER 1: GENERAL INTRODUCTION...........................................................1

1.1 Background of the study...........................................................................................1

1.2 Problem statement.................................................................................................... 1

1.3 Research objectives.................................................................................................. 2

1.4 Research question..................................................................................................... 3

1.5 Research hypotheses.................................................................................................3

1.6 Choice of study......................................................................................................... 3

1.7 Significance study.....................................................................................................4

1.8 Study delimitation.....................................................................................................4

1.9 Methodology.............................................................................................................4

1.10 Organization of the Study.......................................................................................5

CHAPTER 2: LITERATURE REVIEW................................................................... 6

2.1 General Introduction.................................................................................................6

2.2 Definition of key terms.............................................................................................6

vii
CHAPTER 3: RESEARCH METHODOLOGY..................................................... 11

3.1 General introduction............................................................................................... 11

3.2 Data collection technique....................................................................................... 12

3.3 System development methodology.........................................................................12

3.4 System Requirements............................................................................................. 14

3.5 Tools and languages............................................................................................... 14

CHAPITER 4: DESIGN AND IMPLEMENTATION............................................16

4.1 Physical design of Smart-RMO.............................................................................. 16

4.2. System users.......................................................................................................... 18

4.3 Use case diagram.................................................................................................... 19

4.4 Modeling concepts..................................................................................................19

4.5 Data flow diagram of SmartRMO.......................................................................... 21

4.6 Entity-relationship design.......................................................................................21

4.7 Web interface design.............................................................................................. 22

CHAPTER 5: CONCLUSION AND RECOMMENDATION............................... 29

5.1 Conclusion.............................................................................................................. 29

5.2. Recommendations..................................................................................................29

REFERENCES........................................................................................................... 31

APPENDICES.............................................................................................................33

viii
LIST OF FIGURES

Figure 1: NodeMCU ESP8266...................................................................................... 7


Figure2: Arduino IDE..................................................................................................10
Figure3: Flowchart of research methodology..............................................................11
Figure4: Agile Model...................................................................................................12
Figure5: Physical design of SmartRMO......................................................................16
Figure6: Arduino part block diagram.......................................................................... 17
Figure7: Arduino part of Circuit Diagram...................................................................17
Figure8: Use case diagram...........................................................................................19
Figure9: ERD Conceptual Model................................................................................ 20
Figure10: Data flow diagram of SmartRMO...............................................................21
Figure11: ERD for SmartRMO....................................................................................22
Figure12: System login form....................................................................................... 23
Figure13: Add/Create menu.........................................................................................24
Figure14: Add new customer.......................................................................................25
Figure15: Home Page.................................................................................................. 25
Figure16: Menu Page...................................................................................................26
Figure17: Customer PIN insertion...............................................................................26
Figure18: Payment feedback messages....................................................................... 27
Figure19: Top-up and check balance on card..............................................................28
Figure20: Reporting and evaluation............................................................................ 29

ix
LIST OF APPENDICES

Appendix A: ARDUINO CODE....................................................................................a


Appendix B:DJANGO/PYTHON CODE......................................................................c
Appendix C:USSD CODE.............................................................................................e

x
LIST OF ABBREVIARIONS

API : Application Programming Interface.

CSS : Cascading Style Sheet.

DFD :Data Flow Diagram.

ERD:Entity Relationship Diagram.

HTML: Hyper Text Markup Language.

ICT : Information and communications technology

IDE: Integrated Development Environment.

INES : Institut d’Enseignement Supérieur .

IoT: Internet of things

JS: JavaScript

RFID: Radio Frequency Identification.

MCU: Micro Controller Unit.

OS: Operating System.

GoR: Government of Rwanda.

LCD:Liquid Crystal Display.

RMO :Restaurant Menu Ordering.

SQL: Structure Query Language.

USSD: Unstructured Supplementary Service Data.

WIFI: Wireless fidelity.

xi
CHAPTER 1: GENERAL INTRODUCTION

This chapter, is discussing to the following concepts: Background of the study,


Problem statement, Research objectives, Methodology,Research question, Research
hypothesis, Choice of the study, Choice of the study, Study delimitation,Study
schedule and project management and Organization of the Study.

1.1 Background of the study

Popularity of restaurants has increased in recent years. The general practice in a


restaurant involves the customer makingtheir orders and waiting for the ordered meal.
However, the complaints received from customers regarding services offered in
restaurants has increased too, this feeling of dissatisfaction is caused by many reasons,
namely, delay in delivering customer’s order, mismatch of customer’s orders, time
consumption while recording customer’s order and payment process. Advancement in
communication technologies can be used to resolve these issues. Accordingly, this
removing the limitations in the menu ordering process, with the help of an integrated
and networked system. This system involves the use of LCD monitors for undertaking
the menu ordering process in restaurants(Abish G, 2017).

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.

1.2 Problem statement

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.

INES-RUHENGERI’s restaurantis managing their work-flow and services by paper


and manually which take time and high budget for management. busy day of people
schedule and value of time become important day by day and the customer of this
restaurant increase due to those busy day and schedule, manager is busy while
recording each customer’s activities manually with pen and set of books.

1.3 Research objectives

1.3.1 General objective

The general objective of this project is to develop a smart restaurant menu ordering
system using arduino.

1.3.2 Specific Objectives

a) Designing user friendly admin panel and user panel for menu ordering system
(Web interface).

b) Developing USSD used to top up and check balance on card.

c) Designing Subscribe Module where the subscribed clients can be recorded.

d) Designing the Arduino system for making payments of orders using RFID cards.

e) Increase efficiency detailed daily, monthly or annual records and reporting.

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?

1.5 Research hypotheses

This research base on the following hypotheses:

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.

1.6 Choice of study

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.

Adopted in 2000, Vision 2020 aims to transform Rwanda into a middle-income


country and transition her agrarian economy to an information-rich, knowledge-based
one by 2020.

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.

1.8 Study delimitation

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

1.9.1 Research Methodology

An Observation has conducted by visiting the restaurant to observe the problems,


difficulties and how it works by taking notes of how the restaurant serves the needs of
its customers.

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.

1.9.3 System Requirements

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.

1.10Organization of the Study

The project is organized in five chapters as follows:

Chapter I. General Introduction, this chapter is focusing on Objectives of the project,


Problem statement, and Interest of the project, Hypothesis and Methodology of the
project.

Chapter II. Literature review, this chapter offers theoretical concepts, fundamentals
tools and languages that support this project during development process.

Chapter III.Research Methodology, this chapter focus on software development


methodology used on this project and the data gathering techniques.

Chapter IV. Design and Implementation, this chapter focus and describe the design
and Implementationproject.

Chapter V. Conclusion and Recommendations, the last chapter ismade up of the


conclusion and recommendation for further improvements of the software.

30
CHAPTER 2: LITERATURE REVIEW

2.1 General Introduction

This chapter, is discussing the following concepts: General Introduction and


Definition of key terms.

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.

These menu ordering techniques are as follows:

1. Paper based menu card.

2. Self-service food ordering technology.

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).

2.2 Definition of key terms

2.2.1 RFID reader

A radio-frequency identification (RFID): is a technology that uses electromagnetic


field to automatically identify and track tags attached to objects. An RFID tag consist
on a tiny radio transponder; a radio transmitter and radio receiver(Angell I, 2006).

30
2.2.2 RFID Tags

RFID Tags are small objects that contain a chip and antenna for WIFI to identify
RFID object.

2.2.3 Node MCUESP8266

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).

Figure 1: NodeMCU ESP8266

2.2.4 Python3.9

Python is high-level, interpreted and general purpose programming language with


dynamic semantics. It is easy to learn syntax emphasize readability and reduces cost
of program or project maintenance (Thepsf, 2007).

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

SQLite is an in-process library that implements a self-contained, server-less, zero-


configuration, and transaction SQL database engine. SQLite is a compact library and is
in public domain and is thus free for use for any purpose, commercial or private.

2.2.7 Normalization

Database normalization is the process of restructuring a relational database in


accordance with a series of so-called normal forms in order to reduce data redundancy
and improve data integrity, Normalization is a database design technique that
organizes tables in a manner that reduces redundancy and dependency of data (Kolahi,
2007).

2.2.8 Database

A Database is an organized, structured set of data stored in computer, especially


accessible in various ways.

2.2.9 Front end

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

PostgreSQL is the world's most advanced open-source database, with a global


community of thousands of users, contributors, companies and organizations. The
PostgreSQL Project builds on over 30 years of engineering, starting at the University
of California, Berkeley, and has continued with an unmatched pace of development.
PostgreSQL's mature feature set not only matches top proprietary database systems,
but also exceeds them in advanced database features, extensibility, security and
stability. (Borodin, 2017).

2.2.12 Africa's Talking

Africa's Talking is a Kenya-based mobile solutions firm integrating reliable two-way


SMS, voice, and USSD functionality across mobile providers in Africa. The firm
offers bulk SMS, short codes, and premium SMS, USSD, MMS, and customized
mobile messaging solutions for individuals, businesses, and developers (Gikandi,
2020).

30
2.2.13 Arduino IDE 1.8.0

“The Arduino Integrated Development Environment - or Arduino Software (IDE)


contains a word processor for creating code, a message zone, a substance console, a
toolbar with gets for typical limits and a movement of menus”. It accomplices with the
Arduino and Genuino equipment to trade projects and converse with them.

Figure 2: Arduino IDE

30
CHAPTER 3: RESEARCH METHODOLOGY

3.1 General introduction

This chapter, is discussing the following concepts: Flowchart of methodology, Data


collection technique, System development methodology, System Requirements, Tools
and languages.

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.

Figure 3: Flowchart of research methodology

30
3.2 Data collection technique

3.2.1 Observation

Observation research is a qualitative research technique where researchers observe


participants’ ongoing behavior in a natural situation. By conducting this research
observation method used. The purpose of using this research method is together more
reliable insights. In other words, i have collected the data Restaurant of how they work
and what customers need by doing 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).

3.3 System development methodology

3.3.1 Agile model

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).

Figure 4: Agile Model

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.

Requirements analysis Phase

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.

3.4 System Requirements

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.

3.5 Tools and languages

This research and Smart Restaurant Menu Ordering system (A Smart-RMO)


developed with the help of different tools which divided into two categories and
different framework.

3.5.1 Software Tools

Text editor: Visual Studio Code Editor, Arduino IDE.

Operating System: Kali Linux.

Database: SQLite, PostgreSQL.

Servers: Localhost, Heroku.

3.5.2 Hardware Tools

Computer: Laptop and Desktop

Server: Linux (localhost and Heroku)

Node MCU ESP8266 Wi-Fi

Micro USB Cable

30
MFRC522 RFID Reader

RFID Tags/ RFID Card (13.56 MHz)

Bread Board

Telephone.

3.5.3 Frameworks

Django

Bootstrap

3.5.4 Programming Languages

Python 3.9

Arduino 1.8

JavaScript 2.2

30
CHAPITER 4: DESIGN AND IMPLEMENTATION

This chapter, is discussing to the following concepts: Physical design of Smart-RMO,


System users, Use case diagram, Modeling concepts, Data flow diagram of
SmartRMO and Entity-relationship design.

4.1Physical design of Smart-RMO

Figure 5: Physical design of SmartRMO

4.1.1 LCD Menu Displayed

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.

4.1.2 Arduino system

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

4.1.3 Arduino part Circuit Diagram and installations

The figure below illustrates circuit diagram of arduino part of the system and show the
installation of ESP8266 with RFID RC522.

Figure 7: Arduino part of Circuit Diagram

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.

4.2. System users

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 Manager: is the people in charge of managing the Restaurant activities,


includes managing payments, menu, orders, report, customers..., Manager has a
privilege of create, delete, read, update the menu, order...according to granted
privileges.

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.

Figure 8: Use case diagram

4.4 Modeling concepts

4.4.1 Conceptual model data

A Conceptual Data Model is an organized view of database concepts and their


relationships. The purpose of creating a conceptual data model is to establish entities,
their attributes, and relationships. In this data modeling level, there is hardly any detail
available on the actual database structure.
The three basic tenants of Conceptual Data Model are:
Entity: A real-world thing
Attribute: Characteristics or properties of an entity
Relationship: Dependency or association between two entities

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.

Figure 9: ERD Conceptual Model

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.

Figure 10: Data flow diagram of SmartRMO

4.6 Entity-relationship design

An entity-relationship diagram (ERD) is a graphical representation of an information


system that shows the relationship between people, objects, places, concepts or events
within that system. An ERD is a data modeling technique that can help define system
processes and can be used as the foundation for a relational database.

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.

Figure 11: ERD for SmartRMO

4.7 Web interface design

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

System login is authentication form of the user by identifying them according


username or email and password.

Figure 12: System login form

4.7.2 Add/Create Menu.

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.

Figure 14: Add new customer

4.7.4 Home Page of the system.

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.

Figure 15: Home page

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.

Figure 16: Menu page

4.7.6 Payment of selected order

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.

Figure 17: Customer PIN insertion

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.

Figure 18: Payment feedback messages

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.

Figure 19: Top-up and check balance on card

4.7.8 Reporting and evaluation

As illustrated in specific objective of this research in chapter 1 this system Increase


efficiency of detailed daily, monthly or annual records and reporting as shown in
figure below named figure 22: Reporting and evaluation, that show how the manager
can print pdf report or csv format of reporting purpose and evaluation. By click on
Print PDF and CSV buttons selected report start to be downloaded in pdf or in csv
format.

30
Figure 20: Reporting and evaluation
CHAPTER 5: CONCLUSION AND RECOMMENDATION

This chapter, is discussing to the following concepts: 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

5.2.1. To INES RUHENGERI

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

It is pleasure and honor to recommendINES Ruhengeri’s Restaurant ownerto use this


new systemthat may be helpful to restaurant owner to get all information on
dashboard and it is easy to use.Customers are supposed to be registered and get a card
once and use it forever, no more pain of recording new list, new paper-based menu
cards, no more talk and talk menu ordering between waiters and customers and this
reduce time conception for providing better and quick services to minimize the time,
cost and overcome the injustice issues.Digitizationof restaurant of INES to implement
the smart campus.Easy reporting and evaluation.

5.2.3. To Customers

It is pleasure and honor to recommend INES Ruhengeri’s Restaurant customers to use


this new systembecause it is helpful to them and it is easy to use.

It has developed toovercome injustice cases.

Easy to use and make evaluation.

5.2.4. To next researchers

It is pleasure and honor to recommend the next researchers to continue to work on this
application mainly following features:

To work on this application’s security to hackers.

This application should continue to create newinnovation.

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

Abarina, M. R. (2018). Structural smart restaurant menu ordering. United Kingdom:


Thomas Telford. pp 497.

Hartmann, A. (2011). Cross-platform mobile development. International Journal of


Research in Engineering, 4(3), 68-97.

Abarina, M. R. (2018). Restaurant management system.Tamilnadu: Science


Engineering Research Publishers. pp 83-94.

Chowdhary, J. (2009). Html5 and javascript web apps. Tokyo: Asia Publishing House.
pp 453.

Adnan, A. (2018). Esp8266 nodemcu wifi devkit. Teptechnology Journal of Computer


and System, 8(1), 3-7.

Batrinca, B (2015). Social media analytics. International Journal of Research in


Engineering, 7(3), 564-591.

Angell I, K. J. (2006). SQL: From traditional databases to big data. Communications


of the acm Journal of Computer and System, 3(1), 23-25.

Kaminetzky, D. (2001). Design and construction nodemcu: Lessons from forensic


investigations. noida: Galgotia Publications. pp 243-310.

Kotsovos, M. D. (2018). Structural smart restaurant: Finite-element analysis for


limit-state design. United Kingdom: Thomas Telford. pp 497.

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.

Kolahi, S. (2007). Dependency-preserving normalization of relational and xml data.


Journal of Computer and Sciences, 6(3) 23-25.

Mosley, M. (2012). Reinforced concrete design: To eurocode 2. Chicago: Palgrave


Macmillan. pp 65-68.

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-------------------------

##############################################

# RFID MFRC522 / RC522 Library : https://github.com/miguelbalboa/rfid #

# Installation : #

# NodeMCU ESP8266/ESP12E RFID MFRC522 / RC522 #

# D2 <----------> SDA/SS #

# D5 <----------> SCK #

# D7 <----------> MOSI #

# D6 <----------> MISO #

# GND <----------> GND #

# D1 <----------> RST #

# 3V/3V3<---------> 3.3V #

##############################################

# Let's go to the code @Jean Paul #

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ## # # # # # # # # #

*/

//----------------------------Include the NodeMCU ESP8266 Library----------------------//

#include <ESP8266WebServer.h>

#include <ESP8266HTTPClient.h>

//--------------------Include the SPI and MFRC522 libraries---------------------------------//

#include <SPI.h>

30
#include <MFRC522.h>

//---------------------------------------------------------------------------------------------------//

#define SS_PIN 4 //--> SDA / SS is connected to pinout D2

#define RST_PIN 5 //--> RST is connected to pinout D1

MFRC522 mfrc522(SS_PIN, RST_PIN); //--> Create MFRC522 instance.

#define ON_Board_LED 2 //--> Defining an On Board LED

//---------------------------SSID and Password of your WiFi router-------------------------//

const char* ssid = "Jean Paul’s 4G Network";

const char* password = "what_you_see_is_what_you_get";

//----------------------------------------------------------------------------------------------------//

ESP8266WebServer server(8000); //--> Server on port 8000

int readsuccess;

byte readcard[4];

char str[32] = "";

String StrUID;

//------------------------------------------------SETUP-------------------------------------------//

void setup() {

Serial.begin(9600); //--> Initialize serial communications with the PC

Serial.println("---------------------------");

SPI.begin(); //--> Init SPI bus

buffer[len*2] = '\0';

}/*------------------------------------END of RFID_NodeMCU.ino------------------------*/

30
Appendix B: DJANGO/PYTHON CODE
/*-----------------------------------view.py-------------------------*/

from django.http import HttpResponse

from django.shortcuts import render,redirect, get_object_or_404, HttpResponse

from .models import Customer, Order, Menu, Payment, CardNumber

from django.contrib.auth.models import User

from django.contrib.auth.forms import AuthenticationForm, UserCreationForm

import json

from django.contrib import messages

from django.views.decorators.csrf import csrf_exempt

# Create your views here.

def homepage(request):

menus=Menu.objects.all()

context={

'menus':menus

return render(request, 'restoking/index.html', context= context)

@csrf_exempt

def order(request, menu):

menu_obj = get_object_or_404(Menu, id=menu)

if request.method == "POST":

30
comment = request.POST.get("comment") or ""

pin = request.POST.get("pin") or None

UIDresult = request.POST.get("UIDresult") or None

if pin is not None:

try:

order = Order()

card_by_pin = get_object_or_404(CardNumber, pin=pin, active=True)

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:

return HttpResponse("Card not found")

else:

if orders:

for order in orders:

return render(request, "restoking/menu-detail.html", {'menu': menu_obj})

/*------------------------------------------END of View.py ------------------------------------*/

30
Appendix C: USSD CODE
/*----------------------------------------------ussd-api.py---------------------------------------*/

import uuid

import string

import random

# Create your views here.

def initialMenu():

response = "CON Smart-RMO \n"

response += "1. Top Up \n"

response += "2. Check Balance \n"

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')

text = request.POST.get('text') or ""

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()

elif text == "1":

response = "CON Enter PIN "

elif userInput(text, 0) == "1" and len(text.split("*")) == 2:

req_pin = userInput(text, -1)

pin = CardNumber.objects.filter(pin=req_pin).first()

if pin:

response = "CON Enter amount \n"

else:

response = "END INVALID PIN! \n"

elif userInput(text, 0) == "1" and len(text.split("*")) == 3:

req_pin = userInput(text, -2)

prev = CardNumber.objects.filter(pin=req_pin).first()

prev.balance = prev.balance + prepareInt(userInput(text, -1))

prev.save()

if prev:

response = "END Top up successfully! \n"

else:

30
response = "END Top up failed! \n try again"

elif text == "2":

response = "CON Enter PIN "

elif userInput(text, 0) == "2" and len(text.split("*")) == 2:

req_pin = userInput(text, -1)

card = CardNumber.objects.filter(pin=req_pin).first()

if card:

response = "CON Balance is: %s \n"%card.balance

else:

response = "END INVALID PIN! \n"

else:

response = "END Something went wrong \n try again later"

return HttpResponse(response)

else:

raise PermissionDenied("you are not allowed")

/*------------------------------------------END of USSD.py ----------------------------------*/

30

View publication stats

You might also like