Assignment 4 Beta 
Data Modeling 
app TrueLink
Concept: User
State:
user: set UserT
username, password: user -> one StringConcept: User
State:
user: set UserT
username, password: user -> one StringConcept: Post [Author, Content]
State:
posts: set PostT
author: PostT --> one Author
content: PostT --> one ContentConcept: Post [Author, Content]
State:
posts: set PostT
author: PostT --> one Author
content: PostT --> one ContentConcept: Comment [Post, Author]
State:
comments: set CommentT
author: CommentT -> one Author
post: CommentT -> one Post
content: CommentT -> one StringConcept: Comment [Post, Author]
State:
comments: set CommentT
author: CommentT -> one Author
post: CommentT -> one Post
content: CommentT -> one StringConcept: AIImageGenerator [ImageIn]
State: 
old_image : set ImageIn
input: set InputT
imageOut: ImageIn, InputT --> one ImageConcept: AIImageGenerator [ImageIn]
State: 
old_image : set ImageIn
input: set InputT
imageOut: ImageIn, InputT --> one ImageConcept: Friend[User]
State:
friendLists: set FriendT
user1, user2 : FriendT (one friend) --> one UserConcept: Friend[User]
State:
friendLists: set FriendT
user1, user2 : FriendT (one friend) --> one UserConcept: Session[User]
State
session: set SessionT
user: SessionT -> one UserConcept: Session[User]
State
session: set SessionT
user: SessionT -> one UserConcept: MemoryTimeCapsule [Author, Post]
State:
timeCapsule: set TimeCapsuleT
author: TimeCapsuleT --> one Author
dateToOpen: TimeCapsuleT --> one Date
memory: TimeCapsuleT --> one PostConcept: MemoryTimeCapsule [Author, Post]
State:
timeCapsule: set TimeCapsuleT
author: TimeCapsuleT --> one Author
dateToOpen: TimeCapsuleT --> one Date
memory: TimeCapsuleT --> one PostConcept: Reflection[Author, Content]
State:
reflections: set ReflectionT
author: ReflectionT --> one Author
date: reflectionT --> one Date
content: reflectionT --> one ContentConcept: Reflection[Author, Content]
State:
reflections: set ReflectionT
author: ReflectionT --> one Author
date: reflectionT --> one Date
content: reflectionT --> one ContentData Model Diagram 

app TrueLink
    include
        Comment[User.UserT, Post.PostT]
        Post[User.UserT, StringOrImage]
        MemoryTimeCapsule[User.UserT, StringOrImage]
        Reflection[User.UserT, StringOrImage]
        Friend[User.UserT]
        Session[User.UserT]app TrueLink
    include
        Comment[User.UserT, Post.PostT]
        Post[User.UserT, StringOrImage]
        MemoryTimeCapsule[User.UserT, StringOrImage]
        Reflection[User.UserT, StringOrImage]
        Friend[User.UserT]
        Session[User.UserT]Design Reflection 
Design Reflection: Separating Memories from Posts
Initially, I conceived a system where memories and posts were intertwined, allowing users to share posts while reserving them for future viewing. However, this approach posed a fundamental contradiction. Memories, by nature, are private until a set date. Combining them with posts, which are meant for immediate sharing, could lead to a user creating a post only to have it remain unseen—an unintended outcome.
To address this, I opted to distinctly separate memories and posts. This empowers users to create private memories, preserving their sanctity until the chosen date arrives. This shift aligns closely with the core essence of memories—precious moments to be revisited with a touch of surprise and anticipation.
The separation simplifies the user experience, eliminating potential confusion regarding when a post should be public versus kept as a cherished memory. This design decision not only upholds the integrity of both posts and memories but also enhances overall user satisfaction.
Combining AI-Image Generator and Post Concept 
Design Reflection: Integrating AI Image Generation with Posts
Upon reflection, I recognized the inherent synergy between my AI image generator and post concept. Originally, the intention was to segregate these concepts. However, it became evident that the true essence of a post was to enable users to seamlessly create and showcase these AI-generated visuals, rather than segregating them into distinct sections, so now Post's content includes AI-Image Photos.