The fundamental part of the system is a User, the user can create()
many Tweet
objects,
a tweet object can be liked()
by other Users. A Tweet has three kinds; regular, reply, and retweet.
A user has a ProfilePage
, which shows tweets belonging to the user & the ProfileInformation
object.
Certain objects (such as ProfilePage
and Tweet
) may have 0..n associated media objects.
This Media
object contains a file (limited to video/image files), and an optional kind
(for cases in which different media objects
serve different purposes, such as a bio image/profile picture). In the case of a Tweet
with Media
, the associated Media
objects
have no kind. They are implicitly seen as "attachments".
A user has a profile picture, and a bio, and a profile background image.
User capabilities;
A user can:
- Search
- Post a tweet
- Follow an account
- Unfollow an account
- Like a tweet
- Retweet a tweet
- Reply to a tweet
- View tweets (homepage)
- View profile