-
Notifications
You must be signed in to change notification settings - Fork 1
Class Diagrams
Emre Kılıç edited this page Apr 16, 2024
·
22 revisions
classDiagram
class Users{
+get(username: String) User
+create(username: String) int
+delete(username: String) int
+update( user: User) int
}
class Contents{
+create(text: String, author: RegisteredUser, title: String, image: Image) int
+find(keyword: String) List~Post~
+get(id: int) Post
+edit(post: Post) int
+delete(id: int) int
}
class User{
<<abstract>>
-search_engine: SearchEngine
+getSearchEngine() SearchEngine
+login(username: String, password: String) int
}
class UserController{
+register(username: String, password: String, email: String) int
+login(username: String, password: String) int
+logout(username: String) int
}
class GuestUser{
+register(username: String, email: String, password: String) int
}
class RegisteredUser{
-username: String
-profile: Profile
-password: String
-blocked_list: List~RegisteredUser~
-muted_list: List~RegisteredUser~
+getProfile() Profile
+getUsername() String
+blockUser(user:RegisteredUser) int
+unblockUser(user:RegisteredUser) int
+followUser(user: RegisteredUser) int
+unfollowUser(user: RegisteredUser) int
+muteUser(user: RegisteredUser) int
+unmuteUser(user: RegisteredUser) int
}
class Profile{
-email: String
-biography: String
-profile_picture: Image
-registration_date: Date
-following_list: List~RegisteredUser~
-follower_list: List~RegisteredUser~
+getEmail() String
+setEmail(email: String) int
+getBiography() String
+setBiography(biography: String) int
+getProfilePicture() Image
+setProfilePicture(image: Image) int
}
class Content{
-text: String
-publication_date: Date
-edit_date: Date
-author: RegisteredUser
-comments: List~Comment~
+getText() String
+getPublicationDate() Date
+getEditDate() Date
+getAuthor() RegisteredUser
+setText(text: String) int
+addComment(comment: Comment) int
+removeComment(comment: Comment) int
}
class Post {
-title: String
-image: Image
-comment_count: int
-like_count: int
-like_list: List~RegisteredUser~
-bookmark_count: int
+getTitle() String
+getImage() Image
+getComments() List~Comment~
+getLikeCount() int
+getLikeList() List~RegisteredUser~
+getBookmarkCount() int
+getCommentCount() int
+setTitle(title: String) int
+setImage(image: Image) int
+likePost(user: RegisteredUser) int
+unlikePost(user: RegisteredUser) int
+bookmarkPost(user: RegisteredUser) int
+unbookmarkPost(user: RegisteredUser) int
}
class Comment{
-parent: Content
+getParent() Content
}
class Feed{
-post_list
+populateFeed(user: User) int
}
class SearchEngine{
-search_history: List~String~
-wikidata_client : WikiData
+ updateSearchHistory(search: String) int
+ filter(post_list:List~Post~, filter: Filter) List~Post~
+ createFilter(author: String, from_date: Date, to_date: Date) Filter
+ weight(post_list:List~Post~,weights: List~int~) List~Post~
}
class Filter {
-author: String
-from_date: Date
-to_date: Date
+getAuthor() String
+getFromDate() String
+getToDate() String
}
class WikiData{
+query(query: String) List~Wikidata_Entity~
+getInfoBox(wikidata_entity: Wikidata_Entity) InfoBox
}
class InfoBox{
-key_value_pairs: Hashmap~String, String~
-weights: List~int~
+getKey_value_pairs() Hashmap~String, String~
+setKey_value_pairs(pairs: Hashmap~String, String~) int
}
class Image {
-alt_text: String
-url: String
+getUrl() String
+getAltText() String
}
Post "1" -- "0..*" RegisteredUser : likes
Content "1" -- "1" RegisteredUser : owns
User <|-- RegisteredUser
Profile "1" *-- "1" RegisteredUser : has
Contents "0..*" -- "0..*" Content : manages
Users "0..*" -- "0..*" User : manages
UserController "0..*" -- "0..*" User : controls
RegisteredUser "0..*" -- "0..*" RegisteredUser : interacts
Content <|-- Post
Content <|-- Comment
Content "1" --* "0..*" Comment : has
Feed "1" *-- "1" User : has
User "1" --* "1" SearchEngine : uses
Post "0..*" --* "0..*" Image
User <|-- GuestUser
SearchEngine "1" --* "0..*" Filter : filtersWith
SearchEngine "1" --* "1" WikiData : queries
WikiData "1" --* "0..*" InfoBox : returns
Turquiz App
DONE
- Lab Report #1
- Lab Report #2
- Lab Report #3
- Lab Report #4
- Lab Report #5
- Lab Report #6
- Lab Report #7
- Lab Report for Lab 9
- Lab Meeting #1
- Meeting #1
- Lab Meeting #2
- Meeting #2
- Project Plan Meeting
- Frontend Meeting #1
- Lab Meeting #3
- Meeting #3
- Meeting #4
- Lab Meeting #4
- Meeting #5
- Meeting #6
- Meeting #7
- Meeting #8
- User Scenario 1 - Explore and Register
- User Scenario 2 - Search for a Quiz & Create a Quiz
- User Scenario 3 - Take & Review a Quiz
- User Scenario 4 - Search Forum & Bookmark & Upvote & Answer
- User Scenario 5 - User Badges
- User Scenario Template
- User Stories