SE ACT-2 - Final
SE ACT-2 - Final
Programme: BCA
2024-2025
SEMESTER: 03
SECTION: J
Activity #2
EVALUATION CRITERIA
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)
ARCHITECTURE DIAGRAM
1. Client Layer
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
Security: Uses load balancers and reverse proxies to handle scaling and protect
against unauthorized access.
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.
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.
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.
Search Capabilities: Allows users to search for content by tags, keywords, or user
profiles.
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.
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.
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.
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.
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.
Subscription Plans: Manages different subscription plans and paid services (if
applicable).
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
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.
Update User Profile: User profiles are updated with recent engagement
history (e.g., liked posts, reblogged content).
2. Authentication
Content Browsing
5. Performing a Search
Post Creation
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
9. Subscription Renewal
o If payment is due:
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
deactivate User
deactivate User
// Browse Content
API Gateway > Recommendation Engine [icon: star, color: purple]: Get recommendations
API Gateway > CMS [icon: database, color: brown]: Fetch content metadata
// Post Creation
API Gateway > CMS [icon: database, color: brown]: Process and store post
User > Search Service [icon: search, color: teal]: Perform search
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
Billing Service [icon: credit-card, color: pink] > Payment Gateway [icon: dollar-sign, color:
green]: Check billing cycle
}
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 Username
o Email
o Password
o JoinDate
Relationships:
o Each user can have multiple Followers and Followees (other users
they follow).
2. Blog
Attributes:
o BlogName
o CreationDate
3. Post
Attributes:
o CreationDate
o Tags
Relationships:
4. Comment
Attributes:
o Content
o CommentDate
Relationships:
o LikeDate
Relationships:
o Each like is associated with one User who liked the post.
6. Reblog
Attributes:
o ReblogDate
Relationships:
o Each reblog is associated with the Original Post and creates a Reblogged Post.
7. Tag
Attributes:
o TagName
Relationships:
Purpose:
9. Follow
Attributes:
o FollowDate
Relationships:
o Each follow entry links a Follower user to a Followee user, allowing many-to-
many relationships.
10. Notification
Attributes:
o Status (read/unread)
o Date
Relationships:
including:
One-to-Many Relationships:
Many-to-Many Relationships:
// define tables
UserID string pk
Username string
Email string
Password string
JoinDate date
Status string
BlogID string pk
UserID string fk
BlogName string
CreationDate date
PrivacySetting string
PostID string pk
BlogID string fk
Content string
PostType string
CreationDate date
Tags string
CommentID string pk
PostID string fk
UserID string fk
Content string
CommentDate date
LikeID string pk
PostID string fk
UserID string
fk LikeDate
date
ReblogID string pk
OriginalPostID string fk
RebloggedPostID string fk
UserID string fk
ReblogDate date
}
{ FollowID string pk
FollowerID string fk
FolloweeID string
fk FollowDate date
NotificationID string pk
UserID string fk
Type string
ReferenceID string
Status string
Date date
TagID string pk
TagName string
PostID string fk
TagID string fk
pk (PostID, TagID)
// define relationships
USERS
BLOGS
POSTS
COMMENTS
LIKES
REBLOGS
TAGS
| TagID | TagName |
POSTTAGS
| PostID | TagID |
FOLLOWS
NOTIFICATIONS