Vous êtes sur la page 1sur 41

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

LIST OF FIGURES

Figure 1-1: Traditional ordering method in Restaurants/Cafes


Figure 1-2: Paper Menu Card provides insufficient details
Figure 1-3: Illustration of Approach used by Smart Caf
Figure 2-1: E-Menu benefits restaurant with latent revenue
Figure 2-2: Different types of E-menu Devices [10]
Figure 3-1: Software Block Diagram
Figure 3-2: Layered Software Model of Smart Caf
Figure 3-3: Concept of Caf (Menu) Management System.
Figure 3-4: Different categories in Caf (Menu) Management System.
Figure 3-5: Items added in the Appetizers category
Figure 3-6: GUI for adding/editing content information for each item.
Figure 3-7: MySQL database from where the menu is fetched
Figure 3-8: Layouts of Welcome and Home Page
Figure 3-9a and 3-9b: Layouts of Categories and items in Menu
Figure 3-10: Sample Layouts for detailed description of an item.
Figure 3-11: Sample Layouts for Reviewing Order.
Figure 3-12: Server telling Preparation Time
Figure 3-13: Additional Features in App
Figure 3-14: Internet Access and interactive games while waiting
Figure 3-15: Internet Based Call Waiter Facility
Figure 3-16: Options Tab
Figure 3-17: Client-Server architecture [12]
Figure 3-18: Kitchen Portal
Figure 3-19: Finance Portal
Figure 3-20: Sample Receipt
Figure 3-21: Home Page of Smart Cafs Website
Figure 3-22: Features Page of Smart Cafs Website
Figure 3-23: Sign-Up Page of Smart Cafs Website
Figure 3-24: Members Area showing PHP scripts of Smart Caf on 000webhost.com
Figure 4-1: Deleting an item from order
Figure 4-2: Editing/Deleting Order
Figure 4-3: Subscribing for Menu Updates
Figure 4-4: Calling Waiter via Viber
Figure 4-5: Sending Message to Waiter
Figure 4-6: Sign-up page from Website
Figure 4-7: Database storing username and password.
Figure 4-8: Members Area
Figure 4-9: Orders stored in Database

1
1
2
4
6
9
9
10
10
11
11
11
12
13
13
14
14
15
15
15
16
17
17
17
18
18
19
19
20
22
23
24
25
25
26
26
26
27

xi
Figure 4-10(a): Initial Price of Item
Figure 4-10(b): Price of item changed on server end
Figure 4-10(c): Price Updated on Client App
Figure 4-11: Adding an item in Menu
Figure 4-12: Deleting an item from Menu
Figure 4-13: Stacking Orders

28
28
29
29
30
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. 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.

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

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

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

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

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.

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:

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.

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/whyemenu+/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-usinghttp-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