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)

Report ARP B

  • Upload
    wwwsomu

  • View
    234

  • Download
    0

Embed Size (px)

DESCRIPTION

Smart Cafe

Citation preview

  • 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