Skip to content
This repository was archived by the owner on May 2, 2024. It is now read-only.

Functional Requirements

Mitch J edited this page Dec 7, 2022 · 2 revisions

KHE 2023 Website Functional Requirements (work in progress)

The public-facing site needs to be able to:

  • Before the registration period, let users sign up to receive an email when registrations open up
  • Allow visitors to register for the hackathon while collecting their demographic information, potentially their resumes, and creating a user account for them
  • Retrieve and display a schedule of events which may have many attributes and span multiple days
  • Allow visitors to open support tickets by entering their questions, comments, or problems into a form with their contact information
  • Retrieve and display the event's sponsors in the order of their importance
  • Display information about the event such as its timeframe, theme, and FAQs; (I'm listing this here for the sake of completeness, but year-specific content will not be part of this monorepo)

Plus these features would be nice to have:

  • Allow visitors with an active user account to edit their profile and information and view the status of their registration
  • Allow visitors with an active user account to RSVP to events on the schedule, either formally or just by leaving e.g. a 👀 reaction
  • Allow visitors to install the website on their phone as a progressive web app
  • Allow visitors to signup/login with OAuth with identity providers like Discord, Github, Google, etc
  • Allow visitors to reset their passwords by clicking a link they receive in an email

The site for staff needs to be able to:

  • Classify user accounts so that normal attendees can't even see the staff site and user accounts with different roles have different levels of access to functionality
  • Display active user accounts and registrations
  • Allow staff to change the status of a registration in order to approve or deny it, or just delete a registration if it's spam, with automatic email notifications for approved registrations
  • Allow staff to mark a user as "checked in" when they show up at the event
  • Display the support tickets to staff and allow them to be marked as open, in progress, or closed
  • Allow staff to create, edit, and delete events on the schedule
  • Allow staff to edit the list of sponsors, including attributes such as their logos and websites and their display order
  • Allow staff to export data for user accounts into a standard spreadsheet format such as CSV
  • Allow staff to download submitted resumes en masse

Plus these features would be nice to have:

  • Allow staff to respond to support tickets from the site's UI, ideally supporting a back and forth conversation
  • Allow staff to send mass emails from the site's UI, potentially targeting specific groups of users (like perhaps successfully registered ones), and also view previously sent emails
  • Allow staff to set up redirects from unused khe.io URLs to affiliated sites, e.g. khe.io/dp could redirect to the event's devpost page
  • Allow staff to add and edit other content on the user-facing site, like the FAQs?
  • Allow staff to view the aggregated user data as summaries and graphs
  • Store an audit log recording when staff have edited stored data