Skip to content
vinguyen12 edited this page Sep 28, 2021 · 24 revisions

2. Description

2.1 Components

2.2 Clients

2.3 Database

3. Requirements

3.1 UI Requirements

  • ID: UIR1
    Home page/ Welcome page \

    • Description: a welcome page for greeting users to the application, displaying some overview or quote about the application and providing options for users to logging in if he/she already has the account or registering a new account if they are new to the application.
    • Rationale: home page where the application starts with
    • Dependency:
  • ID: UIR2
    Log-in page \

    • Description: a page where users can input their username and password for being identified. The users are required to provide a registered account to log in. If the input account exists, the users will then be sent to the main page. If not, there will be alerts for wrong access.
    • Rationale: for identification by username and password
  • ID: UIR3
    Register page \

    • Description: a page where users are asked to fill out a form of first name, last name, username, password, email and phone number to create an account/ their identity to log in to the page
    • Rationale: for creating identification by first name, last name, username, password, email and phone number

    Separate Portals

    Log in page will lead to three main pages depending on each user's role, Manager/Employee/Customer.

    Separate main pages for each type of user once logged in.

    Manager

    • ID: UIR4
      Admin page \

      • Description: displaying options to head to other functional pages such as employee information, customer information, inventory information, table/order information, menu, restaurant layout, making a to-go order, making a dine-in order
      • Rationale: main page for admin to choose and access the manager functionalities
    • ID: UIR5
      Employee Information \

      • Description: displaying employee information such as name, email address, phone number, log in and log out schedules, handling orders
      • Rationale: for manager to keep track employee information
    • ID: UIR6
      Customer Information \

      • Description: displaying employee information such as name, email address, phone number, orders
      • Rationale: for manager to keep track customer information
    • ID: UIR7
      Order/ Table Information \

      • Description: displaying order and table information such as the ordered food, time ordered is placed, the number of people (if it is a table), and the arrival time and finished time of the table
      • Rationale: for manager to keep track order and table information
    • ID: UIR8
      Menu Editor \

      • Description: displaying menu and giving manager users options to edit it such as removing, adding and customizing food/ drink information.
      • Rationale: for manager to edit the menu
    • ID: UIR9
      Restaurant Layout Editor \

      • Description: displaying the restaurant's layout and giving manager users options to edit it. The restaurant will appear as a square or rectangle with grids. Manager users are able to choose a grid to place a table, remove a table or customize table information such as maximum number of people the table can have
      • Rationale: for manager to edit the restaurant layout

    Employee

    • ID: UIR10
      Employee page \

      • Description: displaying options to head to other functional pages such as current order/ table information, inventory, make a to-go order, restaurant seating layout, make a dine-in order
      • Rationale: main page for admin to choose and access the employee functionalities
    • ID: UIR11
      ** Current Order/ Table Information** \

      • Description: displaying current order and table information such as the ordered food, time ordered is placed, the number of people (if it is a table), and the arrival time of the table
      • Rationale: for employee to keep track current order and table information
    • ID: UIR12
      Restaurant Layout \

      • Description: displaying the restaurant's layout and letting employee to choose a table for inputting new table information or making food/drink order
      • Rationale: for employee to oversee the restaurant table layout, available/ unavailable seats, so through that he/she can have further action such as choosing a table for inputting new table information or making food/drink order

    Manager, Employee

    • ID: UIR13
      Make Dine-in Order \

      • Description: displaying menu and giving options for manager and employee to add and remove food/drink order for tables (dine-in)
      • Rationale: for manager and employee to make dine-in food/drink order
    • ID: UIR14
      Inventory \

      • Description: displaying updated restaurant inventory
      • Rationale: for manage and employee to keep track the inventory

    Customer

    • ID: UIR15
      Customer page \
      • Description: displaying waiting time for dine-in and for to-go order, and also an option to make a to-go order through the application
      • Rationale: main page for customer to see the restaurant waiting time and make order online

    Manager, Employee, Customer

    • ID: UIR16
      Menu/ Make To-go Order \
      • Description: displaying menu (food, prices) and giving options for manager and employee to add and remove food/drink order for to-go
      • Rationale: for manager, employee and customer to make to-go food/drink order

3.2 Functional Requirements

  • ID: FR1
    Database \

    • Description: Table Relations - Reservations, Orders, and Menu. Reservations: times, party size, and name.
      Orders: total cost and tip, menu items, date & time, party size, if made reservation then reservation data.
      Menu: pictures, costs, descriptions, item name, popularity (# of times ordered divided by number of item type ordered), type (beverage, appetizer, children's entree, entree, dessert)
      Supplies: item (food ingredients, receipt paper, dishwasher soap, etc.) quantity in stock
    • Rationale:
    • Dependency:
  • ID: FR2
    User registration

    • Description: Users are able to create a new account with a default role as a customer by providing first name, last name, email address, phone, id and password.
    • Rationale: to create an identification for the user
    • Dependency: FR1
  • ID: FR3
    User Log-in/ Log-out

    • Description: verify identification for users to get access to the functions their looking for depending on their role, and to access their history input in the application
    • Rationale: to verify user identification and give data access for the exact owner
    • Dependency: FR1
  • ID: FR4
    User (Manager) create/ edit menus

    • Description: Users with manager role are able to create and edit the restaurant menu by adding food plate and customizing food plate information
    • Rationale: to create and edit menu/ food served in the restaurant
    • Dependency: FR1, FR3
  • ID: FR5
    User (Manager) manage/edit other users' role (manager/employee/customer)

    • Description: Users with manager role can decide which role other users should possess. There are three roles in the system: manager, employee and customer. Managers are able to manage, edit and choose the role for every account on the account list
    • Rationale: to give accurate and functional access for accounts
    • Dependency: FR1, FR3
  • ID: FR6
    Employees' information Access (for Manager)

    • Description: Users with manager role can observe every other account information such as name, email address, phone number; in addition, if the role of the accounts are employee or manager, users with manager role can observe their schedule and salary.
    • Rationale: main function for manager role users, which is to manage and observe every other account information
    • Dependency: FR1, FR3
  • ID: FR7
    Daily orders'/ tables' information access (for Manager)

    • Description: Users with manager role can observe every previous or current table, dine-in order and to-go order information
    • Rationale: main function for manager role users, which is to manage and observe customers' order information
    • Dependency: FR1, FR3
  • ID: FR8
    Current Orders Access (for Manager/Employee)

    • Description: Users with manager and employee role can create a new order/table, access to current available table information such as number of customers and its orders, or to-go information such as food ordered, customer waiting time, to edit, add or delete the information
    • Rationale: main function for manger and employee role users, which is to manage customers' order information
    • Dependency: FR1, FR3
  • ID: FR9
    Inventory Access (for Manager/Employee)

    • Description: Users with manager and employee role can access to inventory information to edit, add, delete inventory items and numbers \
    • Rationale: for manager and employee to keep track of the restaurant inventory
    • Dependency: FR1, FR3
  • ID: FR10
    Order food (for Manager/Employee/Customer)

    • Description: All users are able to make a food order through the application after they logging in to verify their identity; however, as users with customer role, they have to make payment before completing the order process
    • Rationale: main function that provide a functional service for all users to order the food conveniently and productively
    • Dependency: FR1, FR3
  • ID: FR11
    Pay/Save Order (for Manager/Employee/Customer)

    • Description: All users are able to make payment for an order through the application. After clicking pay, the order information will be saved in the database for supporting other functions of the application
    • Rationale: to finish and save an order
    • Dependency: FR1, FR3
  • ID: FR12
    Customer Wait Time
    • Description: This builds on the on the people counting algorithm above and incorporates timestamps to calculate an estimated wait time for the customer to be served at the restaurant. Calculations of this estimate will be stored onto the database.
    • Dependency: FR-H2, FR1

3.3 Non-functional Requirements

  • ID: FR-H1
    Raspberry Pi 4 Hardware

    • Description: This is the main computing unit for the people detection feature. This project uses the Raspberry Pi 4 model B with 8GB RAM. The 4GB model will also be sufficient. The PiCam is also used as video stream input for the algorithm.
    • Dependency: N/A
  • ID: FR-H2
    People Counting Algorithm

    • Description: Detects as how many people cross a boundary line and how many people exit that boundary to determine the number of people in the restaurant at any given moment. Base python program algorithm courtesy of saimj7's project repo.
    • Dependency: FR-H1, Python, Python libraries: schedule, numpy, argparse, imutils, dlib, opencv-python, scipy.
  • ID: NFR1 Password security (for Manager/Employee) \
    • Description: Password that the manager/Employee uses should be a strong password (at least 8 characters, at least 1 capital letter, at least 1 number, and at least 1 special character.)
    • Rationale: A strong password ensures that no one can access an employee/manager's respective account.
    • Dependency:
  • ID: NFR2 Real-Time Wait Time Estimates (for customers) \
    • Description: The wait time estimate algorithm should update in real time or close to real time.
    • Rationale: Customers expect to know the current waiting time. This means that the wait time estimate algorithm should update in real time, or as close as possible, to ensure the customer gets accurate information.
    • Dependencies: FR-H3

4. Prioritization

#5. Diagrams

5.1 Use Case Diagram

5.2 Class Diagram

5.3 Sequence Diagram

Date Hardware Back-end Front-end
09/16
09/23
09/30
10/7
10/14
10/21
10/28
11/4
11/11
11/18
11/15 (Thanks giving) - -
11/30 Review and presentation preparation - -
12/2 Presentation - -
12/7 Presentation - -