0% found this document useful (0 votes)
21 views28 pages

SE ACT-2 - Final

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views28 pages

SE ACT-2 - Final

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 28

School of Computer Science and Information Technology

Programme: BCA

2024-2025
SEMESTER: 03

SECTION: J

COURSE NAME: SOFTWARE ENGINEERING

PROPOSED SYSTEM: TUMBLR

Activity #2

Group No: Date of Submission: 11/11/2024

SUBMITTED BY: Talathoti Vinay Vardhan- 23BCAR0194


Thatte Pavan Kumar– 23BCAR0195
Vishwas Gowda– 23BCAR0214
Aathish– 23BCAR0161
Name of Faculty In-Charge : Prof. Ashwini

EVALUATION CRITERIA

Report Oral Viva Total Convert 25


Submission Presentation (5) (25) into

(15) (05) 15 marks

DECLARATION
We declared that Activity-2 has been carried out by us following all ethical practices of Jain
(Deemed-to-be-University) for the partial fulfillment of the Software Engineering Course of
BCA in the year 2024-2025 (3rd Semester)

Talathoti Vinay Vardhan- 23BCAR0194


Thatte Pavan Kumar– 23BCAR0195
Vishwas Gowda– 23BCAR0214
Aathish– 23BCAR0161
Name, USN No & Signature of the Students

ARCHITECTURE DIAGRAM
1. Client Layer

 User Devices: Desktop and mobile apps, tablets, web browsers.

 Interface: API calls and web-based user interfaces that interact with Tumblr’s back-
end services.

 Primary Actions: Browsing the dashboard, creating posts, reblogging, liking, and
commenting.

2. API Gateway

 Purpose: Entry point for all client requests.

 Functions: Manages authentication, routing, load balancing, and request filtering.

 Security: Uses load balancers and reverse proxies to handle scaling and protect
against unauthorized access.

3. Authentication and Authorization

 User Management: Manages user registration, login, access control, and session
management.

 Secure Access: Uses OAuth and token-based systems to enable secure third-party
access (e.g., login with Google).

 Profile Management: Stores user profiles, settings, privacy preferences, and content
history.

4. Content Management System (CMS)

 Post Creation Pipeline: Processes posts (text, image, video, audio), including
formatting, media encoding, and storage.

 Content Storage: Uses cloud storage (e.g., AWS S3) to manage multimedia files.

 Metadata Service: Manages metadata for posts, such as tags, descriptions,


timestamps, and visibility settings.

5. Recommendation Engine
 Personalization: Uses machine learning to recommend posts based on user interests
and interactions.

 Data Processing Pipelines: Analyzes user behavior, like views, likes, and reblogs, to
provide personalized recommendations.

 User Data Access: Accesses user activity history and engagement data to refine
content suggestions.

6. Search and Discovery Service

 Search Capabilities: Allows users to search for content by tags, keywords, or user
profiles.

 Search Database: Uses ElasticSearch or similar technology to handle fast and


efficient search queries.

 Integration with Recommendations: Works with the recommendation engine to


provide relevant search results.

7. Content Delivery Network (CDN)

 Global Content Distribution: Distributes images, videos, and other static content to
reduce latency for global users.

 Caching for Speed: Ensures popular content is cached close to users to reduce load
times and improve the browsing experience.

8. Media Encoding and Handling Services

 Media Processing: Encodes uploaded media into multiple formats and resolutions.

 Adaptive Quality: Ensures media quality adapts to users' internet speeds, providing
smooth playback on all devices.

 CDN Integration: Integrates with CDN to deliver media in the optimal format for
each user’s device and connection speed.

9. Data Analytics and Monitoring

 Real-Time Monitoring: Tracks engagement metrics, such as likes, reblogs, and


comments, in real-time.

 Data Aggregation: Gathers insights into user behavior, popular posts, and trending
tags.
 Reporting: Helps the business team make decisions on content and community
management, as well as feature optimization.

10. Logging and Monitoring

 Activity Logging: Uses tools like the ELK stack (ElasticSearch, Logstash, Kibana)
for logging user actions and system events.

 System Health Monitoring: Observes system health metrics, API response times,
and network usage.

 Alerting: Sets up alerts for system issues, such as server overload or API failures.

11. Database Layer

 NoSQL Database: Stores user-generated content (e.g., posts, comments, likes) using
databases like MongoDB.

 Relational Database: Manages structured data, such as user accounts, billing, and
preferences.

 Data Lake: Stores raw data for analytics and machine learning, possibly using
Amazon S3 or similar storage solutions.

12. Payment and Subscription Service

 Subscription Plans: Manages different subscription plans and paid services (if
applicable).

 Billing and Payment Processing: Integrates with third-party payment gateways to


handle secure transactions.

 Account Management: Tracks user subscriptions, renewal status, and payment


history.
Diagram Representation
Here's how you can organize these components in a vertical, top-to-bottom flow:

1. Client Layer
o User Devices (desktop, mobile, web)
o → API Gateway
 Handles routing and security
o → Authentication and Authorization
 User login, profile management
2. API Gateway → Routes to:
o Content Management System (CMS)
 Handles media storage and metadata
o Recommendation Engine
 Personalizes the user experience
o Search and Discovery Service
 Searches content by tags, keywords
3. CMS → Content Storage → CDN → User Devices
o Ensures fast media delivery
4. Media Encoding and Handling → Content Delivery Network (CDN)
o Supports adaptive media quality
5. Database Layer
o NoSQL for content, Relational for user data, Data Lake for analytics
6. Data Analytics and Monitoring
o Tracks engagement, system health
7. Logging and Monitoring
o Manages activity logs, error tracking
8. Payment and Subscription Service
o Manages subscriptions and payment processing
ACTIVITY DIAGRAM
Activity Diagram Breakdown:
1) User Login & Authentication

 Start: User initiates login.

 Authenticate User: API Gateway routes the request to the Authentication


service.

 Authorization Check: If credentials are correct, the user is authorized.

 Success: User is logged in; if unsuccessful, prompt for retry or show an


error message.

2) Content Browsing and Discovery

 Content Request: User browses the dashboard or searches for specific


content.

 Recommendation Engine: Provides personalized content


recommendations based on user interests and past interactions.

 Fetch Content Metadata: API Gateway queries the CMS to retrieve


metadata (e.g., post titles, descriptions, tags, thumbnails).

 Content Display: Displays relevant content on the user’s feed or search


results page.
3) Post Creation and Engagement

 Post Creation: User initiates creating a post (e.g., text, image, video).

 Post Processing: API Gateway sends post data to the CMS, where the
post is processed and stored.

 Content Publishing: The CMS publishes the post to the user's blog or
dashboard, making it available to followers.

4) Track Engagement and Interaction Data

 Engagement Collection: Collect user interactions like likes, reblogs, and


comments on posts.

 Store Data in Database: Engagement data is logged in real-time in the


analytics database.

 Update User Profile: User profiles are updated with recent engagement
history (e.g., liked posts, reblogged content).

5) Feedback Loop to Recommendation Engine

 Analyze Interaction Patterns: Data analytics service evaluates user


interactions to understand preferences.

 Update Recommendations: The recommendation engine updates content


suggestions based on recent engagement.

6) Subscription and Payment (If Applicable)

 Billing Cycle Check: On subscription renewal (for premium features, if


offered), the payment service checks the status.

 Process Payment: Payment is processed if due.

 Subscription Status Update: If successful, the user’s subscription remains


active.
SEQUENCE DIAGRAM
User Login & Authentication

1. User Initiates Login

o The user initiates the login process by sending a login request


to the API Gateway.

2. Authentication

o The API Gateway forwards the login request to the Auth


Service for credential verification.

o If credentials are correct:

 The Auth Service confirms authentication, and the user is


authorized to access the platform.

o If credentials are incorrect:

 The Auth Service sends an error message back to the user.

Content Browsing

3. Request for Content Recommendations

o The user sends a content browsing request to the API Gateway.

o The API Gateway interacts with the Recommendation Engine


to fetch personalized content suggestions.
4. Fetching Metadata

o The API Gateway requests metadata from the Content


Management System (CMS).

o The CMS responds with the metadata (e.g., post titles,


descriptions, tags), which the API Gateway uses to display
content options to the user.

Searching and Filtering Content

5. Performing a Search

o The user performs a content search by sending a request to the


Search Service.

o The Search Service returns search results (e.g., relevant posts,


tags, profiles) to the user.

Post Creation

6. User Creates Post

o The user initiates a new post creation (text, image, or video)


and sends it to the API Gateway.

o The API Gateway forwards the post data to the CMS for
processing and storage.

o The CMS saves the post and makes it available for display on
the user’s profile and dashboard feed.
Tracking Engagement and Interaction Data

7. Collecting Engagement Data

o User interactions (e.g., likes, reblogs, comments) are sent to


the Analytics Service.

o The Analytics Service logs this data in a database and updates


the user's engagement profile.

8. Feedback Loop for Recommendations

o The Analytics Service sends interaction data (e.g., likes, reblogs) to


the Recommendation Engine to improve content recommendations.

Subscription and Billing (If Applicable)

9. Subscription Renewal

o The Billing Service checks the user's subscription status through


the Payment Gateway.

o If payment is due:

 The Payment Gateway processes the payment, and the


Billing Service confirms the user’s subscription as active.

o If payment is not due:

 The Billing Service informs the user that no action


is needed.
PSUEDO CODE

// User Login & Authentication

User [icon: user, color: lightblue] > API Gateway [icon: cloud, color: gray]: Initiate login

activate User

API Gateway > Auth Service [icon: lock, color: orange]: Authenticate user

alt [label: credentials correct, color: green] {

Auth Service > User: Access Granted

deactivate User

else [label: credentials incorrect, color: red] {

Auth Service > User: Error Message

deactivate User

// Browse Content

User > API Gateway: Browse content

API Gateway > Recommendation Engine [icon: star, color: purple]: Get recommendations

Recommendation Engine > API Gateway: Return recommendations

API Gateway > CMS [icon: database, color: brown]: Fetch content metadata

CMS > API Gateway: Return metadata

API Gateway > User: Display content options

// Post Creation

User > API Gateway: Initiate Post Creation

API Gateway > CMS [icon: database, color: brown]: Process and store post

CMS > API Gateway: Store and make available


API Gateway > User: Post published successfully

// Search and Filter Content

User > Search Service [icon: search, color: teal]: Perform search

Search Service > User: Display search results

// Track Engagement and Interaction Data

User > Analytics Service [icon: bar-chart, color: yellow]: Capture User Interactions

Analytics Service > Database [icon: database, color: brown]: Log Engagement Data

Analytics Service > User Profile [icon: user-check, color: lightblue]: Update user profile

// Feedback Loop to Recommendation Engine

Analytics Service > Recommendation Engine: Analyze interaction patterns

Recommendation Engine > User: Update content recommendations

// Subscription and Billing

opt [label: subscription renewal] {

Billing Service [icon: credit-card, color: pink] > Payment Gateway [icon: dollar-sign, color:
green]: Check billing cycle

alt [label: payment due, color: orange] {

Payment Gateway > Billing Service: Process payment

Billing Service > User: Subscription active

else [label: payment not due] {

Billing Service > User: No action needed

}
ER DIAGRAM AND TABLE SCHEMA
An ER (Entity-Relationship) diagram for a streaming platform like Netflix would
represent various entities involved in the system and their relationships. Here’s
a structured breakdown of the main entities, attributes, and relationships:

1. User
 Attributes:

o UserID (Primary Key)

o Username

o Email

o Password

o JoinDate

o Status (active, banned, etc.)

 Relationships:

o Each user can have multiple Blogs.

o Each user can have multiple Followers and Followees (other users
they follow).

2. Blog
 Attributes:

o BlogID (Primary Key)

o UserID (Foreign Key to User)

o BlogName

o CreationDate

o PrivacySetting (public, private, etc.)


 Relationships:

o Each blog is associated with one User.

o Each blog can have multiple Posts.

3. Post
 Attributes:

o PostID (Primary Key)

o BlogID (Foreign Key to Blog)

o Content (text, image, video, etc.)

o PostType (text, image, video, audio, link)

o CreationDate

o Tags

 Relationships:

o Each post is associated with one Blog.

o Each post can have multiple Likes, Comments, and Reblogs.

4. Comment
 Attributes:

o CommentID (Primary Key)

o PostID (Foreign Key to Post)

o UserID (Foreign Key to User)

o Content

o CommentDate

 Relationships:

o Each comment is associated with one Post.

o Each comment is associated with one User who made it.


5. Like
 Attributes:

o LikeID (Primary Key)

o PostID (Foreign Key to Post)

o UserID (Foreign Key to User)

o LikeDate

 Relationships:

o Each like is associated with one Post.

o Each like is associated with one User who liked the post.

6. Reblog
 Attributes:

o ReblogID (Primary Key)

o OriginalPostID (Foreign Key to Post)

o RebloggedPostID (Foreign Key to Post)

o UserID (Foreign Key to User)

o ReblogDate

 Relationships:

o Each reblog is associated with the Original Post and creates a Reblogged Post.

o Each reblog is associated with one User who reblogged it.

7. Tag
 Attributes:

o TagID (Primary Key)

o TagName

 Relationships:

o A PostTags join table links Posts to Tags for many-to-many relationships.


8. PostTags (Join Table)
 Attributes:

o PostID (Foreign Key to Post)

o TagID (Foreign Key to Tag)

 Purpose:

o Associates multiple tags with each post and allows many-to-many


relationships between Posts and Tags.

9. Follow
 Attributes:

o FollowID (Primary Key)

o FollowerID (Foreign Key to User)

o FolloweeID (Foreign Key to User)

o FollowDate

 Relationships:

o Each follow entry links a Follower user to a Followee user, allowing many-to-
many relationships.

10. Notification
 Attributes:

o NotificationID (Primary Key)

o UserID (Foreign Key to User)

o Type (e.g., new follower, like, comment)

o ReferenceID (ID of related entity, such as PostID or CommentID)

o Status (read/unread)

o Date

 Relationships:

o Each notification is associated with one User who receives it.


Diagram Representation
In the ER diagram for a Tumblr platform:

 Entities (e.g., User, Blog, Post) are represented as rectangles.

 Relationships are represented as diamonds connecting entities, such as


"owns" between User and Blog or "follows" between User and User for
follower relationships.

 Attributes are represented as ovals attached to their corresponding entity.

 Primary Keys are underlined in each entity.

This setup illustrates various interactions,

including:

 One-to-Many Relationships:

o A User can own multiple Blogs.

o A Blog can contain multiple Posts.

o A Post can have multiple Comments, Likes, and Reblogs.

 Many-to-Many Relationships:

o User and User are linked through a Follow relationship,


allowing users to follow each other.

o Post and Tag are linked via a PostTags join table,


allowing multiple tags for each post and vice versa.
PSUEDO CODE
// End of tables

title Blogging Platform ERD

// define tables

User [icon: user, color: blue] {

UserID string pk

Username string

Email string

Password string

JoinDate date

Status string

Blog [icon: book-open, color: green] {

BlogID string pk

UserID string fk

BlogName string

CreationDate date

PrivacySetting string

Post [icon: file-alt, color: yellow] {

PostID string pk

BlogID string fk

Content string
PostType string

CreationDate date

Tags string

Comment [icon: comment, color: purple] {

CommentID string pk

PostID string fk

UserID string fk

Content string

CommentDate date

Like [icon: thumbs-up, color: red] {

LikeID string pk

PostID string fk

UserID string

fk LikeDate

date

Reblog [icon: retweet, color: teal] {

ReblogID string pk

OriginalPostID string fk

RebloggedPostID string fk

UserID string fk

ReblogDate date
}

Follow [icon: user-friends, color: darkred]

{ FollowID string pk

FollowerID string fk

FolloweeID string

fk FollowDate date

Notification [icon: bell, color: pink] {

NotificationID string pk

UserID string fk

Type string

ReferenceID string

Status string

Date date

Tag [icon: tag, color: yellow] {

TagID string pk

TagName string

PostTags [icon: link, color: gray] {

PostID string fk

TagID string fk
pk (PostID, TagID)

// define relationships

Blog.UserID > User.UserID

Post.BlogID > Blog.BlogID

Comment.PostID > Post.PostID

Comment.UserID > User.UserID

Like.PostID > Post.PostID

Like.UserID > User.UserID

Reblog.OriginalPostID > Post.PostID

Reblog.RebloggedPostID > Post.PostID

Reblog.UserID > User.UserID

Follow.FollowerID > User.UserID

Follow.FolloweeID > User.UserID

Notification.UserID > User.UserID

PostTags.PostID > Post.PostID

PostTags.TagID > Tag.TagID


TABLE SCHEMA

USERS

| UserID | Username | Email | Password | JoinDate | Status |

BLOGS

| BlogID | UserID | BlogName | CreationDate | PrivacySetting |

POSTS

| PostID | BlogID | Content | PostType | CreationDate | Tags |

COMMENTS

| CommentID | PostID | UserID | Content | CommentDate |

LIKES

| LikeID | PostID | UserID | LikeDate |

REBLOGS

| ReblogID | OriginalPostID | RebloggedPostID | UserID | ReblogDate |

TAGS

| TagID | TagName |

POSTTAGS

| PostID | TagID |
FOLLOWS

| FollowID | FollowerID | FolloweeID | FollowDate |

NOTIFICATIONS

| NotificationID | UserID | Type | ReferenceID | Status | Date |

You might also like