Skip to main content

Chapter 3: Software Design

Chapter 3: Software Design

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.

Fig 3.1 Entity Relationship Diagram



3.2 Entities and Attributes

Below are the main entities and their attributes represented in Figures 3.2.1 through 3.2.17:

  1. User Entity (Fig 3.2.1)


    Attributes: user_id, firstName, lastName, email, password, gender, userSecurityQuestion, securityAnswer

  2. Profile Entity (Fig 3.2.2)

    Attributes: user_id, ProfileImage, ProfileName, UserId

  3. Permanent Address Entity (Fig 3.2.3)

    Permanent Address Entity (Fig 3.2.3)
    Attributes: PermanentAddress, UserId, HomePhoneNumber, OfficePhoneNumber, MobileNumber, HouseNumber, PostalCode, City, District, State, StreetNo
  4. Current Address Entity (Fig 3.2.4)

    Fig 3.2.4 Permanent Address   Entity


    Attributes: currentAddressId, UserId, HomePhoneNumber, OfficePhoneNumber, MobileNumber, HouseNumber, PostalCode, City, District, State, Country, StreetNo

  5. Experience Entity (Fig 3.2.5)

    Fig 3.2.5 Permanent Address


    Attributes: experienceId, UserId, jobTitle, jobField, jobDescription, joinDate, endDate, currentlyWork, company, companyDescription, status

  6. User Education Entity (Fig 3.2.6)

    Fig 3.2.6 User_education Entity


    Attributes: educationId, userId, eduLevel, EduInstitute, startYear, endYear, BoardUniversity

  7. User Friend Entity (Fig 3.2.7)

    Fig 3.2.7 User _Friend  Entity


    Attributes: userfrdId, UserId, userFriendId, status, Time

  8. Post Entity (Fig 3.2.8)

    Fig 3.2.8 Post Entity


    Attributes: postId, userId, postText, postStatus, postDateAndTime, postImageId, GroupId, pageId

  9. Comment Entity (Fig 3.2.9)

    Fig 3.2.9 Comments Entity


    Attributes: commId, postId, userId, commText, imageId, date_comm

  10. Images Entity (Fig 3.2.10)

    Fig 3.2.10 Images Entity


    Attributes: imgId, userId, imageName, DateName, dateUploaded, imgStatus

  11. Like Entity (Fig 3.2.11)

    Fig 3.2.11 Like Entity


    Attributes: likeId, postId, userId, imageId, dateTimeLiked

  12. Groups Entity (Fig 3.2.12)
    Fig 3.2.12 Groups Entity

    Attributes: GroupId, UserId, GroupCategoryId, GroupName, Description, CreatedAt, Image, AdminStatus, Role, GroupStatus

  13. GroupsCategory Entity (Fig 3.2.13)

    Fig 3.2.13 GroupsCategory Entity

    Attributes: GroupCategoryID, CategoryName, GroupCategoryIcon

  14. UserGroupRelation Entity (Fig 3.2.14)

    Fig 3.2.14 UserGroupRelation Entity


    Attributes: UserGroupRelationId, GroupID, UserID, JoinDateTime

  15. Page Entity (Fig 3.2.15)

    Fig 3.2.15 Page Entity

    Attributes: PageId, PageName, TimeLineImage, TimeLineImageCropped, Description, PageCategoryId, UserId, CreatedAt, LogoImage, LogoImageCropped

  16. PageCategory Entity (Fig 3.2.16)

    Fig 3.2.16 PageCategory Entity

    Attributes: PageCategoryId, PageCategoryName, PageCategoryIcon

  17. UserPageLikeRelation Entity (Fig 3.2.17)

    Fig 3.2.17 UserPageLikeRelation Entity


    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

Fig 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

Fig 3.3.2 Level 1 Data Flow Diagram for Module 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

Fig 3.3.3 Level 1 Data Flow Diagram for Module Group 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

Fig 3.3.4 Level 1 Data Flow Diagram for Module Friend and Message System


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

Fig 3.3.5 Data level 1 Data Flow Diagram for Module 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

Fig 3.3.6 Data level 2 Data Flow Diagram


Description: Combines all modules and shows relationships between them using directional arrows, representing the complete system workflow.



Comments