Here is our updated Box and Line Diagram and explanations of each component and dependency. Also a paragraph explaining the differences between the updated version and the previous version.
The update Box and Line Diagram is as follows or as a pdf here:
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:
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:
The Login Interface prompts the user to enter their username and password. An error message will appear if the username or password are incorrect.
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.
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.
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.
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.
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.
The Customer Interface subsystem contains multiple components. These components are dependent on the Backend. The subsystem components and dependencies are further explained as follows:
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:
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.
The Login Page prompts the customers to enter their username and password. An error message will appear if the username or password are incorrect.
The List of Rewards Earned Page shows the user a list of all the rewards that they redeemed.
The Compete with Friends Page shows the user their ranking in comparison with their friends who use the application, where rank is calculated based on the number of rewards they have earned.
The List of Favourite Restaurant Boards Page displays the boards that the customer has saved in order for them to access easily.
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:
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.
The Restaurant Board Page shows the user an individual restaurant game board.
The Backend subsystem contains multiple components and two subcomponents. The subsystem components and dependencies are further explained as follows:
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.
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.
The Bingo Board Frontend 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.
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.
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.
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, 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:
The User Authentication component allows for the verification of inputted usernames and passwords.
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.
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 is dependent on the User Profile Management.
The Customer Profile Management component allows for customers to modify their friend lists as well as access goals and rewards. This component is dependent on the User Profile Management. This component is dependent on Friend Reward Comparison, Goal Completition Modifier, and Reward Completion Modifier.
The Friend Reward Comparison ranks customer users based on the number of rewards earned compared to their friends.
The Verification subcomponent contains all the interfaces pertaining to verifying that a customer has achieved goals and obtained rewards. The subcomponent’s components are further explained as follows:
The Goal Completion Verification component allows for restaurant owners to verify if a goal is completed by a customer.
The Reward Completion Verification component allows for restaurant owners to verify if a reward is valid and redeemed by a customer.
The Goal Completion Modifier component allows for the goals field of the Customer Profile Collection to be updated when a goal is completed. This component is dependent on the Goal Completion Verification component so that restaurant owners can verify that the goal is completed.
The Reward Completion Modifier component allows for the rewards field of the Customer Profile Database to be updated when a reward is redeemed. This component is dependent on the Reward Completion Verification component so that restaurant owners can verify that the reward is redeemable.
The Database Communication allows for the Backend to communicate with the Databases. This component is dependent on the Database subsystem so that it can communicate with the database components.
The Database subsystem contains multiple components. The Database is dependent on the Database Communication in the Backend subsystem. The components are as follows:
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.
The Game Goals Collection stores the premade goals used for the bingo loyalty game.
The Game Rewards Collection is used for the storing premade rewards for the bingo loyalty game.
The Customer Profile Database is used for storing customer user information such as username, active game boards, goals completed, rewards earned, and friends’ usernames.
We added changes to system components according to the feedback we received from our TA after the last deliverable. As seen in Figure 2, the frontend components all shared the same backend communication, both on the A) Website Interface and the B) Application Interface. In this deliverable (Figure 1), we decoupled these features by creating more specific backend communication components. That is, each feature has its own backend communication. Notice also in Figure 1 that some interfaces have been grouped together in subcomponents as they share many similarities. For example, in Figure 1 A) we have a subcomponent entitled Restaurant Profile Interfaces and inside we have Create Account Page, Login Interface, Restaurant Profile Editor and Restaurant Owner Summary. Each of these components all relate to the Restaurant Profile, hence why they can be grouped together. However, the Goal and Reward Customization Page and the Bingo Board Editor components are not considered as a Restaurant Profile Interface, yet they are still important features of the Website Interface. Furthermore, we cleaned up the C) Backend. In Figure 1, we introduced changed the Database Management Systems subcomponent into the Profile Management subcomponent and placed User Authentication under this subcomponent. All the individual backend components now connect to the Profile Management subcomponent. We also User Management component as a parent component, which Restaurant Management and (the new) Customer Management components inherit from. The Friend Reward Comparison, Goal Completion Modifier, Reward Completion Modifier components no longer relate directly to the Database Communication but rather indirectly through other components as seen in Figure 1.