Skip to content

User Stories

Stefan Dworschak edited this page Feb 25, 2021 · 8 revisions

User Stories

Legend:

  • not yet implemented

  • successfully implemented

  • P = Participant

  • ME = Mentor

  • S = Staff

  • A = Admin

  • M = Miscellaneous

  • T = Templating


Participant User Stories

Hackathon Participant Use-Case

  • #P01. As Participant, I would like to register an account.

    • See #M00.
    • Registration should include the following details:
      • First Name
      • Last Name
      • Email Address
      • Password
      • Slack Display Name
      • Org
      • Current Module on LMS
        • dropdown options
        • includes option for alumni
      • Registration Code
        • provided by CI
        • changes with each Hackathon
  • #P02. As Participant, I would like to reset my account password.

    • See #M00.
  • #P03. As Participant, I would like to update my profile.

    • PR#98
    • PR#115
    • Editable profile details should include:
      • First Name
      • Last Name
      • Email Address
      • Slack Display Name
      • Org
      • Current Module on LMS
        • dropdown options
        • includes option for alumni
      • Shipping Address
        • hidden by default
        • is enabled only if part of a winning team
  • #P04. As Participant, I would like to see a list of any upcoming Hackathons.

    • PR#76
    • PR#105
    • PR#108
    • If they are from an org, they should only see public Hackathons and their Org's Hackathons.
    • Only Hackathons with status published should be viewable
  • #P05. As Participant, I would like to enroll for an upcoming Hackathon.

  • #P06. As Participant, I would like to be assigned to a team during a Hackathon.

    • This should eventually be automatic once an Admin triggers an event to divide participants into teams.
  • #P07. As Participant, I would like to view my team's information.

    • PR#119
    • Visible items should only include:
      • Team Name
      • Slack Display Names of Members
  • #P08. As Participant, I would like to view useful resources and links.

    • PR#77
    • Useful Resources (in progress)
    • FAQs
  • #P09. As Participant, I would like to submit our Hackathon Project.

    • PR#87
    • Hackathon Project Submissions should include:
      • Team Name
      • Name of Team Speaker during presentations
      • Link to Source Code / Repository
      • Link to Deployed Site
      • Consent option to share deployed site on CI social media
  • #P10. As Participant, I would like to see the Judging criteria.

  • #P11. As Participant, I would like to withdraw from a Hackathon event.

    • See #P05.
    • Only available until the teams/judges are dispersed automatically.
  • #P12. As Participant, I should be able to add my shipping address if my team won.

    • Enables profile editable field.
  • #P13. **Simplify signup process for new users. **

  • #P14. As Participant, I want to see a view for all Hackathons I have enrolled in.


Mentor User Stories

  • #ME01. As Mentor, I would like to enroll as Mentor for a Hackathon event.

  • #ME02. As Mentor, I would like to see all previously mentored Hackathons and Teams.

  • #ME03. As Mentor, I would like to assigned to one or more teams during a Hackathon event.

  • #ME04. As Mentor, I would like to be able to see the team's information during a Hackathon event.

  • #ME05. As Mentor, I would like to be displayed on the team's page and/or showcase page.

  • #ME06. As Mentor, I would like to be able to either leave a comment for the team or have input into the scoring.

  • #ME07. As Mentor, I would like to receive recognition for one of my teams winning a Hackathon award.


CI Staff/Judge User Stories

Hackathon Staff/Judge Use-Case

  • #S01. As Staff, I would like to register an account.

    • See #M00.
    • Registration should include the following details:
      • First Name
      • Last Name
      • Email Address
      • Password
      • Slack Display Name
      • Org
      • Registration Code
        • changes with each Hackathon
  • #S02. As Staff, I would like to reset my account password.

    • See #M00.
  • #S03. As Staff, I would like to update my profile.

    • See #P03.
    • Editable profile details should include:
      • First Name
      • Last Name
      • Email Address
      • Slack Display Name
  • #S04. As Staff, I would like to see a list of any upcoming Hackathons.

    • See #P05.
    • If they are from an org, they should only see public Hackathons and their Org's Hackathons.
    • Only Hackathons with status published should be viewable
    • (if Admin) should see the drafts they created
  • #S05. As Staff, I would like to view useful resources and links.

    • See #P08.
    • Useful Resources (in progress)
    • FAQs
  • #S06. As Staff, I would like to enroll to be a Judge on the next Hackathon.

  • #S07. As Staff, I would like to view all teams' information.

    • PR#119
    • Visible items should only include:
      • Team Name
      • Slack Display Names of Members
  • #S08. As Staff, I would like to Judge each Hackathon Project Submission.

    • PR#81
    • PR#103
    • Becomes available only after a Hackathon End Date/Time
    • Judging per team using the standard criteria:
      • Presentation and Adherence to Theme (1-15 dropdown score)
      • Team Collaboration (1-15 dropdown score)
      • Usability and Practicality (1-10 dropdown score)
      • Effective User of Course Knowledge (1-10 dropdown score)
      • Awesomeness (1-10 dropdown score)
    • Cannot edit scores once submitted
  • #S09. As Staff, I would like to withdraw as a Hackathon Judge.

    • See #S06.
    • Only available until the teams/judges are dispersed automatically.

CI Staff (Admin) User Stories

Hackathon Staff/Admin Use-Case

  • #A01. As Admin, I would like to be able to do any/all items that Staff have.

    • No longer applicable / divided across other user stories.
  • #A02. As Admin, I would like to create new Hackathon events.

    • PR#99
    • Hackathon Name
    • Hackathon Start Date/Time
    • Hackathon End Date/Time
    • Hackathon Theme
    • Hackathon Description
    • Status (draft/published/deleted; default: draft)
    • Org (default: CodeInstitute)
      • If the value is CodeInstitute, then it's public
      • Else only participants from that Org (and Staff/Admins) should see it
  • #A03. As Admin, I would like to update existing Hackathon events.

    • PR#106
    • Hackathon Name
    • Hackathon Start Date/Time
    • Hackathon End Date/Time
    • Hackathon Theme
    • Hackathon Description
  • #A04. As Admin, I would like to delete existing Hackathon events.

  • #A05. As Admin, I would like to manually trigger an event that divides teams/judges evenly.

    • Once an admin triggers the event to distribute teams/judges:
      • Number of teams and participants per team should depend on total number of participants.
      • This should assign a random Judge/Mentor to each team as well.
      • To ensure a balanced range of skill levels in each team, the distribution algorithm should assign participants to teams based on their experience (LMS Module) ie. divvy out all Alumni first (if any), then MS4, MS3, MS2, MS1.
      • The aim is to have between 4-7 participants per team ideally.
  • #A06. As Admin, I would like to add / update / delete useful resources and links.

  • #A07. As Admin, I would like to update Judges scoring criteria.

  • #A08. As Admin, I would like to view winner's shipping addresses.

    • This is so we know where to send prizes to winning teams.
  • #A09. As Admin, I would like to trigger an event to award the winning project(s) based on the judges scores and send a notification to all participants.

  • #A10. As Admin, I would like to change the status of a hackathon.

  • #A11. As Admin, I would like to send a notification to all participants about the winners of the hackathon.

  • #A12. As Admin, I would like to edit the award categories for a hackathon.

  • #A13. As Admin, I would like to edit the default hackathon image.

  • #A14. As Admin, I would like to create public Hackathons for which external users can sign up (even though Slack signin is enabled).

  • #A15. As Admin, I would like to be able to view the count and details of participants of a hackathon.

  • #A16. #A16. As Admin, I would like to assign a mentor to a team.


Miscellaneous User Stories

  • #M00. As a User, I would like to register an account.

  • #M01. Judging Automation

    • PR#112
    • Once all Judges have submitted their scores, an automatic tally of scores should determine the winning team.
    • This should also trigger the winning team's profile to allow them to update their shipping address.
  • #M02. Automation of Team/Mentor Distribution

    • In lieu of #A05 (the manual event for distribution), this would be automated 48hrs prior to the official start date/time of the Hackathon:
      • Number of teams and participants per team should depend on total number of participants.
      • This should assign a random Judge/Mentor to each team as well.
      • To ensure a balanced range of skill levels in each team, the distribution algorithm should assign participants to teams based on their experience (LMS Module) ie. divvy out all Alumni first (if any), then MS4, MS3, MS2, MS1.
      • The aim is to have between 4-7 participants per team ideally.
        • 50-60 participants = 10-12 teams with approximately 5 per team
        • 61-70 participants = 12-14 teams with approximately 5 per team
        • 71-80 participants = 14-16 teams with approximately 5 per team
        • 81-90 participants = 16-18 teams with approximately 5 per team
        • 91-100 participants = 18-20 teams with approximately 5 per team
        • 101-110 participants = 20-22 teams with approximately 5 per team
        • 111-120 participants = 22-24 teams with approximately 5 per team
        • 121-130 participants = 24-26 teams with approximately 5 per team
        • 131-140 participants = 26-28 teams with approximately 5 per team
        • 141-150 participants = 28-30 teams with approximately 5 per team
        • 151+ participants = need to discuss with Community Manager
  • #M03. Include base setup files and static

  • #M05. Creating Hackathon Database Models

  • #M06. As a User, I would like to see my account.

  • #M08. Build test data

  • #M09. Participant profile page

  • #M10. Update Hackathon and Profile model with new fields.

  • #M11. Display Hackathon details

  • #M12. Landing page data

  • #M13: **Move resources to hackathon and/or allow for hackathon specific resources (and maybe participants to add resources) **

  • #M14. Misc cleanup changes and improvements.

    • Continuous User Story for maintenance
  • #M15. Change signup/login to use slack user name as username and validate against Slack workspace.

  • #M16. Remove judges scores from scoring if they have not scored all teams' projects.

  • #M17. Add CI anonymous profile image instead of current profile image.

  • #M18. **Implement display of hackathon awards on user profile, team page and/or hackathon detail view. **


Templating User Stories

  • #T01. Footer Content & Styling

  • #T03. Landing page

  • #T04. Update all_auth templates