srs
srs
PROBLEM STATEMENT
AIM
The aim of this project is to create an innovative social networking platform designed to
connect users and fans in a Simplified and Easy-to-use environment. this platform
designed to help influencers, content creators, and public figures engage with their
fanbase. It provides tools for monetizing content, interacting with followers, and offering
exclusive experiences. Fans can subscribe to their favourite creators for exclusive content
and updates. In this platform user also share image, video, post and vote on it and also
comment on the content.
REQUIREMENTS:
Hardware Interfaces:
• Server Infrastructure:
o Web Server:
1
Storage: SSD-based storage, minimum 1 TB with RAID for data
integrity.
o Backup Server:
RAM: 16 GB.
o Load Balancer:
• User Devices:
• Networking:
2
Software Interfaces:
• Operating System:
o Client OS: Windows, macOS, Linux, Android, iOS (for end-user devices).
o Backend:
o Frontend:
• Security Software:
3
• Development Tools:
• Browser Support:
Relevance: In today’s world, where people are more apart from each other. Social
networking websites are the ways that we connect with each other. But instead of
connecting with each other, the social networking websites/apps have made us more
connected from each other So, from the vast no of social networking apps available in
the market, fan-connect stand apart from all of these social networking website which
help the creator and fans connect and for more interaction with each other.
THEORY:
Social networking sites have intensely transformed how the exchange information,
individuals interact and making communities online. The social networking site help to
make strong bonding and bridging between people, even with those geographically
4
distance. This website help us to interact with the users and fans without any problem. In
this website the subscription plan is also active so creator give you exclusive right and
private interact and chat with users . users also give suggestion to the creator which topic
he make next video and project so user interact more in this platform. This system help
the creator to decentralize money from the system the money he get the users. the money
user transfer to the creator also use blockchain system so there is no track backing of the
money the the creator save some money.
5
6
7
8
9
10
11
12
13
14
15
16
17
EXPERIMENT - 3
Cost Estimation
Social media website
Introduction
This document outlines the project estimation for developing an social media website (SMW)
for a clothing brand like Myntra using the COCOMO Model (Constructive Cost Model).
COCOMO helps in estimating the effort, time, and manpower required for software
development projects. This helps breakdown the costs that have been used in the development,
testing and marketing.
COCOMO Models:
COCOMO has different types of models for different estimations:
1.Basic COCOMO: it is simple way to estimate the effort that will be required to develop the
software project.
2.Intermediate Model: it involves in including more factors besides the line of code such as
reliability, experience and capability.
3.Detailed Model: a model with a wider range of parameters compared to the basic and
intermediate models such as team experience and software complexity.
18
COMPARISON OF THE THREE COCOMO MODELS:
COCOMO Formulas
The basic COCOMO model is used to estimate the effort \(E\) (in Person-Months) and
development time \(D\) (in Months) for the project. It does not factor in additional parameters
like software complexity and team experience.
BASIC COCOMO COEFFICIENTS
Software Project ab bb cb db
Organic 2.4 1.05 2.5 0.38
Semidetached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
Basic Equations
Effort (E):
E = ab*(KLOC)^bb
Where:
E is the effort in Person-Months (PM).
19
KLOC is the number of thousands of lines of code.
ab and bb are mode-specific constants (for Semidetached Mode: ( ab = 3.0 ), ( bb = 1.12 )).
Project Assumptions
For the social media website, the estimated size of the project is 50 KLOC (50,000 lines of
code). This assumption is based on the complexity and functionality of an IMS for a large e-
commerce platform.
E=ab(KLOC)^bb
E = 2.4*(50) ^1.05
E=126PM
Development Time:
D=Cb(E)^db
D= 2.5*(126) ^0.38
D = 8.899344 PM
Staffing Requirement:
SS = 126/8.8993
SS = 14 Persons
20
Productivity(P):
P = KLOC/E KLOC/PM
P = 50/126 KLOC/PM
P = 0.39682 KLOC/PM
8.Conclusion
The COCOMO model provides a clear framework to estimate the effort, time, and resources
required for the development of an social media website. For an e-commerce platform like
Facebook, unifan this model gives a good overview of what it takes to build such a complex
system. Further refinement can be done by applying more detailed COCOMO models or
adjusting based on actual project needs and constraints.
---
21
EXPERIMENT - 4
WHAT IS AN ER DIAGRAM?
An ER Diagram is a method to represent the relationships between entities and the various relations
in which they are connected to each other. It’s commonly used in database designs, software
planning and project development. We can identify how different elements interact with each other
using an ER diagram.
1. Entities: Entities represent the real-world objects and are shown using rectangles. An entity can
either be a weak entity or a strong entity.
2. Attributes: Attributes are the qualities or characteristics that an entity might contain. These are
useful for identifying a specific entity among a pool of entities, using useful characteristics such
as primary keys. These are represented by oval shape and can be of various types.
3.Relationships: Relationships tell us how the various entities are related to each other. These are
useful for threading a huge number of entities in a big project. These are represented by rhombus
or diamond shape.
4.Primary Key: Primary key is used to uniquely identify an entity from a pool of entities. It is
represented by an underline in an attribute container.
5.Cardinality Constraints: These are used to show the proportion in which entities are related to
each other. These could be 1-1 (one-to-one), 1-N (one-to-many) or M-N (many-to-many).
Example:
22
Relationships: User manages Photos, Posts, etc.
23
ER Diagram – Admin Side
24
EXPERIMENT - 5
Aim:
To understand the concept of the domain classes and identify a list of potential domain classes
from the given project and make the class object diagram
In ULM (Unified Modelling Language), a domain class represents a concept or entity from the
problem domain being modelled. It typically corresponds to a class in object-oriented
programming and represents a real-world entity, such as a person, place, thing, or concept, that has
attributes and behaviours.
Domain classes are used to model the structure and behaviour of objects in a system. They
define the properties (attributes) that objects of the class possess and the operations
(methods) that they can perform.
Domain classes are often used to represent the core concepts and relationships in a system,
providing a foundation for designing and implementing the system’s functionality.
25
EXPERIMENT – 6
Aim:
To identify the distinct state causing the transition from one state to another and represent the
above information pictorially using activity diagram
The main components of the activity diagram for the Social Networking site Fanconnect:
1. Actors (fans)
User: Actions like posting, messaging, liking, tagging, filtering content, and blocking.
Fanconnect System: Automated tasks such as verifying login, moderating content,
filtering posts, managing notifications, and storing data.
User Swimlane: User-driven activities (e.g., post creation, sending messages).
26
2. Start/End Symbols
Start: The diagram starts with a filled circle, symbolizing the beginning of user
interaction, such as a user logging in or accessing the platform.
End: The process concludes with a filled circle surrounded by a border, marking the
completion of actions like a successful post, message sent, or user logging out.
3. Actions/Activities
Activities are denoted by rounded rectangles that represent a specific action or step in
the process.
Examples:
Create Post: User creates a new post.
Send Message: User sends a message to another user.
Apply Filter: System filters content based on user preferences.
4. Decisions/Branches
Represented by a diamond shape, decision points show where the flow of the process
branches based on a condition.
In this diagram, there are two decision points:
o Is Content Appropriate? If yes, the post is published; if no, the system applies filters.
o Message Sent? If yes, the message is delivered; if no, the user is notified of failure.
5. Flows/Transitions
Arrows represent the direction of the flow, showing how one activity leads to the next.
Example: From "Create Post" to "Publish Post", the arrow shows the transition between
these two activities in the user's journey.
6. Synchronization Bars
Purpose: Used to represent parallel processes or synchronize actions.
27
Example: Could show "Send Notification" and "Update Activity Log" happening
simultaneously after a user sends a message or creates a post.
These bars help illustrate processes occurring in parallel within the workflow.
28
EXPERIMENT - 7
Login Request: The User submits login credentials, and the System verifies them against the
UserDatabase. If successful, access is granted with a success message; otherwise, an error is
shown.
Request Feed: The User requests their feed, and the System retrieves their filter preferences from
the PreferencesDatabase and content from the ContentDatabase, displaying the filtered feed.
29
Start Anonymous Chat: The User starts an anonymous chat by sending a request. The System
opens a chat session in the MessagingSystem, where messages are exchanged, and chat history is
saved for future reference.
Report/Block Content: The User reports or blocks content, and the System logs the action in the
ReportSystem. The User's feed and preferences are then updated accordingly.
30
31
32
EXPERIMENT – 9
CONTROL FLOW GRAPH(CFG)
What is CFG?
Control Flow Graph (CFG) is a graphical representation of all possible paths that might
be traversed through a program during its execution.
Each node in a CFG represents a basic block, which is a sequence of statements or
instructions with no branches except at the entry and exit. The edges in the graph
represent the control flow paths between these blocks.
Method 2
In the program’s control flow graph GGG, any region enclosed by nodes and edges can be
called a bounded area.
The formula to compute cyclomatic complexity in this method is:
V(G)=Total number of bounded areas + 1
Method 3:
The cyclomatic complexity of a program can also be easily computed by computing the number
of decision statements of the program. If N is the number of decision statement of a program,
then the McCabe's metric is equal to N+1.
33
V(G) = N+1
Q1. IF A = 354
THEN IF B > C
THEN A = B
ELSE A = C
END IF
END IF
PRINT A
34
end
35
EXPERIMENT - 10
DESIGNING TEST SUITS
Understanding Software Testing
Software testing is an integral phase of the software development lifecycle, focusing on
enhancing software quality by uncovering and rectifying defects. It involves systematically
evaluating a software product against its requirements to identify deviations (defects, errors, or
bugs) and ensure the software behaves as intended.
2. Defect
A defect is the disparity between the expected outcome and the actual results. It can
stem from errors in design, incorrect specifications, or coding flaws.
1. Unit Testing
36
I. Black Box Testing: Examines the input-output behaviour without delving into internal
code structures. Techniques include:
II. White Box Testing: Evaluates the internal workings of code. Techniques involve:
2. Integration Testing
Evaluates how individual units interact when combined. This testing can be approached in two
ways:
3. System Testing
A comprehensive assessment of the entire system to ensure functionality and non-functional
attributes (e.g., reliability, security).
II. Beta Testing: Performed by a select group of users before the final release.
III. User Acceptance Testing (UAT): Ensures the product aligns with client requirements
and expectations.
4. Regression Testing
Focused on verifying that recent code changes, such as bug fixes or feature additions, have not
adversely impacted existing functionalities. Regression testing is performed regularly after
updates or modifications.
37
Example
#include <stdio.h>
int main()
int n, res;
scanf("%d", &n);
res = n * n;
38
}
return 0;
Output
Inputs Outputs
I3 : 1 O3 : Square of 1 is 1
I6 : 4 O6 : Square of 4 is 16
I7 : 62 O7 : Square of 62 is 3844
Test Cases
T1 : {I1 , O1}
T2 : {I2 , O2}
T3 : {I3 , O3}
T4 : {I4 , O4}
T5 : {I5 , O5}
T6 : {I6 , O6}
T7 : {I7 , O7}
39