3.1 Solution Design
3.1.1 Conceptual Design
The conceptual design represents the overall idea behind the project, breaking it down into features and components. The system aims to provide users with a platform where they can:
-
Create an account
-
Explore the system for additional information
-
Access and update their profile
-
Send messages to other users
-
Post updates and comments
-
Create groups and pages
To better visualize the concept, a Data Flow Diagram (DFD) has been designed. It shows how each feature interacts with the core database. Each feature is modeled individually to explain its functionality while also being integrated into a complete system view.
3.1.2 Logical Design
The logical design focuses on the relationships and interactions between features and entities. We created an Entity Relationship Model (ERM) that clearly illustrates how each feature is logically connected to others.
For example:
-
A User entity interacts with Posts, Comments, Images, Tags, and Likes.
-
A Comment is associated with a specific Post, meaning a post must exist before it can be commented on.
The ERM also specifies the attributes of each entity and how they can be integrated logically.
3.1.3 Physical Design
The physical design transforms conceptual and logical designs into practical implementation. Here, the entities and their relationships are translated into real database tables, including keys, constraints, and relational logic.
Figure 3.1: Entity Relationship Diagram (ERD)
Description: Shows all main entities and their mutual relationships.
3.2 Entities and Attributes
Below are the main entities and their attributes represented in Figures 3.2.1 through 3.2.17:
-
User Entity (Fig 3.2.1)
Attributes:user_id, firstName, lastName, email, password, gender, userSecurityQuestion, securityAnswer -
Profile Entity (Fig 3.2.2)
Attributes:user_id, ProfileImage, ProfileName, UserId -
Permanent Address Entity (Fig 3.2.3)
Attributes:PermanentAddress, UserId, HomePhoneNumber, OfficePhoneNumber, MobileNumber, HouseNumber, PostalCode, City, District, State, StreetNo -
Current Address Entity (Fig 3.2.4)
Attributes:currentAddressId, UserId, HomePhoneNumber, OfficePhoneNumber, MobileNumber, HouseNumber, PostalCode, City, District, State, Country, StreetNo -
Experience Entity (Fig 3.2.5)
Attributes:experienceId, UserId, jobTitle, jobField, jobDescription, joinDate, endDate, currentlyWork, company, companyDescription, status -
User Education Entity (Fig 3.2.6)
Attributes:educationId, userId, eduLevel, EduInstitute, startYear, endYear, BoardUniversity -
User Friend Entity (Fig 3.2.7)
Attributes:userfrdId, UserId, userFriendId, status, Time -
Post Entity (Fig 3.2.8)
Attributes:postId, userId, postText, postStatus, postDateAndTime, postImageId, GroupId, pageId -
Comment Entity (Fig 3.2.9)
Attributes:commId, postId, userId, commText, imageId, date_comm -
Images Entity (Fig 3.2.10)
Attributes:imgId, userId, imageName, DateName, dateUploaded, imgStatus -
Like Entity (Fig 3.2.11)
Attributes:likeId, postId, userId, imageId, dateTimeLiked -
Groups Entity (Fig 3.2.12)
Attributes:GroupId, UserId, GroupCategoryId, GroupName, Description, CreatedAt, Image, AdminStatus, Role, GroupStatus -
GroupsCategory Entity (Fig 3.2.13)
Attributes:GroupCategoryID, CategoryName, GroupCategoryIcon -
UserGroupRelation Entity (Fig 3.2.14)
Attributes:UserGroupRelationId, GroupID, UserID, JoinDateTime -
Page Entity (Fig 3.2.15)
Attributes:PageId, PageName, TimeLineImage, TimeLineImageCropped, Description, PageCategoryId, UserId, CreatedAt, LogoImage, LogoImageCropped -
PageCategory Entity (Fig 3.2.16)
Attributes:PageCategoryId, PageCategoryName, PageCategoryIcon -
UserPageLikeRelation Entity (Fig 3.2.17)
Attributes:UserPageLikeRelationId, LikeId, UserId, PageId
3.3 Data Flow Diagram (DFD)
A Data Flow Diagram visually represents the flow of data through the system and how information is processed. DFDs are highly effective because they:
-
Are easy for both technical and non-technical audiences to understand
-
Provide a high-level system overview with clear boundaries and connections
-
Detail system components and their interactions
DFDs consist of Entities, Processes, Data Stores, and Data Flows. They help demonstrate how input data is transformed into output results.
3.3.1 Solution Architecture
Figure 3.3.1: Level 0 Data Flow Diagram
Description: Shows the broad system workflow. A user signs up, logs in, and accesses modules such as Profile, Posts, Groups, Friends, Messages, Likes, Pages, and Indicators.
Figure 3.3.2: Level 1 DFD for Account Creation
Description: The account creation process includes client-side and server-side validations, password encryption, and CAPTCHA for security.
Figure 3.3.3: Level 1 DFD for Groups and Pages
Description: Users can create groups and pages, and all data is stored in the corresponding database tables.
Figure 3.3.4: Level 1 DFD for Friends and Messaging
Description: Users can add friends, accept friend requests, and exchange messages with notifications for read/unread statuses.
Figure 3.3.5: Level 1 DFD for Posting and Commenting
Description: Users can post text or images, comment, and like posts. All actions are recorded in the database.
Figure 3.3.6: Level 2 DFD
Description: Combines all modules and shows relationships between them using directional arrows, representing the complete system workflow.
Comments
Post a Comment