Skip to content

Assignment 4 Beta

Data Modeling

app TrueLink

Concept: User

State:
user: set UserT
username, password: user -> one String
Concept: User

State:
user: set UserT
username, password: user -> one String
Concept: Post [Author, Content]

State:
posts: set PostT
author: PostT --> one Author
content: PostT --> one Content
Concept: Post [Author, Content]

State:
posts: set PostT
author: PostT --> one Author
content: PostT --> one Content
Concept: Comment [Post, Author]

State:
comments: set CommentT
author: CommentT -> one Author
post: CommentT -> one Post
content: CommentT -> one String
Concept: Comment [Post, Author]

State:
comments: set CommentT
author: CommentT -> one Author
post: CommentT -> one Post
content: CommentT -> one String
Concept: AIImageGenerator [ImageIn]

State: 
old_image : set ImageIn
input: set InputT
imageOut: ImageIn, InputT --> one Image
Concept: AIImageGenerator [ImageIn]

State: 
old_image : set ImageIn
input: set InputT
imageOut: ImageIn, InputT --> one Image
Concept: Friend[User]

State:
friendLists: set FriendT
user1, user2 : FriendT (one friend) --> one User
Concept: Friend[User]

State:
friendLists: set FriendT
user1, user2 : FriendT (one friend) --> one User
Concept: Session[User]

State
session: set SessionT
user: SessionT -> one User
Concept: Session[User]

State
session: set SessionT
user: SessionT -> one User
Concept: MemoryTimeCapsule [Author, Post]

State:
timeCapsule: set TimeCapsuleT
author: TimeCapsuleT --> one Author
dateToOpen: TimeCapsuleT --> one Date
memory: TimeCapsuleT --> one Post
Concept: MemoryTimeCapsule [Author, Post]

State:
timeCapsule: set TimeCapsuleT
author: TimeCapsuleT --> one Author
dateToOpen: TimeCapsuleT --> one Date
memory: TimeCapsuleT --> one Post
Concept: Reflection[Author, Content]

State:
reflections: set ReflectionT
author: ReflectionT --> one Author
date: reflectionT --> one Date
content: reflectionT --> one Content
Concept: Reflection[Author, Content]

State:
reflections: set ReflectionT
author: ReflectionT --> one Author
date: reflectionT --> one Date
content: reflectionT --> one Content

Data Model Diagram

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.