User Flow

Cases

  1. User is unregistered
    • Can only visit views listed in HUNGER_ALWAYS_ALLOW_VIEWS or views in modules listed in HUNGER_ALWAYS_ALLOW_MODULES. The views list may refer to the view by the view’s function name or urlpattern name.
    • All other urls redirect to HUNGER_REDIRECT.
    • If registration view is listed above, then the user can register for an account that doesn’t yet have beta access.
    • If invited by a friend by receiving an email with a beta invite link, then the code is stored in a cookie. When the user registers, then they are automatically placed into the beta.
    • If registering via a public beta code, the code is similarly placed in a cookie, where later registration will place the user automatically in the beta and the invitation code count decrements by 1.
  2. User is registered but not in beta
    • An admin can invite that specific user to the beta through the Django admin interface.
    • The user can be invited by another beta who has beta access, provided that the inviter has enough invitations to send the invitation. The user clicks a link.
    • The user can join the beta themselves by using a public beta code as long as the code has enough uses left.
    • Upon being verified as in-beta, the user is redirected to HUNGER_VERIFIED_REDIRECT.
  3. User is registered and in beta
    • An admin can dispense invitations so that users can invite their friends.
    • Invitations in hand, the user invites friends via either email or their username if applicable.
    • Otherwise, allow user to invite friends at-will.