Skip to content

Class Diagram

m-erkam edited this page May 3, 2024 · 2 revisions
classDiagram
    User --|> GlobalUser : 
    User <|-- Admin : 
    class User{
      +String username
      +String email
      +String password
      +login(String username, String password)
      +logOut(String username)
      +getUsername():String
      +getEmail():String
      +setUsername(String username)
      +setEmail(String email)
      +followUser(String username)
      +unfollowUser(String username)
      +viewFollowers(String username)
      +removeFollower(String username)

    }
    class GlobalUser{
      +register(String username, String password)
      +viewPosts(String username)
      +viewFilm(String name)
      +viewFilmList(int id)
      +viewProfile(String username)
      +searchUsers(String searchWord):List~User~
      +searchFilms(String searchWord):WikidataObject
      +serachLists(String searchWord):List~FilmList~
    }
    class Admin{
      +deleteList(int List_id)
      +removePost(int Post_id)
    }

    Post --* User : creates
    FilmList --o User : creates
    Film --o User : rates 
    Film --* Post : about
    class Post{
      +int post_id
      +Date date  
      +String content
      +String film_name
      +User author
      +List~String~ comments
      +int like_count
      +create(String content, String film_name, User author)
      +delete(int post_id)
      +addComment(int post_id, String comment)
      +like(int post_id)
    }

    Film *-- FilmList : includes
    class Film{
       +String name 
       +String description
       +List~Actor~ cast 
       +String genre
       +List~Director~ director
       +String release_date
       +double rating
       +rateFilm(String film_name, double rating)
    }

    class FilmList{
       +int id 
       +String title 
       +String description
       +List~Film~ films
       +User creator
       +int like_count
       +List~String~ comments
       +createFilmlist(String title, String description, List~Film~ films, User creator)
       +deleteFilmlist(int film_list_id)
       +likeFilmList(int film_list_id)
       +addComment(int film_list_id, String comment)
    }
    Cast *-- Film
    Director *-- Film
    Actor *-- Cast
    class Cast{
       +String Title
    }
    class Actor{
       +String name
       +String surname
       +String description
       +List~Film~ acted_films
    }

    class Director{
       +String name
       +String surname
       +String description
       +List~Film~ directed_films
    }
    Director o-- SearchEngine
    Actor o-- SearchEngine
    SearchEngine o-- User : uses
    Filter *-- SearchEngine : filtersWith
    Browser *-- SearchEngine : browsesWith
    class SearchEngine{
       +searchUser(String searchWord):WikidataObject
       +searchFilm(String searchWord):WikidataObject
       +searchDirector(String searchWord):WikidataObject
       +searchActor(String searchWord):WikidataObject
       +searchFilmList(String searchWord):WikidataObject
    }
    class Browser{
       +browseByReleaseDate():List~Film~
       +browseByRating():List~Film~
       +browseByGenre():List~Film~

    }

    class Filter{
       +filterByFilms():List~Film~
       +filterByPosts():List~Post~
       +filterByDirectorsActors():List~Film~
       +filterByDirectorsActors():List~Film~
       +filterByFilmLists():List~Film~
    }
Loading
Clone this wiki locally