2017.1 Requirements

Target release
Epic
Document status
DRAFT
Document owner
QA

Goals

  • Convert the existing application to use NodeJS and VueJS

Background and strategic fit

The original application was built in PHP using the Laravel framework. To reduce time spent on on-boarding, training, and configuring and maintaining a relatively complicated stack (issues encountered in 2016), we're converting the backend to NodeJS (Express) and the frontend will use VueJS.

Assumptions

  • 2017.1 will be a clone of all existing functionality

Requirements

#TitleUser StoryNotes
1Log in and auth sessions

GIFT-45 - Getting issue details... STATUS

  • Users can't log in if their account was not activated by an admin (GIFT-47)
  • User's can't log in if their account is not active (Controllable by GIFT-51)
2User registration & email verification

GIFT-46 - Getting issue details... STATUS

  • User can register if their email address matches  a list of specific domains.
  • User receives a verification email after registration. They must click the link before the next step happens.
  • After the user clicks the verification link, the admin is sent an email, notifying them that a user has registered and needs approval.
  • User can not log in until an administrator approves their account.
  • Users are registered with the "nominator" role
3Allow admins to approve registered accounts

GIFT-47 - Getting issue details... STATUS

  • Create a page for administrators to view users that have registered and verified their email, but need to be approved.
  • Upon clicking "Approve," the user is notified via email and can log in.
4Allow users to retrieve lost passwords

GIFT-48 - Getting issue details... STATUS

  • If the user clicks "forgot password" on the login form, prompt them for their email address.
  • The user enters their email address and clicks "Send Password Reset Link"
  • That email address is sent a unique password reset link.
  • Password reset links expire after 48 hours.
  • If the user clicks the password reset link before it expires, they are taken to a screen where they can enter a new password (with confirmation).
  • If the password is valid, save, then redirect the user to the login screen and make them log in with the new password.
5For admins, populate the dashboard with admin tools.

GIFT-49 - Getting issue details... STATUS

  • Quick Overview
  • Report generation links
  • Packing slip generation links
6User dashboard
To be determined
7Allow admins to browse and search all registered and activated users.

GIFT-50 - Getting issue details... STATUS


8Allow admins to edit individual users

GIFT-51 - Getting issue details... STATUS


9Allow admins to browse "affiliations."

GIFT-52 - Getting issue details... STATUS


10Allow admins and nominators to submit nominations

GIFT-53 - Getting issue details... STATUS

  • Nominators are not allowed to submit more nominations than the limit on their profile allows for that calendar year. Admins do not have a limit.

11Allow admins to browse all nominations.

GIFT-54 - Getting issue details... STATUS

  • Note the sub-task regarding encrypting certain data fields
12Allow nominators to browse their own nominations

GIFT-55 - Getting issue details... STATUS


13Allow admins to manually create users

GIFT-56 - Getting issue details... STATUS


14Allow admins to review nominations

GIFT-57 - Getting issue details... STATUS


Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcome

Not Doing