Vaiter Your Personalized Virtual Waiter Whitepaper Ghulame Mujtaba Arbi (Co-Founder and CEO) Faisal Jr. Saleem (Co-Founder and CTO) Table of Contents Overview 3 Initial Entity Relation Diagram 4 Final Entity Relation Diagram 5 Entity Creation 6 Vaiter_Customer 6 Vaiter_Staff 6 Vaiter_Restaurant 6 Vaiter_Meal 7 Vaiter_Order 7 Vaiter_OrderHistory 7 Entity Characteristics 8 Vaiter_Customer 8 Vaiter_Staff 8 Vaiter_Restaurant 9 Vaiter_Meal 9 Vaiter_Order 9 Vaiter_OrderHistory 9 2 Overview Vaiter is designed to make restaurant reservations a simple process. Order your food on the app and set a date and time for your reservation. When you arrive at the restaurant, your food will be ready. This saves the hassle of waiting for food when you arrive at a restaurant. The app provides the following functionality: ● It will deal with 2 different types of users, which are staff and customers. The app will offer different functionality based on who logs in. ● A user can be a staff member, customer or both. ● Customers are able to make reservations and order their food along with it. ● The app will have 3 seperate tabs for making a reservation, showing current reservations and old reservations for the customer. ● Staff members can view orders and reservations made by customers, based on the restaurant they are working for. ● The staff side of the app will have 2 seperate tabs, one showing current reservations for the restaurant that the staff member is part of and another tab showing old reservations (history). 3 Initial Entity Relation Diagram 4 Final Entity Relation Diagram 5 Entity Creation Vaiter_Customer Vaiter_Staff Vaiter_Restaurant 6 Vaiter_Meal Vaiter_Order Vaiter_OrderHistory 7 Entity Characteristics Vaiter_Customer The Vaiter_Customer entity serves to hold users’ information who identify as a customer for the purposes of the application. It stores their details upon successful registration, which can then be retrieved upon an attempted log in. Note that each customer is restricted to one account only, and this is reinforced by allowing only unique email addresses. The respective PHP file used for entering data into this entity handles this. This entity has the following characteristics: Vaiter_Staff The Vaiter_Staff entity is populated with the credentials and personal information of users’ who identify as staff members of restaurants. Similar to the Vaiter_Customer entity, the details are stored upon successful registration, which can then be retrieved upon an attempted log in. Note that each staff member is restricted to one account only, and this is reinforced by allowing only unique email addresses. The respective PHP file used for entering data into this entity handles this. Each staff member must also be a restaurant employee, in order to view the reservations present for that given restaurant. This entity has the following characteristics: 8 Vaiter_Restaurant The Vaiter_Restaurant entity holds the details of restaurants currently making use of the Vaiter application. This entity serves to provide specific information about the restaurant to the users and has the following characteristics: Vaiter_Meal The Vaiter_Meal entity contains the description of all the available meals offered by the variety of restaurants making use of this application. Each meal is linked to the restaurant that offers it. This entity has the following characteristics: Vaiter_Order The Vaiter_Order entity consists of the details of the reservation that a customer has made. This comprises the meal description and the date and time for which the reservation is made. This entity has the following characteristics: Vaiter_OrderHistory The Vaiter_OrderHistory table is a bridging entity. Due to the nature of reservations being that many customers can initiate multiple orders, it is only obvious to make use of this technique to avoid the difficulties of dealing with a many-to-many relationship. We have, in essence, turned this into two one-to-many relationships. Hence, this entity contains a reference to the customer and the order that was placed by that customer: 9