As a new user,
I want to be able to register with the website
So that I can use the features of the website to the full
It is acceptable when...
There is a screen which allows the user to register on to the system.
The screen contains the following mandatory fields:
Username
Date of birth
Email address
Password
Confirm password
The Username must be different from any Username currently in the system
The email address must be different from any email address currently in the system
The date of birth must indicate the user is over 18 years old. (in case a user posts something inappropriate to minors)
The password must conform to the agreed website password complexity (See wiki TBC)
The password and the confirmed password must match
The screen contains a Register button
Clicking the Register button will trigger field validation
If validation passes then the form data will be sent to the server via the user register API
If a successful response is returned from the API then the user is redirected to their profile page
If an unsuccessful response is returned from the API then the user is shown a message advising why the registration failed, providing it is one of the following reasons, otherwise a general "failed to register you" message.
Email address already exists in the system
Username already exists in the system
Password does not match the complexity required
If the validation fails, a message will be displayed informing the user there are issues with their form, and each field that fails validation will display a warning.
The password must be hashed and salted before storing in the data store, as per Microsoft's recommended approach for ASP.Net authorisation and authentication practices
There is a button or link on the home screen which takes a new user to the register screen
There is a button or link on the login screen which takes a new user to the register screen (may be a placeholder screen)
As a new user, I want to be able to register with the website So that I can use the features of the website to the full
It is acceptable when...
See User Registration Logic flow