Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

Assignment #2 – High level component design and API contract [10%] This assignment relates to the following Course Learning Requirements: CLR 1: Identify, explain, and use various technologies...

1 answer below »
Assignment #2 – High level component design and API contract [10%]
This assignment relates to the following Course Learning Requirements:
CLR 1: Identify, explain, and use various technologies used in the Enterprise environment.
CLR 3: Implement Web Server integration with enterprise applications.
CLR 5: Utilize as well as defend against common security vulnerabilities found in enterprise applications and the multi-server networked environment.
CLR 6: Implement and Integrate various Java based technologies used in the enterprise environment.
Objective of this Assignment:
Purpose of this assignment is to finalize a service model (not a data model only in terms of MVC) as a whole and create documentation in terms of UML diagrams using data model from the previous assignment:
-    Functional diagrams
-    Sequential diagrams
-    Low level class diagrams
You must also create API Endpoint contracts for each model you will use.
As a result, there should be UML diagrams for each service, as well as API Endpoint description with/without using Swagger.
Pre-Assignment Instructions:
1. To prepare you for this assignment, read the modules 1, 2 and 6 content and follow the embedded learning activities.
2. This Assignment is a continuation to Assignment #1, already completed.
3. Similarly to Assignment #1, you require a drawing software that allows you to draw diagrams and charts.
a. The following tool is a suggestion:
i. Standalone app of https:
app.diagrams.net/ which can be downloaded here https:
github.com/jgraph/drawio-desktop
eleases/tag/v13.6.2
ii. You are welcome to use any other such as Microsoft Visio (Windows only), pen and paper (literally).
4. You require the use of Swagger Editor either installed:
a. On your local (https:
github.com/swagger-api/swagger-editor) or
. Used online (https:
editor.swagger.io/).
Assignment description:
Remembering the Basic Functionalities from Assignment #1
In this assignment you will continue to develop a backend for a Twitter-like application. Please remember its basic functionality:
1. There should be at least 2 roles – Producer and Subscriber;
2. Producer role is the same as Subscriber but has some extra capabilities – it can produce messages, which Subscribers get;
3. User may have both roles at the same time;
4. Users having Subscriber role may subscribe to as many Producers as they want to;
5. All messages stored in database, can be easily searched based on at least criteria:
a. User (Producer) ID – means who wrote it;
. Message content
Understanding the general concept for this application
For this Assignment, the interactions (for general understanding, not for implementation at this moment) with the application should be as follows:
1. There’s a back-end application which has an exposed API allowing users to be authenticated and authorized (use data model from module 5) – UserManagementService;
2. User must be logged in and have obtained a token. For simplicity, imagine the token is a simple ID, like number, UUID, hash, something else, producing by the UserManagementService at the first authentication request and returned to the user for further authorization purposes.
3. After the user has been authenticated and obtained a token, he/she is able to use other APIs, related to publishing and obtaining messages; in case of unauthenticated access user should be simply redirected to UserManagementService to obtain a token; if user has a token but his/her rights are insufficient to perform a request – there should be appropriate response with HTTP status 401;
4. Using other APIs, user is able to publish messages and/or receive messages published by other users.
Assignment Tasks:
Now that you have reviewed the Assignment #1 information as well as gained some background to the application at hand, you will now begin implementation of the following.
What you should do:
1. Using your data model from the previous assignment, you need to create the following diagrams and charts:
a. Activity diagrams, describing the algorithm of possible actions, happening in your system;
. Functional diagrams of all components (services) describing a structure of the application;
c. Sequence diagrams, describing API calls and low-level access;
d. Class diagrams for all your services.
2. Once you have developed each of the diagrams as per the instructions above, please use Swagger Editor to build an API contract for each of the services you created in step # 1.
a. As a result, you should have a YAML file, which can be shared with your facilitator. An Example of that file is in module 5;
3. Save all diagrams as JPEG pictures
Submission Guidelines:
4. You need to submit an archive with the name pattern {Course #}_{Section #}_{Last name}_{First name}.zip containing the YAML file for Swagger Editor as well as the following JPEG pictures:
a. Activity diagrams, describing the algorithm of possible actions, happening in your system;
. Functional diagrams of all components (services) describing a structure of the application;
c. Sequence diagrams, describing API calls and low-level access;
d. Class diagrams for all your services.
1
Assignment Grading Ru
ic (10%)
    Criteria
    Excellent
80-100%
    Good
50-79%
    Requires Improvement
50%
    Points
    Assignment Quality
    All information provided is accurate
All information is clearly expressed and well explained
Contains original ideas, connections or applications
    Most information provided is accurate
All information clearly expressed and explained
Contains mainly original ideas, connections or applications
    Some or no provided information offered
Information is rarely or never clear and require further explanation
Many non- original ideas, or unclear connections or applications
    /1
    Comments
    
    
    
    
    Assignment Knowledge and Skills Demonstration
    Clear, concise synthesis of course content to demonstrate understanding of topic
All ideas are clearly developed, organized logically, and connected with effective transitions
Explores ideas, supports points fully using a balance of evidence, uses effective reasoning to make useful distinctions
All relevant course and topic links are made
    Evidence of some synthesis of course content to demonstrate understanding of topic
Some unified and coherent ideas are developed with effective transitions
Supports most ideas with effective examples, and/or references, and details, makes key distinctions
Most relevant course and topic links are made
    Lack of evidence or weakness in the synthesis of course content to demonstrate understanding of topic
Develops and organizes ideas that are not necessarily connected. Some ideas seem illogical and/or unrelated
Presents ideas in general terms, most ideas are inconsistent/unsupported, and reasoning is flawed or unclea
Some or no relevant course and topic links are made
    /8
    Comments
    
    
    
    
    Assignment Structure
    Formatted as per assignment details
Structure and format enhance delivery of the information
    Formatted as per assignment details in most components
Structure and format fits well with the delivery of the information
    Formatting has not been followed
Structure and format are unclear and impedes delivery of the information
    /1
    Comments
    
    
    
    
    Total Points
    10
    7
    5
    /10

Assignment #1: Data model [10%]
This assignment relates to the following Course Learning Requirements:
CLR 1: Identify, explain, and use various technologies used in the Enterprise environment.
CLR 3: Implement Web Server integration with enterprise applications.
CLR 5: Utilize as well as defend against common security vulnerabilities found in enterprise applications and the multi-server networked environment.
CLR 6: Implement and Integrate various Java based technologies used in the enterprise environment.
Objective of this Assignment:
Check your ability to effectively execute the planning of enterprise applications by defining a schema of a data model in terms of MVC and to choose a communication model.
Pre-Assignment Instructions:
1. To prepare you for this assignment, read the modules 3, 4 and 5 content and follow the embedded learning activities.
2. You require a drawing software that allows you to draw diagrams and charts.
a. The following tool is a suggestion:
i. Standalone app of https:
app.diagrams.net/ which can be downloaded here https:
github.com/jgraph/drawio-desktop
eleases/tag/v13.6.2
ii. You are welcome to use any other such as Microsoft Visio (Windows only), pen and paper (literally).
3. You also must have the following database installed on your computer.
a. For simplicity:
i. I used MySQL v.8+ (https:
dev.mysql.com/downloads/), and provided you an example of the data model in module 5.
ii. You may use any database you wish, moreover if you decide to switch your solution to NoSQL it would be considered as a bonus – NOTE: it should be co
ect and workable, otherwise no bonuses will be added).
Assignment description:
In this assignment you will start by developing a backend for a Twitter-like application.
The functionality of the application should have the following:
1. At least 2 roles
a. Producer; and
. Subscribe
2. The Producers role is the same as the Subscriber, but has some extra capabilities:
a. The producer can produce messages, which the Subscribers get
3. User may have both roles at the same time;
4. Users having the Subscriber role, which means they can subscribe to as many Producers as they want to;
5. All messages stored in the database, can be easily searched based on the following criteria:
a. User (Producer) ID – means who wrote it;
. Message content
Assignment Tasks:
What you should do:
1. Acquiring MVN design pattern, you need to build a data model for the application described in the Assignment Description section together with API Contracts
2. As a result, you should have the following:
· ERD diagram (if you use RDBMS) as a picture of JPEG/PNG format;
· Script to create the data model in the DB (SQL for RDBMS, CQL for Cassandra, etc.), which should be runnable, and creates an expected data structure;
· Script to populate the database with few records (2-3 users, 5-7 messages);
· A minimum of the following queries:
i. Get list of users;
ii. Get list of content producers;
iii. Get list of content subscribers (full);
iv. Get list of content subscribers, subscribed on specific producer;
v. Get all messages;
vi. Get all messages created by specific producer;
vii. Get all messages for given subscriber (it may include messages from multiple producers).
Assignment Submission
3. You need to submit an archive with name pattern {Course #}_{Section #}_{Last name}_{First name}.zip containing the following:
· ERD diagram (if you use RDBMS) as a picture of JPEG/PNG format;
· Script to create the data model in the DB (SQL for RDBMS, CQL for Cassandra, etc.);
· Script to populate the database with few records (2-3 users, 5-7 messages);
· List of queries in regular text file;
· Screenshots demonstrating the result of each query execution.
1
Assignment Grading Ru
ic (10%)
    Criteria
    Excellent
80-100%
    Good
50-79%
    Requires Improvement
50%
    Points
    Assignment Quality
    All information provided is accurate
All information is clearly expressed and well explained
Contains original ideas, connections or applications
    Most information provided is accurate
All information clearly expressed and explained
Contains mainly original ideas, connections or applications
    Some or no provided information offered
Information is rarely or never clear and require further explanation
Many non- original ideas, or unclear connections or applications
    /1
    Comments
    
    
    
    
    Assignment Knowledge and Skills Demonstration
    Clear, concise synthesis of course content to demonstrate understanding of topic
All ideas are clearly developed, organized logically, and connected with effective transitions
Explores ideas, supports points fully using a balance of evidence, uses effective reasoning to make useful distinctions
All relevant course and topic links are made
    Evidence of some synthesis of course content to demonstrate understanding of topic
Some unified and coherent ideas are developed with effective transitions
Supports most ideas with effective examples, and/or references, and details, makes key distinctions
Most relevant course and topic links are made
    Lack of evidence or weakness in the synthesis of course content to demonstrate understanding of topic
Develops and organizes ideas that are not necessarily connected. Some ideas seem illogical and/or unrelated
Presents ideas in general terms, most ideas are inconsistent/unsupported, and reasoning is flawed or unclea
Some or no relevant course and topic links are made
    /8
    Comments
    
    
    
    
    Assignment Structure
    Formatted as per assignment details
Structure and format enhance delivery of the information
    Formatted as per assignment details in most components
Structure and format fits well with the delivery of the information
    Formatting has not been followed
Structure and format are unclear and impedes delivery of the information
    /1
    Comments
    
    
    
    
    Total Points
    10
    7
    5
    /10

Entity Relationship Diagram:
SQL to Create Database and Populate Tables:
-- creating database
--create database Test_D
use Test_D
-- creating producer table
CREATE TABLE Producer (
producer_ID INT IDENTITY(101, 1) PRIMARY KEY,
Producer_NAME VARCHAR(50) NOT NULL,
tweet_message VARCHAR(280),
EMAIL VARCHAR(70)
)
GO
-- creating Subscriber table
CREATE TABLE Subscriber (
Subscriber_ID INT IDENTITY(201, 1) PRIMARY KEY,
Subscriber_NAME VARCHAR(10) NOT NULL
)
GO
-- Creating mapping table to join producer and subscriber table
CREATE TABLE TBL_MAPPING (
producer_ID INT REFERENCES Producer(producer_ID),
Subscriber_ID INT REFERENCES Subscriber(Subscriber_ID)
)
GO
--- Inserting input into Producer table
INSERT INTO Producer VALUES
('Kallie Blackwood', 'Thank you for everything.', ' XXXXXXXXXX'),
('Johnetta Abdallah', 'My last ask is the same as my first.', ' XXXXXXXXXX'),
('Bo
ye Rhym', 'Always in my heart', '
XXXXXXXXXX'),
('Micaela Rhymes', 'the entire planet has gone batshit crazy.', ' XXXXXXXXXX'),
('Tamar Hoogland', 'Twitter is the PvP of social media', ' XXXXXXXXXX')
GO
-- all records from producer table
select * from Produce
-- Inserting into subscriber values
INSERT INTO Subscriber VALUES
('Lee'),
('Zhang'),
('Wang'),
('nguyen'),
('Garcia'),
('tom'),
('ellen'),
('karan'),
('julia'),
('akram')
GO
SQL Queries:
-- All records from Subscriber Table
select * from Subscribe
-- inserting values into mapping table
INSERT INTO TBL_MAPPING VALUES
(101, 201),
(101, 202),
(101, 203),
(102, 205),
Answered 10 days After Feb 13, 2023

Solution

Robert answered on Feb 24 2023
35 Votes
Functional Diagram:
Activity Diagram:
Sequence Diagram:
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here