User - JerryNixon/2025-luca-ama-app GitHub Wiki

User

Stories & Acceptance Criterias

  • As a [user] I want to [join an event] so that [I can participate in the AMA]
    • I can accept the invite shared by the [moderator]
    • I can access the event via a shared link
    • Validation: I must be part of the Microsoft tenant to access
---
title: Join Event
---
 flowchart LR
    id1([Receive Link])
    subgraph 1 [ ]
    id2{Microsoft Tenant?}
    id3([Access Event])
    end
    id4([End])
    id5([Show Error])

    id1 --> id2
    id2 -- Yes --> id3
    id3 --> id4
    id2 -- No --> id5
    id5 --> id4 
  • As a [user] I want to [log in] so I can [be authenticated]
    • I can enter my credentials and be authenticated
---
title: Log In
---
flowchart LR
    id1([Enter Credentials])
    id2{Valid Credentials?}
    id3([Authenticated])
    id4([Show Error])
    id5([End])

    id1 --> id2
    id2 -- Yes --> id3
    id3 --> id5
    id2 -- No --> id4
    id4 --> id5 
  • As a [user] I want to [view event details] so that [I know when and where to participate] I can see the event name
    • I can see the event name
    • I can see the open and close dates
---
title: Event Details
---
 flowchart LR
    A([Main Page]) --> B[Open Event]
    B --> C[Show Name]
    B --> D[Show Dates]
    C --> E[Question List](/JerryNixon/2025-luca-ama-app/wiki/Question-List)
    D --> E

 
  • As a [user] I want to [see the list of submitted questions] so that [I can follow the discussion]
    • I can view all questions submitted to the event by the other [users]
    • I can see who asked the question (or if it is anonymous)
    • I can see which questions are marked as answered by the [moderator]
---
title: Question List
---
 flowchart LR
    start([Start])
    display[Questions List]
    subgraph 3 [ ]
    showAsker[Name or Anonymous]
    showAnswered[Answered Status](/JerryNixon/2025-luca-ama-app/wiki/Answered-Status)
    end
    stop([Stop])

    start -->  display
    display --> showAsker --> showAnswered --> stop 
  • As a [user] I want to [see which questions are answered] so that [I can follow the discussion]
    • Answered questions are clearly marked
    • Answered questions appear in a separate tab
---
title: Answered Question
---
 flowchart LR
    start([Start])
    load[Question List]
    subgraph tts [ ];
    mark[Answered Tag]
    tab[Show in Answered Tab]
    end
    stop([Stop])

    start --> load --> mark --> tab --> stop 
  • As a [user] I want to [upvote questions] so that [popular questions rise to the top]
    • I can upvote any question once
    • I can remove my upvote
    • I cannot upvote my own question
---
title: Upvote
---
 flowchart LR
    start([Start])
    view[Question List]
    subgraph 5 [ ]
    checkOwner{My question?}
    errorSelf[Error]
    end
    subgraph 6 [ ]
    checkVote{Already upvoted?}
    voteChoice{Change}
    removeVote[Remove Upvote]
    addVote[Add Upvote]
    saveDb[(Save)]
    end
    stop([Stop])

    start --> view --> checkOwner
    checkOwner -- Yes --> errorSelf --> stop
    checkOwner -- No --> checkVote
    checkVote -- Yes --> voteChoice
    voteChoice -- "Remove" --> removeVote --> saveDb
    voteChoice -- "Keep" --> stop
    checkVote -- No --> addVote --> saveDb --> stop
  • As a [user] I want to [search for questions] so that [I can avoid duplicates]
    • I can search by keyword
---
title: Search Questions
---
 flowchart LR
    start([Start])
    subgraph 7
    input[Keyword]
    search[Search](/JerryNixon/2025-luca-ama-app/wiki/Search)
    show[Results]
    end
    stop([Stop])

    start --> input --> search --> show --> stop 
  • As a [user] I want to [see related questions grouped] so that [I can explore similar topics]
    • Grouped questions are expandable under a parent
---
title: Grouped Questions
---
flowchart LR
    start([Start])
    list[Question List]
    subgraph 8 [ ]
    parent[Parent Question with +]
    toggle{Toggle Clicked?}
    expand[Show Grouped Questions]
    end
    stop([Stop])

    start --> list --> parent --> toggle
    toggle -- Yes --> expand --> stop
    toggle -- No --> stop 
  • As a [user] I want to [submit a question] so that [I can participate in the discussion]
    • I can write and submit a question
    • I can choose to be anonymous
---
title: Submit Question
---
 flowchart LR
    start([Start])
    open[Open Event]
    subgraph 9 [ ];
    write[Write Question]
    anon{Anonymous?}
    markAnon[Mark as Anonymous]
    submit[Submit]
    save[(Save)]
    end
    stop([Stop])

    start --> open --> write --> anon
    anon -- Yes --> markAnon --> submit
    anon -- No --> submit
    submit --> save --> stop 
  • As a [user] I want to [edit] so that [I can correct mistakes]
    • I can edit my question before it is answered by the [moderator]
---
title: Edit Question
---
 flowchart LR
    start([Start])
    view[View My Question]
    subgraph 10 [ ]
    checkAnswered{Answered?}
    error[Error: Locked]
    edit[Edit Question]
    save[(Save)]
    end
    stop([Stop])

    start --> view --> checkAnswered
    checkAnswered -- Yes --> error --> stop
    checkAnswered -- No --> edit --> save --> stop 
  • As a [user] I want to [delete my question] so that [I can remove the question from the question list]
    • I can delete my question before it is answered
---
title: Delete Question
---
 flowchart LR
    start([Start])
    view[View My Question]
    subgraph 11 [ ];
    checkAnswered{Answered?}
    error[Error: Locked]
    delete[Delete Question]
    save[(Save)]
    end
    stop([Stop])

    start --> view --> checkAnswered
    checkAnswered -- Yes --> error --> stop
    checkAnswered -- No --> delete --> save --> stop 
  • As a [user] I want to [see the current question being discussed] so that [I can follow the live conversation]
    • The staged question appears in a “stage” section
 flowchart LR
    start([Start])
    list[Question List]
    subgraph 12 [ ];
    stage[Show Staged Question]
    nowPlaying[Now Playing Section](/JerryNixon/2025-luca-ama-app/wiki/Now-Playing-Section)
    end
    stop([Stop])

    start --> list --> stage --> nowPlaying --> stop 

Workflow