-
Notifications
You must be signed in to change notification settings - Fork 1
Class Diagram
Mehmet Efe Akça edited this page Nov 22, 2024
·
3 revisions
Below is our class diagram for the Programming Language Forum.
classDiagram
class User {
-Long id
-String username
-String email
-String password
-String firstName
-String lastName
-String country
-String bio
-Integer reputationPoints
-ExperienceLevel experienceLevel
-Boolean isVerified
-Integer followersCount
-Integer followingCount
-Integer questionCount
-Integer answerCount
+register()
+login()
+resetPassword()
+updateProfile()
+follow(User)
+unfollow(User)
}
class Question {
-Long id
-String title
-String content
-DateTime createdAt
-DateTime updatedAt
-Integer rating
-Integer viewCount
-List~String~ photos
-DifficultyLevel difficultyLevel
-Boolean isDeleted
-Integer commentCount
-Boolean bookmarked
-Integer selfRating
+create()
+update()
+delete()
+upvote()
+downvote()
+bookmark()
+removeBookmark()
}
class Answer {
-Long id
-String content
-DateTime createdAt
-DateTime updatedAt
-Integer rating
-Integer selfRating
-List~CodeSnippet~ codeSnippets
+create()
+update()
+delete()
+upvote()
+downvote()
}
class Tag {
-String tagId
-String name
-String description
-TagType type
-String logoUrl
-Integer questionCount
-Integer followerCount
-Boolean following
-String photo
+create()
+update()
+follow()
+unfollow()
}
class CodeSnippet {
-Long id
-String code
-Language language
-String input
-Boolean isExecutable
+execute() ExecutionResult
}
class ExecutionResult {
-String output
-String errors
-Number executionTime
-ExecutionStatus status
}
class ProgrammingLanguageTag {
-String logoImage
-String author
-String inceptionYear
-String fileExtension
-String officialWebsite
-String stackExchangeTag
}
class SoftwareLibraryTag {
-String officialWebsite
-String stackExchangeTag
}
class ComputerScienceTermTag {
-String stackExchangeTag
}
class ProgrammingParadigmTag {
-String stackExchangeTag
}
class UserDefinedTag
class DifficultyLevel {
<<enumeration>>
EASY
MEDIUM
HARD
}
class TagType {
<<enumeration>>
PROGRAMMING_LANGUAGE
SOFTWARE_LIBRARY
COMPUTER_SCIENCE_TERM
PROGRAMMING_PARADIGM
USER_DEFINED
}
class Language {
<<enumeration>>
C
CSHARP
CPP
GO
JAVA
JAVASCRIPT
PYTHON3
}
class ExecutionStatus {
<<enumeration>>
SUCCESS
ERROR
TIMEOUT
}
class ExperienceLevel {
<<enumeration>>
BEGINNER
INTERMEDIATE
ADVANCED
}
User "1" -- "0..*" Question : creates >
User "1" -- "0..*" Answer : writes >
User "0..*" -- "0..*" User : follows >
User "0..*" -- "0..*" Tag : follows >
Question "1" -- "0..*" Answer : has >
Question "0..*" -- "0..*" Tag : tagged with
Question "1" *-- "0..*" CodeSnippet : contains >
Answer "1" *-- "0..*" CodeSnippet : contains >
CodeSnippet "1" -- "0..1" ExecutionResult : produces >
Tag <|-- ProgrammingLanguageTag
Tag <|-- SoftwareLibraryTag
Tag <|-- ComputerScienceTermTag
Tag <|-- ProgrammingParadigmTag
Tag <|-- UserDefinedTag
Question "1" -- "1" DifficultyLevel : has >
Tag "1" -- "1" TagType : has >
CodeSnippet "1" -- "1" Language : written in >
ExecutionResult "1" -- "1" ExecutionStatus : has >
User "1" -- "1" ExperienceLevel : has >
- Meeting Note 9 - 10.12.2024
- Meeting Note 8 - 03.12.2024
- Meeting Note 7 - 19.11.2024
- Meeting Note 6 - 12.11.2024
- Meeting Note 5 - 05.11.2024
- Feedback Meeting - 29.10.2024
- Meeting Note 4 - 15.10.2024
- Meeting Note 3 - 08.10.2024
- Meeting Note 2 - 01.10.2024
- Meeting Note 1 - 24.09.2024
- Lab Report-1 📝
- Lab Report-2 📝
- Lab Report-3 📝
- Lab Report-4 📝
- Lab Report-5 📝
- Lab Report-6 📝
- Lab Report-7 📝
- Lab Report-8 📝
- Lab Report-9 📝
- Milestone Report
- Additional Scenario & Mockups
- Final Milestone Presentation Scenario
- Requirements
- Standard Implementation Documentation
- Software Design Diagrams ✨
- Customer Feedback for Demo
- Milestone Report
- Presentation Scenario
- Software Quality Standards
- Data Population Strategy
- Customer Feedback for Demo
- Standard Implementation Documentation
- Testing Documentation
- Requirements
- Software Design Diagrams ✨
- Milestone Report
- Scenarios & Mockups 🖌️
- User Stories
- Responsibility Assigment Matrix ☑️
- Class Diagram
- Issue Creation Guidlines ❓
- Wikidata Query Service Guidlines and Resources ❓
- Communication Plan ☎️
- Requirements
352 Sidebar
- Contribution Guide
- Backend Roadmap and Resources
- Issue Creation Guidlines ❓
- Wikidata Query Service Guidlines and Resources ❓
- Communication Plan ☎️
- UI Design Images, Figma
- Requirements
- Frontend Meeting Note 5 - 16.05.2024
- Frontend Meeting Note 4 - 14.05.2024
- Backend Meeting Note 6 - 11.05.2024
- Backend Meeting Note 5 - 10.05.2024
- Backend Meeting Note 4 - 07.05.2024
- Frontend Meeting Note 3 - 07.05.2024
- Backend Meeting Note 3 - 06.05.2024
- Frontend Meeting Note 2 - 05.05.2024
- Frontend Meeting Note 1 - 29.04.2024
- Meeting Note 11 - 28.04.2024
- Backend Meeting Note 2 - 26.04.2024
- Backend Meeting Note 1 - 25.04.2024
- Meeting Note 10 - 21.04.2024
- Meeting Note 9 - 14.04.2024
- Meeting Note 8 - 04.04.2024
- Meeting Note 7 - 23.03.2024
- Customer Meeting Note - 18.03.2024
- Meeting Note 6 - 16.03.2024
- Meeting Note 5 - 12.03.2024
- Meeting Note 4 - 09.03.2024
- Meeting Note 3 - 02.03.2024
- Meeting Note 2 - 24.02.2024
- Meeting Note 1 - 18.02.2024
- Nazire Ata
- Enes Başer
- Aslı Gök
- Çağatay Çolak
- Mehmet Efe Akça
- Yiğit Memceroktay
- Ufuk Altunbulak
- Boray Kasap
- Atakan Yasar