Final Box and Line Diagram & Explanations

Here is the final update of our Box and Line Diagram and explanations of each component and dependency. Also included are an explanation of the differences between the latest version and the previous version, and an explanation of how we maximized cohesion and minimized decoupling.

Box and Line Diagram

The final Box and Line Diagram is as follows or with explanations as a pdf here here:

Figure 1: Deliverable 5 Box and Line Diagram
Box and Line Diagram Component and Dependency Explanation

A) Restaurant User Interface

The Restaurant User Interface subsystem contains multiple components. These components are dependent on the Backend. contains one subcomponent with multiple components and two independent components. All of these are dependent on the Backend. The subsystem components and dependencies are further explained as follows:

  • Restaurant Profile Interfaces

      The Restaurant Profile Interfaces subcomponent contains all the interfaces pertaining to the restaurant user’s profile. The entire subcomponent is dependent on the Restaurant Profile Frontend Communication based in the Backend. The subcomponent’s components are further explained as follows:

      • Restaurant Owner Login Page

          The Restaurant Owner Login Page prompts the user to enter their username and password. An error message will appear if the username or password are incorrect.

      • Restaurant Owner Summary

          The Restaurant Owner Summary displays the restaurant owner's profile information, including restaurant name, phone number location, category, description, and image, as well as provides a link to their bingo board and a link to edit their public profile page.

      • Create Account Page

          The Create Account Page provides a form in which the new user can add their full name, desired username and password in order to create a new restaurant profile.

      • Restaurant Profile Editor

          The Restaurant Profile Editor provides a form in which the restaurant owner can update their restaurant profile, including restaurant name, location, phone number, category, description, and image.

  • Goals and Rewards Customization Page

      The Goals and Rewards Customization Page allows for a restaurant user to create customized goals and/or rewards that are unique to them. This component is dependent on the Goals and Rewards Customization Frontend Communication component in the Backend.

  • Bingo Board Editor

      The Bingo Board Editor allows for a restaurant user to edit the setup of their bingo board, including the goals on the board and the rewards earned when a customer gets a bingo. This component is dependent on the Bingo Board Frontend Communication component in the Backend.

  • Goal and Reward Verification Page

      The Goal and Reward Verification Page allows for a restaurant user verify customer goals and rewards by scanning a QR code or manually entering the code. This component is dependent on the Goal and Reward Verification Frontent Communication in the Backend.


B) Customer Interface

The Customer Interface subsystem contains multiple components. These components are dependent on the Backend. The subsystem components and dependencies are further explained as follows:

  • Customer Profile Interfaces

      The Customer Profile Interfaces subcomponent contains all the interfaces pertaining to the customer’s profile. The entire subcomponent is dependent on the Customer Profile Frontend Communication based in the Backend. The subcomponent’s components are further explained as follows:

      • Account Creation Page

          The Account Creation Page provides a form in which the new user can add their First Name, desired username and password in order to create a new customer profile.

      • Customer Login Page

          The Customer Login Page prompts the customers to enter their username and password. An error message will appear if the username or password are incorrect.

      • List of Rewards Earned Page

          The List of Rewards Earned Page shows the user a list of all the rewards that they redeemed.

      • List of Favourite Restaurant Boards Page

          The List of Favourite Restaurant Boards Page displays the boards that the customer has saved in order for them to access easily.

  • Restaurant Information Interfaces

      The Restaurant Information Interfaces subcomponent contains all the interfaces pertaining to the information of the restaurants using the application. The entire subcomponent is dependent on the Restaurant Information Frontend Communication based in the Backend. The subcomponent’s components are further explained as follows:

      • List of Restaurant Boards Page

          The List of Restaurant Boards Page shows the user a list of all the restaurant boards that are in progress. A restaurant board that is “in progress” has one or more goals completed.

      • Restaurant Board Page

          The Restaurant Board Page shows the user an individual restaurant game board.


C) Backend

The Backend subsystem contains multiple components and two subcomponents. The subsystem components and dependencies are further explained as follows:

  • Restaurant Profile Frontend Communication

      The Restaurant Profile Frontend Communication allows the Restaurant Profile Interfaces in the Restaurant User Interface subsystem to interact with the Backend. It is dependent on the Profile Management which is located in the Backend subsystem.

  • Goals and Rewards Customization Frontend Communication

      The Goals and Rewards Frontend Communication allows the Goals and Reward Customization Page in the Restaurant User Interface subsystem to interact with the Backend. It is dependent on the Profile Management which is located in the Backend subsystem.

  • Bingo Board Frontend Communication

      The Bingo Board Frontend Customization Communication allows the Bingo Board Editor in the Restaurant User Interface subsystem to interact with the Backend. It is dependent on the Profile Management which is located in the Backend subsystem.

  • Goals and Rewards Verification Frontend Communication

      Goals and Rewards Verification Frontend Communication allows the Goals and Rewards Verification in the Restaurant User Interface subsystem to interact with the Backend. It is dependent on the Profile Management which is located in the Backend subsystem.

  • Customer Profile Frontend Communication

      The Customer Profile Frontend Communication allows the Customer Profile Interfaces in the Customer Interface subsystem to interact with the Backend. It is dependent on the Profile Management which is located in the Backend subsystem.

  • Restaurant Information Frontend Communication

      The Restaurant Information Frontend Communication allows the Restaurant Information Interfaces in the Customer Interface subsystem to interact with the Backend. It is dependent on the Profile Management which is located in the Backend subsystem.

  • Profile Management

      The Profile Management subcomponent contains all the interfaces pertaining to the profiles stored in the database. The entire subcomponent is dependent on the Restaurant Profile Frontend Communication, Goals and Rewards Frontend Communication, Bingo Board Frontend Communication, Customer Profile Frontend Communication, Restaurant Information Frontend Communication, Goals and Rewards Verification Frontend Communication, and Database Communication components in order to update and maintain the profiles of the application users. The subcomponent’s components are further explained as follows:

      • User Authentication

          The User Authentication component allows for the verification of inputted usernames and passwords.

      • User Profile Management

          The User Profile Management component allows for users in general to modify their account information. It is dependent on the User Authentication component to verify that the user login information is valid.

      • Restaurant Profile Management

          The Restaurant Profile Management component allows for restaurant owner users to modify their restaurant profiles; these modifications include changes to the goals and rewards they want to offer. This component inherits from the User Profile Management.

      • Customer Profile Management

          The Customer Profile Management component allows for customers to access goals and rewards. This component inherits from the User Profile Management.

  • Goal and Reward Completion Verification

      The Goal and Reward Completion Verification component allows for restaurant owners to verify if a goal is completed by a customer, or if a reward is valid and redeemable by a customer. This component is dependent on Restaurant Profile Manager.

  • Public Profile Modifier

      The Goal Modifier component allows for restaurant owner users with public profiles view and update their profile information such as restaurant name, image, address, and contact information. This component is dependent on Restaurant Profile Manager.

  • Goal Modifier

      The Goal Modifier component allows for restaurant owner users to add, edit, or delete custom goals. This component is dependent on Restaurant Profile Manager.

  • Reward Modifier

      The Reward Modifier component allows for restaurant owner users to add, edit, or delete custom rewards. This component is dependent on Restaurant Profile Manager.

  • Restaurant Bingo Board Modifier

      The Restaurant Bingo Board Modifier allows for restaurant owner users to edit their public bingo boards, such as changing the contents, the size or the expiration date. This component is dependent on Restaurant Profile Manager.

  • Customer Favourites Modifier

      The Customer Favourites Modifier component allows for a customer user to save any of the restaurant bingo boards as a favourite so that they can access easily. This component is dependent on Customer Profile Manager.

  • Customer Bingo Board Viewer

      The Customer Bingo Board Viewer component allows for a customer user to view a restaurant bingo board as well as their progress for goals, goals they need to complete to receive rewards, rewards they have achieved, QR codes for goals to verify, and QR codes for rewards to redeem. This component is dependent on Customer Profile Manager.

  • Data Access

      The Data Access subcomponent contains the component related to accessing data from the database. This subcomponent is dependent on the Database subsystem so that it can communicate with the database components as well as the Profile Management so that it can update the information in the database.

      • Database Communication

          The Database Communication allows for the Backend to communicate with the Databases.


D) Database

The Database subsystem contains multiple components. The Database is dependent on the Database Communication in the Backend subsystem. The components are as follows:

  • Restaurant Profile Collection

      The Restaurant Profile Collection stores restaurant information such as name of the restaurant, the username and password associated with the restaurant, the customized restaurant goals, the customized restaurant rewards, and the user profile.

  • Game Goals Collection

      The Game Goals Collection stores the premade goals used for the bingo loyalty game.

  • Game Rewards Collection

      The Game Rewards Collection is used for the storing premade rewards for the bingo loyalty game.

  • Customer Profile Collection

      The Customer Profile Database is used for storing customer user information such as username, active game boards, goals completed, and rewards earned.

Changes to System Components

For this deliverable, we introduced a new subcomponent called Data Access to contain the Database Communication component. This new subcomponent decouples the Database Communication from Profile Management and allows for it to be related indirectly. In addition, it allows for future components related to data access to be introduced without affecting the other components directly. However, this subcomponent is still a part of C)Backend as it resides in the backend of our system.

Also, we changed the names of the Login Interface in A)Restaurant User Interface and Login Page in B) Customer User Interface to Restaurant Owner Login Page and Customer Login Page to help distinguish the two interfaces. We changed the names and kept them separate because even though they are very similar they function differently and belong to different subsystems.

In addition, we added new components such as the Goal Modifier, Rewards Modifier, Restaurant Bingo Modifier, Restaurant Bingo Board Modifier, Goal and Reward Completion Verification, and Public Profile Modifier; for which Restaurant Profile Manager is now dependent on, and Customer Favourites Modifier and Customer Bingo Board Viewer for which Customer Profile Manager is dependent on. We also combined the Goal and Reward Completion Verification as they function the same. We added these modules to reduce coupling.

Furthermore, we added a Goal and Reward Verification Page and a Goal and Reward Verification Frontend Communication so that restaurant users can verify goals and rewards on a separate interface.

Lastly, as mentioned previously, we removed the compete with friends feature, as this was not a direct requirement from our client. The updated box and line diagram shows the removal of this feature and all its relating modules.

Minimizing Coupling & Maximizing Cohesion

In Deliverable 3, the frontend components all shared the same backend communication, both on the A) Restaurant User Interface and the B) Customer Interface. In Deliverable 4, we decoupled these features by creating more specific backend communication components. That is, each feature has its own backend communication. Thus, we minimized coupling in our current system diagram.

We introduced the subcomponents to group together similar components. For example, we introduced the Profile Management subcomponent in the C) Backend which contains the components User Authentication, User Profile Management, Restaurant Profile Management, and Customer Profile Management. These components are all grouped together since they relate to the management of profiles in the system. In addition, User Profile Management serves as a parent component, while Restaurant Profile Management and Customer Profile Management inherit from it. Thus, with the introduction of subcomponents with some inheritance, we maximized cohesion in our current system diagram.