SequenceDiagramsDraft - bounswe/bounswe2025group5 GitHub Wiki

"Updating Profile Picture" Sequence by AHMET ÇAĞDAŞ GİRİT

sequenceDiagram
    actor Registered User
    participant Profile
    participant Database

    Registered User->>Profile: setPhoto(photo)
    activate Profile


        Profile->>Database: update data
      activate Database

        Database-->>Profile: response
    deactivate Database
    alt Response: response = True
        Profile-->>Registered User: Your photo is changed !!

    else Response : response = False
        Profile-->>Registered User: Error: Photo does not meet requirements
    end
deactivate Profile


Loading

"Register" Sequence Draft by Cengiz Bilal Sarı

VP7TQiCm38Nl_HIYLnsqBn1OAUpdUdJi0RHO7GR7zYHvU_qvhfisQqakabWwvvCuteiYQnwymLuZmuSGcrHAhdS9Wy9ghC2JHv4Le5H1FSrLpwZuYK9LSpuOKytRtSNLmO6-d6Wfhsb0vpUGIo_WG1j8HV0RsJwCoxWVLBeQPwRVEOz9KWn2Zu0fSKpiYk-jaTONf46laxY38teX0-Mv

@startuml
actor User
participant "User Class" as UserClass
participant "Database" as Database

User -> UserClass: Register (email, username, password)
activate UserClass

UserClass-> UserClass: response= appropriatePassword(password)

alt response: false
    UserClass--> User: Error: Password does not meet requirements
    deactivate UserClass
else response: true
    UserClass-> Database: addUser(email, username, password)
    activate Database
    Database --> UserClass: databaseResponse
    deactivate Database

    alt databaseResponse: Success
        UserClass--> User: Registration Successful
    else databaseResponse: Failure
        UserClass--> User: Error: Registration Failed
    end
    deactivate UserClass
end
@enduml

"Moderate and Approve Challenge" Sequence Draft by Cengiz Bilal Sarı

sequenceDiagram
    actor Moderator
    participant ModeratorClass as Moderator Class
    participant Database

    Moderator->>ModeratorClass: approveRequestedChallenge(challengeId)
    activate ModeratorClass
    ModeratorClass->>Database: activate(challengeId)
    activate Database
    Database-->>ModeratorClass: status
    deactivate Database


    alt status = 2
        ModeratorClass-->>Moderator: Already active challenge
    else status = 0
        ModeratorClass-->>Moderator: No requested challenge
    else status = 1
        ModeratorClass-->>Moderator: Activated
    end
    deactivate ModeratorClass
Loading

"Join a Challenge" Sequence Draft by Yusuf Onur Öksüz

sequenceDiagram
    participant User
    participant App
    participant Challenge
    participant Database

    User ->> App: Request to Join Challenge (challengeId)
    App ->> Database: Check if Challenge Exists (challengeId)
    Database -->> App: Challenge Exists? (Yes/No)
    
    alt Challenge Not Found
        App -->> User: Error: Challenge Not Found
    else Challenge Exists
        App ->> Challenge: addParticipant(userId)
        Challenge ->> Database: Store Participant Entry
        Database -->> Challenge: Confirmation
        Challenge -->> App: Success
        App -->> User: Successfully Joined Challenge
    end
Loading

"Create Post" Sequence by Abdülkerim Kasar

image

@startuml
actor "Registered User" as RU
participant "Forum Feed" as FF
participant "Post" as P
database "Database" as DB

RU -> FF: createPost(content, attachments)
activate FF
FF -> P: newPost(content, attachments, timestamp)
activate P
note right of P: Creates a new Post instance with provided data
P -> DB: savePost(post)
activate DB
DB --> P: confirmation (postId)
deactivate DB
P --> FF: return Post instance
deactivate P
FF --> RU: return true (post created)
deactivate FF
@enduml



"Set Waste Management Goals" Sequence by Ahmet Mert Balcı

sequenceDiagram
    actor U as User
    participant RU as RegisteredUser
    participant WG as WasteGoal

    U ->> RU: viewGoals(userId)
    activate RU
    RU -->> U: return List<WasteGoal>
    deactivate RU

    U ->> RU: createWasteGoal(name, duration, type, amount)
    activate RU

    RU ->> WG: new WasteGoal(...)
    activate WG
    WG -->> RU: return instance
    deactivate WG

    RU -->> U: return "Goal created successfully"
    deactivate RU

Loading

Semantic Search by Abdurrahman Arslan

sequenceDiagram
    actor Registered User
    participant ForumFeed as ForumFeed
    participant Wikidata

    Registered User->>ForumFeed: search(prompt)
    activate ForumFeed
    ForumFeed->>Wikidata: semanticSearch(prompt)
    activate Wikidata
    Wikidata-->>ForumFeed: response
    deactivate Wikidata
    alt response=no result

        ForumFeed-->>Registered User: "No result found"
    else response=result
        ForumFeed-->>Registered User: results
    end
    
    deactivate ForumFeed

Loading

"Select Badges to Display" Sequence Draft by Ege Tanriverdi

sequence_diagram_select_displayed_badges

@startuml

actor "Registered User" as RU
participant "Profile" as Profile
participant "Database" as Database

RU -> Profile: selectBadges(badges)
activate Profile
Profile -> Database: saveBadges(badges)
deactivate Profile
activate Database
Database --> Profile: databaseResponse
deactivate Database

alt databaseResponse: Success
    Profile -> Profile: updateDispBadges(badges)
    Profile --> RU: msg: New badges selected for display
else databaseResponse: Failure
    
    Profile --> RU: msg: Error
end
@enduml

"View Leaderboard" Sequence Draft by Serdar Bahar

viewleaderboard_seq

@startuml

actor "Registered User" as RU
participant "RegisteredUser" as CC
participant "Challenge" as LC
participant "Database" as Database

note right of CC: Views challenges
RU -> CC: viewChallenges()
activate CC
CC -> Database: getChallenges()
activate Database
Database --> CC: databaseResponse
deactivate Database

alt databaseResponse: Failure
    CC -> RU: error("Try again later.")
else databaseResponse: Success
    CC -> RU: display(challenges)
deactivate CC

note right of CC: Selects a challenge among displayed challenges
RU -> CC: selectChallenge(challengeID)
activate CC
CC -> Database: getChallenge(challengeID)
activate Database
Database --> CC: databaseResponse
deactivate Database

alt databaseResponse: Failure
    CC -> RU: error("Try again later.")
else databaseResponse: Success
    CC -> RU: display(challenge)
deactivate CC

note right of CC: Views the leaderboard of the selected challenge
RU -> LC: viewLeaderboard(leaderboardID)
activate LC
LC -> Database: getLeaderboard(leaderboardID)
activate Database
Database --> LC: databaseResponse
deactivate Database

alt databaseResponse: Failure
    LC -> RU: error("Try again later.")
else databaseResponse: Success
    LC -> RU: display(leaderboard)
deactivate LC
end
end
end
@enduml

"Log Waste" Sequence Draft by Osman Yusuf Tosun

a

@startuml
actor RegisteredUser
participant "WasteLogManager" as WasteLogManager
participant "Database" as Database

RegisteredUser -> WasteLogManager: LogWaste (wasteAmount, category, unit)
activate WasteLogManager

WasteLogManager -> WasteLogManager: validateWasteEntry(wasteAmount, category, unit)

alt invalid entry
    WasteLogManager --> RegisteredUser: Error: Invalid Waste Data
    deactivate WasteLogManager
else valid entry
    WasteLogManager -> Database: storeWasteLog(wasteAmount, category, unit)
    activate Database
    Database --> WasteLogManager: storageResponse
    deactivate Database

    alt storageResponse: Success
        WasteLogManager --> RegisteredUser: Waste Log Successful
    else storageResponse: Failure
        WasteLogManager --> RegisteredUser: Error: Logging Failed
    end
    deactivate WasteLogManager
end
@enduml
⚠️ **GitHub.com Fallback** ⚠️