25-08-2017, 09:32 PM
1451975061-Report2.doc (Size: 100.5 KB / Downloads: 460)
Abstract
In this document I am presenting the requirements specification for an online ordering system designed primarily for use in the food delivery industry. My system will allow restaurants to quickly and easily manage an online menu which customers can browse and use to place orders with just a few clicks. The system then relays these orders to restaurant employees through an easy to navigate graphical interface for efficient processing.
Described within the document is an overall model of the system, outlines of functional and non-functional requirements, and a detailed description of the user interface. Finally, the document presents an account of the evolution of the system along with anticipated maintenance.
Introduction
In today’s age of fast food and take-out, many restaurants have chosen to focus on quick preparation and speedy delivery of orders rather than offering a rich dining experience. Until very recently, all of these delivery orders were placed over the phone, but there are many disadvantages to this system, including the inconvenience of the customer needing to have a physical copy of the menu, lack of a visual confirmation that the order was placed correctly, and the necessity for the restaurant to have an employee answering the phone and taking orders.
What I propose is an online ordering system, originally designed for use in college cafeterias, but just as applicable in any food delivery industry. The main advantage of my system is that it greatly simplifies the ordering process for both the customer and the restaurant. When the customer visits the ordering webpage, they are presented with an interactive and up-to-date menu, complete with all available options and dynamically adjusting prices based on the selected options. After making a selection, the item is then added to their order, which the customer can review the details of at any time before checking out. This provides instant visual confirmation of what was selected and ensures that items in the order are, in fact, what was intended.
This system also greatly lightens the load on the restaurant’s end, as the entire process of taking orders is automated. Once an order is placed on the webpage, it is entered into the database and then retrieved, in pretty much real-time, by a desktop application on the restaurant’s end. Within this application, all items in the order are displayed, along with their corresponding options and delivery details, in a concise and easy to read manner. This allows restaurant employees to quickly go through the orders as they are placed and produce the necessary items with minimal delay and confusion.
System Model
The structure of the system can be divided into three main logical components. The first component must provide some form of menu management, allowing the restaurant to control what can be ordered by customers. The second component is the web ordering system and provides the functionality for customers to place their order and supply all necessary details. The third and final logical component is the order retrieval system. Used by the restaurant to keep track of all orders which have been placed, this component takes care of retrieving and displaying order information, as well as updating orders which have already been processed.
Functional Requirements
As can be seen in the system model diagramed above, each of the three system components essentially provides a layer of isolation between the end user and the database. The motivation behind this isolation is twofold. Firstly, allowing the end user to interact with the system through a rich interface provide a much more enjoyable user experience, particularly for the non-technical users which will account for the majority of the system’s users. In addition, this isolation layer also protects the integrity of the database by preventing users from taking any action outside those which the system is designed to handle. Because of this design pattern, it is essential to enumerate exactly which functions a user will be presented and these functions are outlined below, grouped by component.
The Web Ordering System
Users of the web ordering system, namely restaurant customers, must be provided the following functionality:
• Create an account.
• Manage their account.
• Log in to the system.
• Navigate the restaurant’s menu.
• Select an item from the menu.
• Customize options for a selected item.
• Add an item to their current order.
• Review their current order.
• Remove an item/remove all items from their current order.
• Provide delivery and payment details.
• Place an order.
• Receive confirmation in the form of an order number.
As the goal of the system is to make the process of placing an order as simple as possible for the customer, the functionality provided through the web ordering system is restricted to that which most pertinent to accomplish the desired task. All of the functions outlined above, with the exceptions of account creation and management, will be used every time a customer places an order. By not including extraneous functions, I am moving towards my goal of simplifying the ordering process.
Menu Management System
The menu management system will be available only to restaurant employees and will, as the name suggests, allow them to manage the menu that is displayed to users of the web ordering system. The functions afforded by the menu management system provide user with the ability to, using a graphical interface:
• Add a new/update/delete vendor to/from the menu.
• Add a new/update/delete food category to/from the menu.
• Add a new/update/delete food item to/from the menu.
• Add a new/update/delete option for a given food item.
• Update price for a given food item.
• Update default options for a given food item.
• Update additional information (description, photo, etc.) for a given food item.
It is anticipated that the functionality provided by this component will be one of the first things noted by the restaurant user, as they will have to go through it to configure their menu, etc. before beginning to actually take orders. Once everything is initially configured, however, this component will likely be the least used, as menu updates generally do not occur with great frequency.
Order Retrieval System
Of the three components, the order retrieval system is functionally the simplest. Like the menu management system, it is designed to be used only by restaurant employees, and provides the following functions:
• Retrieve new orders from the database.
• Display the orders in an easily readable, graphical way.
• Mark an order as having been processed and remove it from the list of active orders.
User Interface Specifications
Each of the system components will have their own unique interface. These are described below.
Web Ordering System
Users of the web ordering system will interact with the application through a series of simple forms. Each category of food has its own form associated with it which presents a drop down menu for choosing which specific item from the category should be added to the order, and a series of check boxes and radio buttons for selecting which options are to be included. Adding an item to the order is accomplished by a single button click. Users select which category of food they would like to order, and therefore which form should be displayed, by navigating a menu bar, an approach which should be familiar to most users.
Entering delivery and payment deals is done in a similar manner. The user is presented with a form and must complete the required fields, which include both drop down and text boxes, before checking out and receiving a confirmation number. One thing worth noting here is that whenever possible drop down boxes and buttons were used over freeform input in order to both simplify the ordering process and reduce the possibility of and SQL injection attempt.