Invitation Design

Related Designs and Pages

Guide's Invitation Narrative
Invite Contents
Downloading and Installing the App
registration-design
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

Use Case Catalog (in new window)

INV module

Supporting the Guide Actor:

PLAY module

Supporting the Seeker Actor:

Supporting the Guide Actor:

Future

Related to Invites

Use Case Swimlanes

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

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

This record/class is the union of three sources of information:

  • WP / BadgeOS
  • Identity from 3rd-party Identity Service
  • Clue Ride-specific properties

Current list:

  • 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

See Invitation Views section below

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

Outing

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

Course

  • ID
  • Name
  • URL to the Course Description page on Clue Ride website

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.

Invitation Views

There are different views for the Invitation depending on where it is being presented:

  • HTML Email Invite
  • List of Invites page
  • Invite Details page

Data for HTML Email Invite

See the Invite Contents page.

Data for List of Invites

This is presented to the user for

  • Status of Invites/Outings
  • Name of the Outing and Date
  • Either accepting or declining

This limited View should contain the following fields:

  • Invite ID
  • Invite Status
  • Member ID
  • Name of the Outing
  • Date / Time of the Outing

Data for Invite Details

The details page for an Invite should provide the following information:

  • Status
  • Date / Time
  • Location
  • Name of Guide (who offers the invite)
  • Link to Outing Details page

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