order now – restaurant management system
Post on 24-Jun-2015
2.383 Views
Preview:
DESCRIPTION
TRANSCRIPT
OrderNow – Android based Restaurant Management System
By Omkar Hande
Contents
Application Design
User Interfaces & Key features
Customer’s UI
Waiter’s UI
Manager’s Web UI
Database design
Technologies Used
Project metrics
Application Design
Application Design - Layers
There are 3 layers to this application
1. Application layer – Android UI & Manager’s Web layout This layer stores majority of the application logic.
2. Service Layer or Data Access Layer – PHP Scripts that facilitate communication between Android and MySQL (or any other database). This layer stores some logic, for instance, if say a user tries to add an item to the cart when there is no open order against his name, this layer will go ahead and create one automatically
3. Database Layer – Where all the data is stored. This layer has little or no logic stored in it. Most of the operational steps are carried out by the service layer
Application Design – Schematic View
2. S
ends
HTT
P
Requ
est t
o se
rver
5. S
ends
dat
a in
JSON
form
at
3. Connects to DB
Server, send query
to run
4. Runs query, sends
back resource handle
1. Asks for Today’s
Specials
6. Loads the view
with Today’s
Specials
USER
DEVICE
MySQL SERVER
Ap
plicati
on
Layer
Serv
ice
Layer
Data
base
Layer
SERVER
User Interface & Key features
Customer Android UI – Key Features
Consists of swipe-able tabs
There are 5 tabs in customer’s interface: Today’s Specials – Consists of Today’s special menu items
Menu – Complete Menu
Cart – Items added to cart before placing order
Feedback – To submit feedback on the service/food
About Us – About the restaurant
Customer Android UI – App Screenshots
Today’s Special Tab – Enlists today’s recommendations
Menu Tab – Categorized group wise
Item Popup - Description with picture pops-up on clicking a menu item
Customer Android UI – App Screenshots
Cart – Stores all the items added to cart. Items can be deleted by swiping the item to left/right. A refresh button is also included
Feedback– Customers can send feedback regarding service
Customer Android UI – App Screenshots
App is designed to work in landscape mode as well
Waiter Android UI - Key Features
Consists of 3 swipe-able tabs Update Approvals – To approve addition/deletion requests of customes
Order Approvals – Orders waiting to be placed
Billing Approvals – Orders pending for billing
Waiter Android UI – App Screenshots
Update Requests – List of all the addition/deletion requests
New Orders – List of all orders pending to be placed
Order Approval – Enlist order items prior to approval
Waiter Android UI – App Screenshots
Unbilled – Orders pending for billing.
Approval Confirmation – Once waiter approves this, the bill is processed
Manager’s Web UI
Manager UI does the following tasks: Set specials menu
Add new user (customer, waiter or admin)
Add new items
Send messages to GCM registered devices
Database Design
Database Design
There are 8 tables in total
Each table as its own Auto-Increment ID that is used as a primary key
There are no foreign key constraints as of now
No form of logic such as triggers or events are stored in database – All actions are performed by the data access layer (PHP Scripts)
Database Design - Tables
Items – stores details of all items such as its name, price, category
Users – stores details of all the users – customers, waiters and administrators
Order – stores name of the order along with a timestamp and id of the linked customer
Order_details – stores the items corresponding to each order
Requests – stores all the Add/Delete update requests
Pairs – stores which waiter is assigned to which table (customer)
Feedback – stores feedbacks corresponding to orders
Groups – stores the categories of items (starters, main course etc.)
Database Design – EER Diagram
Technologies Used
Android SDK
Android is an open source mobile operating system by Google. The controllers here are written in Java while the UI components are written in XML
Most popular mobile platform today with over 900 Million smartphone activations
Android comes with a highly detailed and exhaustive documentation and also has a large developer base
This app is compatible with latest version of Android (API Level 19) – KitKat 4.4.2
Requires minimum API Level 14 - Android Ice Cream Sandwich 4.0
Google Cloud Messaging (GCM)
Free messaging service from Google
Allows sending messages from server to any Android powered device
Cloud recognizes devices using a unique GCM Registration ID that is assigned by Google to the device as it establishes connection with the cloud
Once registration IDs are in place, we can send messages between devices. This app uses GCM to send notifications between customers and waiters
MySQL Server
Great for Web Applications (even Facebook uses MySQL)
Easy to learn & use
Very fast reads (faster than Oracle)
Less restrictive on syntax unlike Enterprise DBMS like Oracle
Recommended DBMS for PHP
Scalability can be a caveat
JQuery plugins
Chosen library – custom select and multi select boxes
JQuery Form library – makes form handling easier
Project Metrics
Total Lines of code JAVA Code – 6713 lines
PHP Code – 21100 lines
Calculated using
git ls-files | xargs wc –l
On Git repository
Possible Improvements
Caching data
Use Sync Adapters
Compatibality with lower versions of android (currently works for 4.0 and above)
Thank You!
Omkar Hande
top related