Skip to content

Class Diagram 451

Muhammed Erkam Gökcepınar edited this page Oct 24, 2024 · 2 revisions
classDiagram
    class User {
        -int id
        -String username
        -String email
        -String password
        
        
    }

    class Admin {
        +banUser(user: User)
        +removePost(post: Post)
        +removeComment(comment: Comment)
        +removeTag(tag: Tag)
    }

    class GuestUser {
      +register()
        +viewPosts()
        +viewStocks()
        +viewProfiles()
        +viewNews()
        +searchUsers(username: String)
        +searchPosts(query: String)
        
    }

    class RegisteredUser {
        +login(username:String, password:String)
        +resetPassword(newPassword:String)
        +logout()
        +createPost(title: String, content: String)
        +likePost(post: Post)
        +commentOnPost(post: Post, comment: Comment)
        +followUser(user: User)
        +addGraphToPost(post: Post, graph: Graph)
        +createPortfolio(name: String)
        +editPortfolio(portfolio: Portfolio)
    }

    class UserDetails {
        -String bio
        -String profilePicture
        -String location
        +editProfileDetails(bio: String, location: String)
    }


    class Post {
        -int id
        -String title
        -String content
        -int likeCount
        -Date creationDate
        -Date lastEditDate
        +addComment(comment: Comment)
        +editPost(content: String)
        +deletePost()
    }

    class Tag{
      -int id
      -String name
      +addTagToPost(post: Post)
      +removeTagFromPost(post: Post)
    }

    class News{
      -int id
      -String title
      -Date publicationDate
      -String source
      -String url
      -String summary
    }

    class Index {
        -int id
        -String name
        -String description
        -List<Stock> stocks
        -List<Graph> graphs
        +addStock(stock: Stock)
        +removeStock(stock: Stock)
        +addGraph(graph: Graph)
        +removeGraph(graph: Graph)
        +editIndex(name: String, description: String)
    }

    class Comment {
        -int id
        -String content
        -Date creationDate
        +editComment(content: String)
        +deleteComment()
    }

    class Portfolio {
        -int id
        -String name
        -String description
        -List<Stock> stocks
        -List<Graph> graphs
        +addStock(stock: Stock)
        +removeStock(stock: Stock)
        +addGraph(graph: Graph)
        +removeGraph(graph: Graph)
        +editPortfolio(name: String, description: String)
    }

    class Graph {
        -int id
        -String title
        -String content
        -Date creationDate
        -Date lastEditDate
        +editGraph(content: String)
        +deleteGraph()
    }

    class Stock {
        -int id
        -String symbol
        -double price
        -String market
    }

    class StockDetails {
        -String name
        -String description
        -String sector
        -String industry
        -String country
        -String website
        -String logo
    }

    class Badge {
        -int id
        -String type
        -String description
        +grantBadge(user: User)
    }

    
    Post "1" --> "0..*" Comment : has
    Post "1" --> "0..*" Tag : has
    Post "1" --> "0..*" Graph : has
    Post "1" --> "0..*" Portfolio : has
    Post "1" --> "0..*" News : has
    Post "1" --> "0..*" User : has
    Post "1" --> "0..*" Index : has
    Post "1" --> "0..*" Stock : has
    Portfolio "1" --> "1..*" Stock : has
    Stock "1" --> "1" StockDetails : has
    Index "1" --> "0..*" Stock : has
    RegisteredUser "0" -- "0..*" Badge : has    
    RegisteredUser "1" --> "1" UserDetails : has
    RegisteredUser <|-- Admin : extends
    User <|-- RegisteredUser : extends
    User <|-- GuestUser : extends
    RegisteredUser "1" --> "0..*" Portfolio :has 
    RegisteredUser "1" --> "0..*" Comment :has 
Loading

📋 Lab Reports

📆 Meeting Notes

🧪 Lab Meetings

🗓️ General Meetings

⚙️ Backend Meetings

📝 Milestone Reports

📑 Project Artifacts

📖 Manuals

📑 Other Artifacts

📋 Software Requirements Specification

📊 Software Design Documents

✏️ User Scenarios & Mockups

🗂 Project Plan

🧪 Unit Tests

📜 Docs

👥 Team

SemanticFlix Archieve

📝 Milestone Reports

📆 Meeting Notes

🧾 Requirements

Project Plan

📊 Diagrams

👥 Team

📝 Researches

Repository Documentations

📁 Templates

Clone this wiki locally