= Diagram = == ERD == [[Image(ERD.png)]] == Data Requirements == === Entities === - Entity **User**- information about users Primary Key: UserID. Attributes: Username - String data, mandatory. Email - String data, mandatory. Password - String data, mandatory. Contact_Details - String data, mandatory. - Entity **Social Media Profile** - information about the users linked social media profiles. Primary Key: ProfileID Attributes: Platform - String data, mandatory User_Name - String data, mandatory Account_Type - String data, mandatory (ex. public, private..) Followers_Count - Integer data, mandatory - Entity **Post** - information about the post from a certain social media profile. Primary Key: PostID Attributes: Content - String data, optional Post_Date - DateTime data, optional URL - String data, mandatory Likes_Count - Integer data, mandatory Comments_Count - Integer data, mandatory - Entity **Profile Marketing Request** - information about the user created request to market a specific profile/post Primary Key: RequestID Attributes: Target_Followers - Integer data, mandatory Timeline - DateTime data, mandatory Profile_Id - Foreign Key, mandatory Date_Created - DateTime data, mandatory Status - String data, mandatory - Entity **Post Marketing Request** - information about the user created request to market a specific profile/post Primary Key: RequestID Attributes: Target_Likes - Integer data, mandatory Target_Comments - Integer data, mandatory Timeline - DateTime data, mandatory Post_ID - Foreign Key, mandatory Date_Created - DateTime data, mandatory Status - String data, mandatory - Entity **Service Provider** - information about social media marketing service providers Primary Key: providerID Attributes: Name: String data, mandatory Availability_Status: Boolean data, mandatory Pricing: Float data, mandatory Services_Offered: String data, mandatory Contact_Email: String data, mandatory === 1-1 Relations === - **Targets** - Relation between Profile Marketing Request and Social Media Profile. Every ProfileMarketingRequest targets a single SocialMediaProfile, and every SocialMediaProfile can be targeted by only one ProfileMarketingRequest. Total Participation of ProfileMarketingRequest and partial participation of SocialMediaProfile. - **Targets** - Relation between Post Marketing Request and Post. Every PostMarktingRequest targets a single Post, and every Post can be targeted by only one PostMarketingRequest. Total Participation of PostMarketingRequest and partial participation of Post === 1-N Relations === - **Creates** - Relation between User and ProfileMarketingRequest. One User can create many ProfileMarketingRequests, and a specific ProfileMarketing Request is always created by only one User. Total participation of ProfileMarketing Request and partial participation of User. - **Creates** - Relation between User and PostMarketingRequest. One User can create many PostMarketingRequests, and a specific PostMarketingRequest is always created by only one User. Total participation of PostMarketingRequest and partial participation of User. - **Has** - Relation between SocialMediaProfile and Post. Each SocialMediaProfile can have many Posts, but each Post only belongs to one SocialMediaProfial. Total participation of Post and partial participation of SocialMediaProfile. - **Handled by** - Relation between ProfileMarketingRequest and ServiceProvider. Each ProfileMarketingRequest can be handled by one ServiceProvider, while a ServiceProvider can handle many ProfileMarketingRequests. Total participation of ProfileMarketingRequest, partial participation of ServiceProvider. - **Handled by** - Relation between PostMarketingRequest and ServiceProvider. Each PostMarketingRequest can be handled by one ServiceProvider, while a ServiceProvider can handle many PostMarketingRequests. Total participation of PostMarketingRequest, partial participation of ServiceProvider. - **Links** - Relation between User and SocialMediaProfile. Each User can link many SocialMediaProfiles, while each SocialMediaProfile can be linked to only one user. Total Participation of SocialMediaProfile, partial participation of User