There are several possible flows for adding a new client to the system. We need to have a client added before we can create any projects which are not internal. This entry will discuss the various ways of adding a client and how they get linked to your accounts.
The following is meant to be a casual use case and will not worry about technical concerns such as the database or web server crashing, notification emails failing to send etc, but it will discuss alternate flows
Preconditions
The use must be logged in and be an administrator of the account
Main flow
- The administrator goes to the add client page
- Fills in all the form fields and submits the form
- Based on the submitted form, a new user is added to the system and a new account is created, and the 2 are linked together
- The newly created account is linked to this account
- An email is sent to the new user informing them they now have an account and have been added as a client of the current account
Alternate flows
-
- The administrator doesn’t fill in all the fields
- Assuming they filled in the required fields (users email and account name) then the form submits successfully, otherwise the form is redisplayed with an error
- The newly added user is prompted to add any missing information when they first login
-
- The users email already exists in the system
- Instead of adding a new row in the database for the user, we us that users ID for the links
- An account with the name already exists in the database
- This may or may not be the same account (many accounts can have the same name) so we create the account either way
- The user then has an option to merge the 2 accounts together if they are both the same
- The users email already exists in the system
-
- If they already have a user account, they login with their existing credentials and will see the new account
- Otherwise, they will need to set a password and fill in any information missed when the administrator added the account