-
vi
Hochschule Rhein-Waal
Rhine-Waal University of Applied Sciences
Faculty of Communication and Environment
Degree Program Information Engineering and Computer Science, M.
Sc.
Prof. Dr.-Ing. Sandro Leuchter
INTERNET OF THINGS
Food industry: SMART CAFE
Final Term Paper
WS 2014/2015
Module Applied Research Project B
by
Ali Abid Kazmi (Matriculation Number: 16269),
Muhammad Mohsin Reza (Matriculation Number: 16311),
Syed Raza Shahzaib (Matriculation Number: 16277), &
Bijen Hirachan (Matriculation Number: 16373)
-
vii
Summary
Internet of things is about introducing automation in
industries. In this paper we shall
target the food industry. Smart Caf is an innovation to redesign
the restaurants
environment, digitalize their menus and provide customers an
unusual dining experience.
This document gives the design and implementation of an E-menu
application based on
Android Operating System and development of a PHP based Menu
Updating System to
keep the E-menu up-to-date. The project aims to automate the
ordering services in
restaurants/cafes, eliminate ordering inefficiencies like
wrong/late orders, and provide a
solution to replace existing paper menus of yester-year, which
becomes tatty and worn
with time.
The Android Food Menu app, ported onto the hardware device (of
choice), offers menus
with high-resolution pictures, detailed descriptions and prices.
Using the device, the user
can browse E-menu, customize selections and send his order
wirelessly to Kitchen,
without having the waiter to wait aside. The selected order is
displayed on Kitchen Portal
with table number and time of order, stored in database as a
record and its receipt is
printed at the Finance Portal. This reduces the tasks of the
waiter to only deliver meal and
receipt to the customer in one go.
-
viii
Table of Contents
1. Problem Statement:
..................................................................................................................
1 1.1. Approach
...............................................................................................................................
2 1.2. Objectives
.............................................................................................................................
2
1.2.1. Academic Objectives
.....................................................................................................
3 1.2.2. Industrial Objectives
......................................................................................................
3
1.3. Limitations
............................................................................................................................
3 2. Related Work
...........................................................................................................................
3
2.1. Project Domain
.....................................................................................................................
3 2.2. Literature Review
..................................................................................................................
4
2.2.1. Android based Food Menu Applications
.......................................................................
5 2.2.2. IOS/Windows Food Menu Applications
........................................................................
5
2.3. Selection of Android OS for developing E-menu
..................................................................
6 2.4. Selection of Routing Protocol:
..............................................................................................
6
2.4.1. How JSON will be used in our application.
...................................................................
6 2.5. Shortcomings/issues in Existing E-menus
.............................................................................
6 2.6. Issues addressed by the proposed project
...........................................................................
7 2.7. Core Features of Smart Caf
.................................................................................................
7
3. Software Design and
Development..........................................................................................
8 3.1. Software Design
....................................................................................................................
8
3.1.1. System Block Diagram
..................................................................................................
8 3.1.2. Layered Model of Smart Cafe
........................................................................................
9
3.2. Software Development
.......................................................................................................
10 3.2.1. Developing a Caf Management System
.....................................................................
10 3.2.3. Developing an Android Food Menu
App.....................................................................
12 3.2.4. Portals development
.....................................................................................................
16 3.2.5. Web Designing
.............................................................................................................
18 3.2.6. Database for keeping Revenue Records
.......................................................................
20
3.3. Software Quality Attributes
................................................................................................
21 4. Analysis and Evaluation
............................................................................................................
21
4.1.4. Using different domains to check validity of JSON parser
.......................................... 21 4.1.5. Editing Order
...............................................................................................................
22 4.1.6. Sending subscription SMS
...........................................................................................
24 4.1.7. Verifying Call waiter button
........................................................................................
24 4.1.8. Verifying signup button from website
.........................................................................
26 4.1.9. Data storage in Database
..............................................................................................
27 4.1.10. Editing Menu at run-time
...........................................................................................
28 4.1.11. Stacking orders
...........................................................................................................
30
5.1. Future Work
........................................................................................................................
31 5.2 Conclusion
............................................................................................................................
31
Bibliography
..................................................................................................................................
33
-
ix
LIST OF TABLES
Table 4-1: Validity of JSON parser on different domains
...............................................................
21
Table 4-2: Test Case 04 (checking validity of JSON parser on
different domains) ........................ 22
Table 4-3: Test Case 05 (Editing/Deleting Already selected
order) ............................................... 23
Table 4-4: Test Case 06 (Send Subscription SMS)
..........................................................................
24
Table 4-5: Test Case 07 (Calling Waiter via Viber and SMS)
.......................................................... 25
Table 4-6: Test Case 08 (Verifying sign-up button from website)
................................................. 27
Table 4-7: Test Case 09 (Data storage in Database)
......................................................................
27
Table 4-8: Test Case 10 (Editing Menu at run-time)
......................................................................
30
Table 4-9: Test Case 11 (Stacking orders according to time)
......................................................... 31
-
x
LIST OF FIGURES
Figure 1-1: Traditional ordering method in Restaurants/Cafes
1
Figure 1-2: Paper Menu Card provides insufficient details 1
Figure 1-3: Illustration of Approach used by Smart Caf 2
Figure 2-1: E-Menu benefits restaurant with latent revenue 4
Figure 2-2: Different types of E-menu Devices [10] 6
Figure 3-1: Software Block Diagram 9
Figure 3-2: Layered Software Model of Smart Caf 9
Figure 3-3: Concept of Caf (Menu) Management System. 10
Figure 3-4: Different categories in Caf (Menu) Management
System. 10
Figure 3-5: Items added in the Appetizers category 11
Figure 3-6: GUI for adding/editing content information for each
item. 11
Figure 3-7: MySQL database from where the menu is fetched 11
Figure 3-8: Layouts of Welcome and Home Page 12
Figure 3-9a and 3-9b: Layouts of Categories and items in Menu
13
Figure 3-10: Sample Layouts for detailed description of an item.
13
Figure 3-11: Sample Layouts for Reviewing Order. 14
Figure 3-12: Server telling Preparation Time 14
Figure 3-13: Additional Features in App 15
Figure 3-14: Internet Access and interactive games while waiting
15
Figure 3-15: Internet Based Call Waiter Facility 15
Figure 3-16: Options Tab 16
Figure 3-17: Client-Server architecture [12] 17
Figure 3-18: Kitchen Portal 17
Figure 3-19: Finance Portal 17
Figure 3-20: Sample Receipt 18
Figure 3-21: Home Page of Smart Cafs Website 18
Figure 3-22: Features Page of Smart Cafs Website 19
Figure 3-23: Sign-Up Page of Smart Cafs Website 19
Figure 3-24: Members Area showing PHP scripts of Smart Caf on
000webhost.com 20
Figure 4-1: Deleting an item from order 22
Figure 4-2: Editing/Deleting Order 23
Figure 4-3: Subscribing for Menu Updates 24
Figure 4-4: Calling Waiter via Viber 25
Figure 4-5: Sending Message to Waiter 25
Figure 4-6: Sign-up page from Website 26
Figure 4-7: Database storing username and password. 26
Figure 4-8: Members Area 26
Figure 4-9: Orders stored in Database 27
-
xi
Figure 4-10(a): Initial Price of Item 28
Figure 4-10(b): Price of item changed on server end 28
Figure 4-10(c): Price Updated on Client App 29
Figure 4-11: Adding an item in Menu 29
Figure 4-12: Deleting an item from Menu 30
Figure 4-13: Stacking Orders 31
-
xii
LIST OF ABBREVIATIONS
App Application
ASP Active Server Pages
CEO Chief Executive Officer
E-menu Electronic Menu
E-table Electronic Tables
GUI Graphical User Interface
HTML Hypertext Markup Language
iOS IPhone Operating System (Apple)
JDK Java Development Kit
JSON JavaScript Object Notation
IDE Integrated Development Environment
OS Operating System
PHP Hypertext Preprocessor
POS Point-Of-Sale
SD card Secure Digital Card
SDK Software Development Kit
SMS Short Message Service
SQL Structured Query Language
WAMP Windows, Apache, MySQL, PHP
Wi-Fi Wireless Fidelity
WPA Wi-Fi Protected Access
-
1
1. Problem Statement:
Customer satisfaction is the key to success for any business.
The traditional hand-waving method for
calling waiter is inefficient during busy hours. Waiters often
miss out on calls from patrons or bring
wrong orders owing to language barriers. Figure 1-1 illustrates
the traditional ordering method of most
restaurants/ cafes worldwide that requires a waiter to handover
menu card to patrons when they come
to table and stand aside them till they place order.
Figure 1-1: Traditional ordering method in Restaurants/Cafes
Paper menus, as seen in Figure 1-2, can quickly become tatty,
grubby, torn and worn and are often with
poor imagery, little or no text descriptions. Sometimes the
patron himself is not satisfied with the dish
he has ordered since the menu cards lack enough details. At
times, the total bill exceeds customers
budget since in traditional method there is no way of
calculating the total bill before placing the order.
Moreover, costly reprinting of menu cards is required whenever
chef has to make changes in menu or
prices.
Figure 1-2: Paper Menu Card provides insufficient details
Labor rates are increasing every now and then and it is also
difficult to find employees in the middle of
the highway, where the restaurants are usually located.
Restaurant requires more waiters for efficient
flow of services, but this also increases the amount spent on
labor wages. A trade-off taken between the
two will even result in low quality services.
-
2
Our project finds the solution to paper menu cards and ordering
inefficiencies faced in
cafes/restaurants. The core tasks involved in the project are
design and development of a standalone E-
menu device to be placed at each table, developing an Android
Food Menu App to be ported on this
device, development of Kitchen and Finance Portals, development
of database to keep revenue records,
designing a password protected GUI to allow chef to
add/edit/delete items in menu on run-time, and a
mechanism to call steward in case of help and send menu updates
to subscribers via SMS.
1.1. Approach
The project entitled Smart Cafe is a customizable digital
representation of the traditional restaurant,
offering menus with high-resolution pictures and detailed
description of the contents on an Android
app ported on a hardware device that is capable of sending the
order directly to the Kitchen screens.
Figure 1-3 illustrates the approach adopted by Smart Caf to
address the problems faced by
restaurant/cafes. The order can be edited anytime and the total
bill can be viewed even before
confirming order. This would eliminate all kinds of language
barriers, ordering inefficiencies and will
remove the need of a waiter to wait aside patrons for taking
orders.
Figure 1-3: Illustration of Approach used by Smart Caf
The server end allows Kitchen staff to view the placed orders on
Kitchen screens, keep record of daily
revenue and update menus in real time via a password protected
GUI, hence eliminating dependence on
waiting staff to bring orders and saving the amount spend on
costly reprinting of menu cards. With the
proposed project, menu display, menu updating and ordering
services can be made very versatile.
1.2. Objectives
The project objectives can be broadly divided into Academic and
Industrial objectives.
-
3
1.2.1. Academic Objectives
Academic objectives include learning application development on
Android OS and PHP, learning and
applying JSON parsing to interface Android with PHP and MySQL
and learning web development
using PHP.
1.2.2. Industrial Objectives
Industrial objectives includes revitalizing casual dining
industry, providing restaurants a prototype to
be used as E-menu device, a password protected GUI allowing chef
to update menus on run-time, a
database to keep record of daily revenues and a mechanism to
send menu updates to subscribed
patrons. The system has been specifically designed to automate,
manage and control ordering services
in restaurants/cafes efficiently and to increase customers
satisfaction.
1.3. Limitations
Android Operating System has been used for the Food Menu app on
client side. This Application
cannot be executed in any other OS based cell phone, tablet or
embedded board like iOS, Windows etc.
However, it is compatible on all Android devices version 2.3.3
and above.
2. Related Work
Technological advances are taking place all over the world. Over
the recent years, the idea of having E-
menu in restaurants has gained immense popularity in developed
countries. This section provides a
brief overview of the study done during the period of project
i.e. websites/books/conference
papers/patents etc. referred. This part of the paper also gives
details about similar E-menu projects done
elsewhere in world, their limitations and finally how these
issues are addressed by Smart Cafe.
2.1. Project Domain
The scope of the undertaken project is to design and develop an
android app that fetches run-time
updateable menu, enables the patron to select order and sends it
wirelessly to the Kitchen
Screens. Accordingly, the project falls under the broader
umbrella of Electronic Menu, Wireless
Transmission and Android-PHP interfacing with focus on devices
having Android as their operating
system. The domain itself is newly emerging and quite
promising.
The overall capabilities of Android Applications have rapidly
increased in recent years in terms of
interactive GUIs, run-time functionalities, connectivity with
PHP and MySQL etc. These
-
4
advancements have made it feasible and in some cases preferable
to have Android Food Menu Apps
instead of iOS/windows based food menu applications in
restaurants. PHP on the other hand is fast,
stable, secure, and easy to use and open source (free), hence
most suitable for server side.
2.2. Literature Review
Technology is taking a toll over human operations with its feet
paving faster and more efficiently,
taking lesser time, reducing the need of human work force day by
day. E-menus at the restaurants
are gaining momentum, whereby the patrons, as opposed to
existing paper menus, send their order
wirelessly to kitchen using a sophisticated and stylish machine
displaying electronic menus.
With such fast technological advancements sweeping along the
dining industry, it is certain that the
trend will shift towards E-menu devices and wireless ordering
shortly. According to Intelity CEO,
David Adelson, about 380 hotels in several U.S. cities are using
this system and this number will grow
[1]. However, not only U.S, many other countries including
Malaysia, China, Japan etc have started
automating their ordering services.
Having E-menus in a restaurant helps redeploy personnel away
from the point of service to other areas
while eliminating incorrect orders and gaining a more
streamlined workflow. With e-Menus, the
restaurant can increase its order processing capacity and table
turn rates during peak periods. Its
about impulse-buying, said Adi Chitayat, Conceptics chief
executive. If a person starts looking at
pictures of chocolate cake, the chances are hell order it. [2].
Figure 2-1 shows some very interesting
facts of the survey conducted in US on how the e-Menu has
benefit restaurant with latent revenue [3].
These amazing results have led the researchers with the
co-operation of the developers to do more and
more development in this field.
Figure 2-1: E-Menu benefits restaurant with latent revenue
-
5
The syndicate conducted a literature survey of existing E-menu
devices and food menu apps on a large
scale. Emphasis was also laid on the organization of different
departments in a restaurant to understand
the management and control of ordering services. The websites of
different restaurants that have
already installed E-menu devices were also searched for
information. This enriched the idea of
restaurant automization using E-menu and developing a backend
Menu Management Server to edit the
menu at run-time.
The theoretical material regarding E-menu and wireless ordering
was also found in some very
interesting US Patents, namely Interactive Visual Ordering
System by Allan J. Camaisa [4]. It gave
sufficient details of what the E-menu should look like, what
should and what should not be included in
an E-menu app. The patents along with dozens of existing E-menu
applications on internet were used
to design own E-menu template, with the aim to cover all the
functionalities and features in one app.
On the next few pages we have thrown light on the similar E-menu
projects being conducted and
implemented by restaurants in different parts of world.
2.2.1. Android based Food Menu Applications
A close look at the literature revealed few of the Android Food
Menu Applications already developed
on Androids platform. E.g. Aptito applications have a huge
market in USA and Europe [5], Azilian E-
menu prevails in many restaurants of Europe and India [6],
Restaurant Menu (alpha) by Cymaxtec
team [7] etc.
2.2.2. IOS/Windows Food Menu Applications
Other than Android, few E-menu apps have also been developed on
other platforms like Apple iOS,
Windows etc. Notable among these are Restaurant Menu App by
Rappasoft [8], Food Menu by NoV
iOS Solutions, Titbit Digital Menu App etc.
The Figure 2-2 shows these different styles of E-menu ordering.
The E-menu devices are not limited to
table top devices (Figure 2-2a). Simple tablets can also be
handed over to customers for E-ordering as
shown in Figure 2-2b.
-
6
Figure 2-2: Different types of E-menu Devices [10]
2.3. Selection of Android OS for developing E-menu
According to the literature review, Android Operating System was
found to be the best platform for
Food Menu Applications owing to the popularity of operating
system in market over iOS, Windows
etc. and also because of its appealing and catchy user
interface. Moreover, Android can easily be
interfaced with PHP i.e. server side. The system is open-sourced
based on Linux and hence can be
developed by developers. [11]
2.4. Selection of Routing Protocol:
If we talk about client-server architecture, as told above,
client is Android device while the server side
is a combination of PHP Script and MySQL. In short, PHP Script
sits in middle. An Ad-hoc network
can be created so that the board and PC can communicate in
peer-to-peer fashion. Moreover TCP/ FTP
or preferably UDP sockets can be created with each table given
port numbers and IP addresses.
The most reliable among these is sending the order as JSON
object via HTTP POST command. JSON
(JavaScript Object Notation) is a lightweight text-based open
standard designed for human-readable
data interchange. [12]
2.4.1. How JSON will be used in our application.
When android application will execute, it will connect android
device to PHP Script whereby the PHP
Script will fetch data from the database. It will encode it into
JSON format and send it to the device.
Now, android application will get these encoded data. It will
parse the data and display it on android
device.
2.5. Shortcomings/issues in Existing E-menus
Existing e-menu apps whether on Android platform or iOS have
some issues that need to be addressed.
-
7
2.5.1. Menus cannot be updated on run-time
Most of the restaurants have E-menu apps at client end that
cannot be updated in real time. The Food
Menu Apps have inbuilt restaurant menus that are impossible to
edit at run time. So after the chef
makes amendment in E-menu, the whole app needs to be installed
on the device, which is very time
consuming and hectic. Having E-menu which cannot be edited in
real time is no good a solution to
replace paper menu cards which was at least cheap.
2.5.3. Orders sent to Central System adds to delay
Moreover, existing E-menus send the patrons order wirelessly to
Internal Order System which then
sends copy of patrons order to the Kitchen. This adds to the
delay in waiting time of patrons because
the cooking staff is still dependent on waiting staff for
bringing orders. These issues need to be
addressed to make ordering services of a restaurant/ caf more
efficient.
2.6. Issues addressed by the proposed project
The proposed project finds the solution to E-menu problem by
designing and developing a strategy to
directly send orders to Kitchen screens and a Menu Management
System that can update menu in real
time.
2.6.1. Menu Management System to keep menu updated
The first issue of the inability of E-menu Systems to update
menu in real time is solved by developing
a Menu Management Application. This application is hosted on
server. The password protected GUI
gives chef web management control to edit menus, add/remove
content description, price, image etc. of
any item he wants. The Android App is made to fetch menu from
the server on run-time instead of
picking up the in-built menu. In this way the menu fetched is
always updated and synchronized.
2.6.2. Orders sent directly to Kitchen Portal
Smart Caf also addresses the issue of dependency of kitchen
staff on wait staff to bring orders. For
this, the patrons selected orders are sent directly to Kitchen
Portal large screens installed in Kitchen,
instead of sending the orders to Central System first. This not
only eliminates dependence on wait staff
to bring orders but also reduces the waiting time for diners.
Having large screens in Kitchen also helps
chef in better viewing of order.
2.7. Core Features of Smart Caf
The core features of the project include:
-
8
User friendly and intuitive Android Food Menu App,
Food Menu App with high resolution pictures (enlarges on touch),
content descriptions and
prices,
Wireless ordering inside restaurant orders sent directly to
Kitchen screens,
Internet Based Ordering for members anywhere, anytime,
Web Management control given to chef for editing/updating menus
on run-time,
Internet Based Call waiter facility to call waiter in case of
any help,
Electronic Bill Calculation and Viewing even before confirming
order,
Exhilarating Games and open internet access for patrons while
waiting,
Member Subscriptions - inform subscribers of menu updates via
SMS,
Customizable layouts according to restaurants taste and
demand,
Compatibility on all Android devices (2.3.3 and above)
3. Software Design and Development In this section we will
discuss the methodology and approach leading to the development
of
applications of Smart Caf for both client (Android Applications)
and server side (involving PHP and
MySQL).
3.1. Software Design
The software portion of Smart Caf includes the development of
Android Food Menu Application on
the client side and its porting mechanism on the client side.
This application is, however, interfaced
with the PHP server using JSON Parser. The software development
on the server side includes tasks
like PHP scripting for Kitchen/ Finance Portal for the chef to
view orders, Web Development for
customer-restaurant interaction, development of Menu Management
GUI using MySQL database to
edit menu at runtime and keeping a database to save received
orders. To understand these, lets give a
look at the system block diagram and layered model.
3.1.1. System Block Diagram
The software portion of Smart Caf can best be illustrated by the
Software design block diagram shown
in Figure 3-1. The development of Android Application requires
installation of JDK, SDK, Eclipse in
order and then the development of designed app. PHP Scripting is
required for the development of
Kitchen and Finance Portals. The portals receive customers order
as JSON object.
-
9
Caf Management System is also developed. It requires making of
GUI first and then linking it with
MySQL Database and Android App so the updated menu can be
synchronized all over easily. Web
Development involves designing the website, checking its
performance on WAMP server and finally
porting on a free web host. Lastly, Database Development makes
use of MySQL database to store
orders for revenue check. These activities are discussed in
detail in subsections ahead.
Figure 3-1: Software Block Diagram
3.1.2. Layered Model of Smart Cafe
The flow of services in Smart Caf is illustrated in Figure 3-2
as the layered model. This explains that
the Android E-menu on client layer fetches data from the
database. When the client orders something,
his order is sent to server layer as JSON object and displayed
onto Kitchen Screens. The order finally
goes to Data layer and gets stored in MySQL database as a
record.
Figure 3-2: Layered Software Model of Smart Caf
-
10
3.2. Software Development
Software development on the basis of design of Figure 3-1 is
discussed at length in this section.
3.2.1. Developing a Caf Management System
The purpose of developing a caf management system is to keep a
password protected database at the
server end where the whole menu is saved and provide Chef with
the access to edit/add/delete items
whenever he wants. Such a mechanism should be developed so that
these changes gets updated and
synchronized in all the E-menu devices at client side instantly.
Figure 3-3 helps explain this concept of
a Caf (Menu) Management System.
Figure 3-3: Concept of Caf (Menu) Management System.
This Caf Management System has the capability to make as many
categories of dishes as the chef
wants as opposed to existing E-menu apps that makes use of
in-built menus which cannot be changed
on run-time even. Figure 3-4 illustrates that different
categories like appetizers, rice, snacks, soups etc
can be made very easily and updated on the Android Menu.
Figure 3-4: Different categories in Caf (Menu) Management
System.
In each of these categories, items/products can easily be added.
Figure 3-5 shows some of the products
e.g. French fries, tacos, rolls etc that were added to the
Appetizers category.
-
11
Figure 3-5: Items added in the Appetizers category
The chef can add information about these items from the server
too e.g. name, description and high
resolution pictures can be added as shown in Figure 3-6. The
content information is fetched by the
Android E-menu when the user requires it. The advantage of
creating a Caf Management is that it can
keep the Android App updated all the time.
Figure 3-6: GUI for adding/editing content information for each
item.
Like, adding/editing the price, description or picture of any
item, the chef can also delete any item in
any category he wishes. Any changes or additions made in the GUI
are updated in MySQL database at
the server end as shown in Figure 3-7. The restaurants menu will
be fetched from here when the user
will demand it.
Figure 3-7: MySQL database from where the menu is fetched
-
12
3.2.3. Developing an Android Food Menu App
3.2.3.1. Setting up Development Environment
For the development of code in android an integrated development
environment (IDE) for java called
Eclipse is used. Eclipse requires an installed Java Runtime.
Hence Java Development Kit (JDK) and
Android SDK were first installed. Eclipse was downloaded from
www.eclipse.org and unpacked to a
directory. All projects are located in a workspace.
3.2.3.2. Creating Android Project in Eclipse
Select from the menu File -> New-> Android project. Give
the name "Smart Cafe" to the project and
start making a simple menu for restaurant. The project created
in the eclipse can be run on the emulator
or it can also be run on the external environment such as
android cell phone attached to the computer
(eclipse) through the USB interface.
3.2.3.3. Developing Food Menu App
The Android Food Menu App has been developed on Android Version
2.3.3 i.e. Gingerbread. Android
has backward compatibility thereby meaning that the app will be
compatible on all Android devices
with 2.3.3 and above versions. The snapshots from the Android
App will help explain its design. Figure
3-8a shows the Welcome page of the App, whereby the customers
will press ENTER to formally
start the app, then press MENU button in Figure 3-8b to open up
the restaurants menu before him.
Figure 3-8: Layouts of Welcome and Home Page
The menu, as shown as a sample in Figure 3-9a, is fetched from
the database using JSON Parser as
discussed in the section above. JSON stands for JavaScript
Object Notation. It is a lightweight text-data
interchange format and is language independent. Part of the JSON
parser code written in eclipse to
fetch the categories of dishes can be found in Appendix B.
-
13
Similarly Figure 3-9b will open up, if suppose the user selects
soups. The soups category has also been
fetched from the database. This list can be changed anytime
anywhere by the master Chef having the
username and password.
Figure 3-9a and 3-9b: Layouts of Categories and items in
Menu
Patron can see details of the selected soup by clicking on it
once. A new layout will open up before him
giving all the necessary details, e.g. the price, description,
and high resolution picture of the item. A
spinner has been placed to set the quantity to be ordered.
Figure 3-10 gives the snapshot of the layout
that will open before the customer if suppose we wishes to see
the detailed information of Chicken
Thai Soup.
Figure 3-10: Sample Layouts for detailed description of an
item.
In Figure 3-10, pressing Main Menu button will take the patron
back to menu, the Add to Order
button will add this dish to users order giving him a
notification that the dish has been added.
-
14
Moreover, the Review Order button will give him summarized view
of what and how much each
item he has ordered so far. Figure 3-11 shows part of Review
Order layout.
Figure 3-11: Sample Layouts for Reviewing Order.
Pressing Place order button in the Figure 3-11 will send the
order wirelessly to the Kitchen Screens
along with the table number and time of order. The user will be
notified about the preparation time as
shown in Figure 3-12. Meanwhile the patrons can play games or
access internet.
Figure 3-12: Server telling Preparation Time
3.3.3.4 Adding additional features in Application
Apart from making an E-menu application, certain other features
were added in the app as
enhancements in the project. These are discussed briefly here
using Figure 3-13. The functionalities of
the app have been discussed in more detail in the user manual
i.e. Appendix C.
-
15
Figure 3-13: Additional Features in App
The About Us tab is for the restaurant to add details about
itself, Menu button has been discussed in
detail above, the Fun Zone button open the game zone and
internet access to the patron, as shown in
Figure 3-14, so he can enjoy himself while waiting for
order.
Figure 3-14: Internet Access and interactive games while
waiting
The Call Waiter button allows the user to call steward if he
needs help. Figure 3-15 shows how the
internet based call is routed via Viber to the concerned
waiter.
(a) Call Waiter page (b) Calling Waiter
Figure 3-15: Internet Based Call Waiter Facility
-
16
The Review Order button opens the summarized view of what the
patron has ordered so far. It has been
discussed in detail above. The Options button opens more
additional services/ options for the user to
stay tuned to Smart Caf as shown in Figure 3-16.
Figure 3-16: Options Tab
The MEMBERS button gives him the opportunity to fill out the
form and become member of the
restaurant and stay updated with the menu updates and brand
promotions. The SUBSCRIBE Button
takes the user to another form using which he can subscribe to
SMS notifications from the restaurant.
The HELP button displays the user manual to the user, the DIET
INFO gives details about the
hygiene standards the restaurant is following and lastly the
GALLERY button will take the user to
the restaurants gallery and pictures. The functionalities of the
app have been discussed in more detail in
the user manual i.e. Appendix A.
3.2.4. Portals development
According to Smart Cafs concept, there are two portals at server
end namely Kitchen Portal and
Finance Portal. When android application is executed i.e. when
the user sends order, JSON parser
connects the android device to PHP Script via Http Post command.
JSON (JavaScript Object Notation)
is a lightweight text-based open standard designed for
human-readable data interchange. Part of the
code used to send order wirelessly to the Kitchen Portal via
HTTP POST can be found in Appendix B.
The server side is a combination of PHP Script and MySQL. In
short, PHP Script sits in middle as
shown in the Figure 3-17. The PHP Script fetches data from the
Android app and saves it in database.
-
17
Figure 3-17: Client-Server architecture [12]
Precise details of the patrons order i.e. item name and quantity
along with the table number and time
of order displayed on the Kitchen Portal are shown in figure
3-18.
Figure 3-18: Kitchen Portal
The page refreshes itself every 7 seconds. Other orders received
after it will be stacked under this
order. When the chef is done preparing the meal, he will press
the delivered button. This will remove
the order from the Kitchen Portal and send it to the Finance
Portal as seen in Figure 3-19.
Figure 3-19: Finance Portal
The finance staff will press print button to print the receipt.
Figure 3-20 shows the sample receipt that
will have brief summary of the order and total bill. The waiter
just has to deliver the meal and receipt to
the respective order.
-
18
Figure 3-20: Sample Receipt
In this way, Smart Caf can automate ordering services to a
greater extent if the whole system is
installed at any restaurant/caf.
3.2.5. Web Designing
For web development first step taken was installation of WAMP to
be used as a local server and
database. Next we downloaded notepad++ to write the codes. These
codes were all saved in www
folder of WAMP. All the .jpeg, .txt etc files to be accessed by
the website should also be saved in this
folder
3.2.5.1. Website Architecture and Designing
The web layout was designed using html, CSS and PHP scripting.
The coding was done on simple
notepad and/or sometimes on Dreamweaver. The website developed
consists of three main domains.
First is the public domain which is public so anyone wishing to
know about Smart Caf can read along
the tabs. These include major pages like Home, About Us,
Features, Signup and Contact Us pages. The
Home Page as shown in Figure 3-21 gives brief overview of Smart
Caf.
Figure 3-21: Home Page of Smart Cafs Website
The Features Tab, shown in Figure 3-22 gives brief overview of
the core features of Smart Caf
including interactive digital Food Menu, items along with high
resolution pictures and content
-
19
description, wireless ordering inside restaurant, bill viewing
before confirming order, internet based
call waiter facility, exhilarating games while waiting for meal,
customizable layouts, web management
control for chef to update menu, database to keep revenue
records, compatibility on all Android devices
(2.3.3 and above) etc
Figure 3-22: Features Page of Smart Cafs Website
The customers can easily sign up to become the members of Smart
Caf via the Sign up tab as shown
as a snapshot in Figure 3-23 taken from the website. Finally the
Contact Us tab gives details about
Smart Caf where the team may be contacted.
Figure 3-23: Sign-Up Page of Smart Cafs Website
The second domain of the website is the members domain which
requires the member to go to sign in
page and enters his e-mail and password there with which he had
subscribed. He will be directed to
Members area upon correct entry, where he can view the menu
updates, discount coupons, brand
promotions etc. The members can view the public domain too.
-
20
Thirdly the restaurants domain is for viewing Kitchen and
Finance Portal and for web management
control over the menu. Login script has been incorporated which
requires user name and password
from the chef who wishes to add/delete/edit the menu, prices,
items, pictures or content descriptions.
Upon entering the correct username and password the chef gets
diverted to restaurants menu where he
can edit anything he wants to, as discussed in section
5.2.2.
3.2.5.2. Webhosting
Owing to the monitory constraints there were two options of free
hosting. One was getting hosting
from MCS. It would result in site name like sitename.mcs.edu.pk
and second was to use any good free
web host available online. We registered with
www.000webhost.com. 000webhost.com provides free
web hosting services without advertising. There are no hidden
costs, no adverts, and no restrictive
terms. Fast speeds, maximum reliability and fanatical user
support are the important features we
received. The name chosen for the site was smartcafe.com but
because we did not go for paid hosting,
so we got the domain name smartcafe.net46.net. Figure 5-31 shows
snapshot from the 000webhost.com
where the PHP scripts of Smart Caf are hosted.
Figure 3-24: Members Area showing PHP scripts of Smart Caf on
000webhost.com
3.2.6. Database for keeping Revenue Records
All the incoming orders get stored in MySQL Database as a record
so that the owner can keep a check
on revenues all the time. It can be seen from the phpMyAdmin
panel from the 000webhost where the
Smart Cafs site is hosted.
-
21
3.3. Software Quality Attributes
Some of the quality attributes identified includes:
3.3.1. Portability: The apk file of Android just needs to be
installed at client devices, while server side
is hosted on 000webhost.com, hence making the software
portable.
3.3.2. Maintainability: The applications, either Android or that
on PHP side, are easily maintainable,
in case of a change in requirement or bug found,
3.3.3. Adaptability: Android OS is backward compatible, for
forward compatibility some changes in
the implementation are required.
3.3.4. Availability: the applications are available 24/7,
provided Wi-Fi is switched ON and configured
properly. Website can also be viewed 24/7.
3.3.5. Flexibility: the layout/architecture of the applications
is flexible enough for some later
requirements change or application enhancement.
3.3.6. Usability: Both the applications are user-friendly and
intuitive.
3.3.7. Reliability: The system has been designed to provide
maximum reliability.
4. Analysis and Evaluation
In this chapter, some test cases are discussed that were used to
evaluate the performance of the
software pertaining to the project.
4.1.4. Using different domains to check validity of JSON
parser
JSON parser was used to convert the android string to JSON
object and send it to PHP scripts running
at the webpage. The web pages were hosted on different domains
to check whether the app still sends
order or not. The table 4-1 gives details about the sites
used.
Table 4-1: Validity of JSON parser on different domains
Site/ Domain Hosting Type Status of received order
Local host Local Successful
Wimcl.com/ws Paid hosting successful
smartcafe.net46.net (000webhost) Free web hosting successful
The purpose of checking the working on JSON parser was to make
sure that the app can send order to
any kind of domain whether local, paid or free web hosting site.
Hence the restaurant using Smart
-
22
Cafs application can use any server, local or remote. The Table
4-2 summarizes the results of the test
case.
Table 4-2: Test Case 04 (checking validity of JSON parser on
different domains)
Test Case ID 04
Test Case name checking validity of JSON parser on different
domains
Expected Result Should receive order on any kind of domain
Observed Result Local and remote servers both can successfully
receive
order
Result Status Success
4.1.5. Editing Order
This test was done to check whether the user can successfully
edit his order before placing/ confirming
it or not. Editing order includes editing quantity of a
particular item, deleting a certain dish, or deleting
all items so far selected.
4.1.5.1. Deleting an already selected item
Consider that the customer has ordered these dishes as shown in
fig 4-1a. Now if the user wants to
delete Chicken Burger from the order, he can simply type 5 in
ID, and press DELETE ENTRY
button. The entry as shown in Figure 4-1b will be deleted.
(a) Customers Order (b) Deleting an entry
Figure 4-1: Deleting an item from order
-
23
4.1.5.2. Editing quantity of a certain dish
The quantities of the items selected can also be changed. The
user just has to type 2 in ID and the
quantity, say 4, in quantity box and press edit entry. Figure
4-2(a) shows that the entry has been
edited.
4.1.5.3. Deleting all dishes
Now if the user wishes to delete all the orders selected he can
simply press delete all button. The
figure 4-2(b) shows that all orders will be cleared then.
(a) Editing Entry 2 (b) Deleting all orders
Figure 4-2: Editing/Deleting Order
Table 4-3 gives summarized results of test case 05.
Table 4-3: Test Case 05 (Editing/Deleting Already selected
order)
Test Case ID 05
Test Case name Editing/Deleting an already
selected order
1. Deleting an already selected dish Successful
2. Editing Quantity of a particular item Successful
3. Deleting all dishes Successful
Overall Result Status Success
-
24
4.1.6. Sending subscription SMS
Another service provided by the project Smart Cafe is to send
brand promotions, menu updates etc
to subscribers via SMS. For this Android SMS service was used.
To test the code, type a random
number and name and subscribe yourself. An SMS confirming the
subscription will be received
shortly. An illustration of the utility is shown in figure
4-3.
(a) Subscribing to GSM Service (b) Receiving Confirmation
Message
Figure 4-3: Subscribing for Menu Updates
The test results have been summarized in the table 4-4.
Table 4-4: Test Case 06 (Send Subscription SMS)
Test Case ID 06
Test Case name Send Subscription SMS
Result Status Success
4.1.7. Verifying Call waiter button
The Call Waiter button allows the user to call steward if he
needs help. Testing of this functionality is
important to prevent any kind of inconvenience for the customer
later. To check the internet based call
facility, click on viber image. Figure 4-4 shows how the
internet based call is routed via viber to the
concerned waiter. The patron presses the CALL WAITER button,
selects any waiter from the list and
that particular waiter will be called via viber.
-
25
Figure 4-4: Calling Waiter via Viber
The patrons can also make regular calls or send text messages to
waiter asking for help or particular
items like plate, fork, glass etc. The notification of message
sent on client side and the message
received by waiter verifies that the call waiter functionality
is working as shown in Figure 4-5.
Figure 4-5: Sending Message to Waiter
Basing on the results, the table 4-5 summarizes the test
case
Table 4-5: Test Case 07 (Calling Waiter via Viber and SMS)
Test Case ID 07
Test Case name Calling Waiter via Viber and SMS
1. Calling Waiter via Viber Successful
2. Calling Waiter via SMS Successful
Result Status Success
-
26
4.1.8. Verifying signup button from website
The website smartcafe.net46.net also has a signup page. Those
who register them there can have access
to the members domain. For final testing of app, it was checked
whether the signup and sign in pages
functions rightly or not? Figure 4-6 shows the signup page of
Smart Cafs website.
Figure 4-6: Sign-up page from Website
After successful signup, the user details will be stored in
database for authentication every time he logs
in to the site. Figure 4-7 shows this.
Figure 4-7: Database storing username and password.
Now when the user sign in, he will be directed to members area,
shown in Figure 4-8.
Figure 4-8: Members Area
-
27
The results are summarized in Table 4-6.
Table 4-6: Test Case 08 (Verifying sign-up button from
website)
Test Case ID 08
Test Case name Verifying signup button from website
Result Status Success opens up members area on successful signup
only
4.1.9. Data storage in Database
All the received orders are stored in database as a record, so
that the management can keep a check on
its revenue. It was necessary to check database whether it is
storing results or not. To test this, certain
orders were sent and database was checked. The database stores
result in table having column for item
name, price, quantity, time and table number. It is password
protected, so no one can even edit the
details. Figure 4-9 shows that entries are successfully stored
there.
Figure 4-9: Orders stored in Database
Table 4-7 gives an overview of the test case.
Table 4-7: Test Case 09 (Data storage in Database)
Test Case ID 09
Test Case name Data storage in Database
Result Status Success
-
28
4.1.10. Editing Menu at run-time
The menu as explained in the previous chapter can be updated on
run time. To verify the claim,
consider Figure 4-10(a) that shows snapshot of app before the
chef changes price of Five Spice
Chicken. The price initially was Rs 200.00.
Figure 4-10(a): Initial Price of Item
Figure 4-10(b) shows the changes being made to the price of the
item from the Caf Management GUI.
The price is changed to Rs 220.00 on the server side.
Figure 4-10(b): Price of item changed on server end
Figure 4-10(c) verifies that the price got changed from Rs
200.00 to 220.00 on run-time.
-
29
Figure 4-10(c): Price Updated on Client App
Similarly the chef can add any item in any category he wishes.
Figure 4-11(a, b) shows the app before
and after adding Mango shake in drinks and beverages
respectively.
Figure 4-11: Adding an item in Menu
However if the chef wants to delete a certain dish, whether its
not in stock or is seasonal, even then he
can easily delete them from the GUI. These dishes will be
updated on users E-menu device on runtime
as verified by the Figure 4-12(a, b).
-
30
Figure 4-12: Deleting an item from Menu
Table 4-8 summarizes the results of the test case.
Table 4-8: Test Case 10 (Editing Menu at run-time)
Test Case ID 10
Test Case name Editing Menu at Run-time
1. Editing a particular entry Successful
2. Add a new item Successful
3. Deleting an item Successful
Overall Result Status Success
4.1.11. Stacking orders
The Kitchen and Finance Portals WebPages have refresh time of 7
seconds i.e. the page refreshes itself
every 7 seconds, and stacks the orders in first in first
position basis. To verify that the webpage stacks
the order in the order they were received, send 2 orders with a
20-30 seconds delay and observe
whether the page automatically picks up all the orders or it
needs to be refreshed manually. Figure 4-13
helps explain this.
-
31
Figure 4-13: Stacking Orders
The results are summarized in Table 4-9.
Table 4-9: Test Case 11 (Stacking orders according to time)
Test Case ID 12
Test Case name Stacking orders according to time
Result Status Success - The page refreshes every 7 seconds
and stacks the new orders below
5.1. Future Work
A project like Smart Caf can be customized easily to the
lifestyle or demand of the restaurant. Some
of the enhancements are discussed in this chapter that can be
made to the project in future to enhance
its features. Multi Language Support, iOS/Windows Compatibility,
Play Store, Implementation in
Hotels, and Implementation in Hospitals where the target
audience of Smart Caf are not only limited
to restaurants, cafes, food bars or hotels, but these Android
E-menu devices can also be installed aside
patients bed in hospitals from where they can order their food
anytime without inconvenience. This is
done especially for people who have allergies from a particular
ingredient. The customer can place an
order keeping nutrition in mind. A further enhancement can be
made to the Master Chefs interface by
adding the field of inventory. Inventory will deal with the
ingredients of the recipe and will notify the
Chef as to how many grams of a particular ingredient will be
added to the dish; moreover, it will also
monitor the amount of stock left accordingly. This will help the
Chef manage his available stock and
determine the percentage of wastage of stock.
5.2 Conclusion
The hotel industry has been trying to automate its ordering
services but has been held back by
technological limitations. Smart Caf is an innovation to
revolutionize the casual dining industry by
providing fast, automated and efficient ordering and delivery
system via E-menus. The syndicate has
designed Android application as a solution to replace the
outdated paper menus of yesteryear and
provide guests with a perfect dining experience. The system will
neither require maintenance after
installation nor prior knowledge of touch-screens is needed
since guests and staff will intuitively
understand how to use it.
-
32
With a Smart Cafs Menu Updating System in place, the menus can
be updated electronically without
requiring costly reprinting of menu-cards. Other key features of
Smart Caf are membership via email
and subscription via SMS for customers. Calling waiter is
another attribute of the application that
allows the patron to seek information from waiter. Screens at
Kitchen Portal and Finance Portal are
installed that display orders and print receipts
respectively.
If implemented, this indigenous restaurant automation system
will streamline the ordering procedures
of restaurants. The system can be used stand-alone or even fully
integrated with existing POS. These
digital menus are wave of future and will revolutionize the
restaurant industry forever.
-
33
Bibliography
References
[1] Hotels offer services through tablet PCs,
http://intelitycorp.com/main/press/usatoday.php
[2] From tips to clicks: restaurants try e-menus,
http://mobile.reuters.com/article/technologyNews/idUSL204599320080225?i=1
[3] eMenu benefits restaurant with latent revenue,
http://www.emenuworld.com/ emenu/why-
emenu+/business-benefits_25
[4] Allan J. Camaisa, INTERACTIVE VISUAL ORDERING SYSTEM, US
Patent 5845263, Year 1998
[5] Aptitos All in one digital solution for the digital age,
http://www.aptito.com/
[6] Mobile Apps Development, http://www.azilen.com/
[7] Restaurant Menu (alpha), https://play.google.com/
store/apps/details? id=com.tecnomark.menudroid
[8] Mobile apps, http://codecanyon.net/user/Rappasoft
[9] Food Menu NoV iOS Solutions,
http://www.speakipad.co.uk/food-menu-nov-ios-solutions/
[10] Self Service and QSR,
http://www.emenuworld.com/segments/self-service-and-qsr_30
[11] Chao Wang Liaoning; China Wei Duan; Jianzhang Ma; Chenhui
Wang; "The research of Android System
architecture and application programming", Computer Science and
Network Technology (ICCSNT),
International Conference, (Volume:2 ), pages 785 790, year
2011.
[12] Connection between PHP (server) and Android (client) Using
HTTP and JSON,
http://fahmirahman.wordpress.com/2011/04/21/connection-between-php-server-and-android-client-using-
http-and-json/
[13] Step Down switching voltage Regulator Adjustable & Fix
Output,
http://www.datasheetcatalog.com/datasheets_pdf/L/M/2/5/LM2576.shtml
[14] Java SE,
http://www.oracle.com/technetwork/java/javase/downloads/index.html
[15] Eclipse, www.eclipse.org/?
[16] Adobe Dreamweaver,
http://www.adobe.com/devnet/dreamweaver.html
[17] WAMP, http://en.wikipedia.org/wiki/Wamp
[18] Layouts,
developer.android.com/guide/topics/ui/declaring-layout.html?
-
34
[19] Android version history,
http://en.wikipedia.org/wiki/Android_version_history
[20] Java How to Program (6th Edition) by (Deitel)
[21] www.stackoverflow.com for queries