Alice is a researcher at a lab and she is in the process of starting a new project. She is trying to recruit people to join her research team to work on her new project. Alice thinks that her friend Bob who is a researcher at a different lab might be interested in joining her team.
Goal | Alice wants to invite Bob to join her Synapse team. |
Primary actor | Alice |
Secondary actor | Bob |
Precondition | Alice has created a team and she is at her team's page. |
Postcondition | Bob receives an email invitation to join Alice's team. |
Main success scenario | Step 1. Alice invites Bob to join her team by entering his email address and an optional invitation message. Step 2. System sends Bob an email containing an invitation link to join Alice's team. |
Error scenarios | Replacing step 2.
|
Goal | Alice wants to invalidate the invitation she sent previously. |
Primary actor | Alice |
Secondary actor | Bob |
Preconditions |
|
Postcondition | The invitation link Bob received is no longer valid. |
Main success scenario | Step 1. Alice retrieves the pending invitations to her team and removes the one associated with Bob. Step 2. System invalidates the invitation link sent to Bob. |
Goal | Bob wants to create a Synapse account and accept Alice's invitation. |
Primary actor | Bob |
Secondary actor | Alice |
Preconditions |
|
Postcondition | Bob is part of Alice's team. |
Main success scenario | Step 1. Bob clicks on the invitation link in the email he received and is directed to the Synapse web client. Step 2. The web client presents Bob with the option to create a Synapse account or sign in with an existing account. Step 3. Bob creates his new Synapse account. Step 4. The web client displays Alice's invitation to Bob. Step 5. Bob accepts Alice's team invitation. Step 6. System sends a notification email to Alice saying that Bob has joined her team. |
Goal | Bob wants to sign in to his existing Synapse account and accept Alice's invitation. |
Primary actor | Bob |
Secondary actor | Alice |
Preconditions |
|
Postcondition | Bob is part of Alice's team. |
Main success scenario | Step 1. Bob clicks on the invitation link in the email he received and is directed to the Synapse web client. Step 2. The web client presents Bob with the option to create a Synapse account or sign in with an existing account. Step 3. Bob signs in with his existing Synapse account. Step 4. The web client displays Alice's invitation to Bob. Step 5. Bob accepts Alice's team invitation. Step 6. System sends a notification email to Alice saying that Bob has joined her team. |
Goal | Bob wants to create a new Synapse account but doesn't want to accept Alice's invitation |
Primary actor | Bob |
Secondary actor | Alice |
Precondition |
|
Postcondition | Bob has a Synapse account with a pending invitation to join Alice's team. |
Main success scenario | Step 1. Bob clicks on the invitation link in the email he received and is directed to the Synapse web client. Step 2. The web client presents Bob with the option to create a Synapse account or sign in with an existing account. Step 3. Bob creates his new Synapse account. Step 4. The web client displays Alice's invitation to Bob. |
We always want to allow Bob to choose the account he joins Alice's team with. This led to the following design decisions:
Bob should not be automatically added to the team after registering a new account / signing in to his account, but instead he should need to manually accept the membership invitation. This separates the process of registering for a Synapse account and joining the team, giving Bob the chance to explore Synapse without committing to join Alice's team.
In progress