270 likes | 447 Views
OrderNow – Android based Restaurant M anagement 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.
E N D
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 - Layers • There are 3 layers to this application • Application layer – Android UI & Manager’s Web layout This layer stores majority of the application logic. • 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 • 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 Database Layer Application Layer SERVER USER 3. Connects to DB Server, send query to run 2. Sends HTTP Request to server DEVICE 1. Asks for Today’s Specials 5. Sends data in JSON format 4. Runs query, sends back resource handle 6. Loads the view with Today’s Specials Service Layer MySQL SERVER
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 Item Popup - Description with picture pops-up on clicking a menu item Today’s Special Tab – Enlists today’s recommendations Menu Tab – Categorized group wise
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 • 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.)
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 – 6713lines • PHP Code – 21100 lines Calculated using git ls-files | xargswc –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