Invitation Design

Related Designs and Pages

Guide's Invitation Narrative
Invite Contents
Downloading and Installing the App
Registering your Device
New Member Training
Authentication Design

For setting up the email during Send Invitations: https://www.howtoforge.com/tutorial/configure-postfix-to-use-gmail-as-a-mail-relay/

Use Cases

Specific to Invitations

Future

Related to Invites

Use Case Swimlanes

Edit Image
invitationswimlanes.png

Steps

These steps are appropriate for the invitation-based Games where a Guide leads a selected group on an Outing.

  1. The Guide begins by forming a Team, essentially a list of Members. The assumption is the list of Members has already been created within the system along with their WordPress Accounts, but it should be possible to add a New Member while assembling the Team.
  2. Then, the Details of the Outing are pulled together as part of Prepare Invitations and the candidate email is displayed (and optionally sent to self) for verification before sending. Prospective New Members have an additional set of instructions for downloading, installing and registering the application.
  3. The last step performed by the Guide is to Send the invitations out to the Team. At this point, each Member would take over the flow.
  4. Receiving the email provides a number of different options to the Member (including prospective New Members). Full details under Invite Contents.
    1. View Privacy Policy
    2. View Course Details (Outing Details are provided via a Registered App)
    3. Download, Install, and Register App instructions for New Members.
    4. Links to the Home Page
    5. Opportunity to Decline (acceptance happens on the registered App)
  5. Once the Member's Device is Registered, the Member may accept the invitation (declining an invite does not require the app).
  6. An accepted invite may be placed on the Member's Calendar (ICS-formatted file)
  7. Once the day of the Outing has arrived, the Guide will verify each accepted invitation is present and confirms the team's presence.

Use Cases & Classes

Edit Image
invitation-uc-and-classes.png

Classes

Team

It really starts with building a Team since that is the Invite List.

  • Unique Identifier
  • Name of the team may be decided in advance and/or settled upon by the Team Members.

Member

  • Unique Identifier
  • Displayed Name
  • First Name
  • Last Name
  • Email
  • Optional<String> Phone
  • List<Badge> Badges

TeamMembership

This is the associative table for a many-to-many relationship between Member and Team.

  • Unique Identifier
  • Team ID
  • Member ID

Invitation

  • Unique Identifier
  • Outing ID
  • Team ID (even though it can come from Outing)
  • Invite State: SENT, ACCEPTED, DECLINED

Join against the Outing to see if this invitation has expired or not.

Outing

  • Unique Identifier
  • Team ID
  • Course ID
  • Date Scheduled Start
  • Date Scheduled End

The Scheduled End is the time at which invitations will expire; members can no longer join the Outing once the Outing has completed.

AuthenticationRecord

Placed on this diagram because

  • We need the JWT session to verify the authenticated session — which permits nearly all actions with the application
  • When to connect the Member with the Identity is an important part of this.

State Diagram for Invitation

invitation-state.png

INITIAL

  • Accept button is shown; allows transition to ACTIVE.
  • Decline button is shown; allows transition to DECLINED.

ACTIVE

  • Cancel Invite button is shown; allows transition to DECLINED.
  • Add to Calendar Button is shown (INV-07 Add to Calendar)

DECLINED

  • Re-Accept button is shown; allows transition to ACTIVE.

EXPIRED

  • When Outing completes, all invitations for that Outing become expired.
  • These should no longer be returned from the service and presented to the user on the Invite page.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License