Now that the main screens of the app are complete, and enough to gather feedback upon, we will continue designing the Task LIst app with authentication screens:
You can see the tickets for this post in this ClickUp board
We aimed to create uniform screen layouts for the authentication screens with the following elements:
The sign in flow is pretty simple:
Actionable elements on the screen:
Input level validation:
Form level validation:
The email and password must match with what is in the database. Message: “The credentials you entered are invalid.”
The registered, and validated email must have a password set up as well. Message: “You don't have a password set up yet. Please request a new password.”
Result upon submit success:
In case users need to set up a new password, they can do so following this flow:
Actionable elements on the screen:
Input level validation:
Result upon submit success:
The link:
If either of those are not met (opening the link too late, or trying to use it multiple times), we show a Set password failed screen, instructing the user to reset their password.
The sign up page is accessible from the Sign in page by pressing the link at the bottom: Don’t have an account yet? Sign up here.
Actionable elements on the screen:
Input level validation:
Email – must be a valid email address. Message: “Invalid email address“
Form level validation:
The email cannot be already registered. Message: “This email is already associated with an account. Sign in instead.”
Result upon submit success:
Email verification happens after signing up, and the goal is to make sure the user is really in possession of the entered email address. Without verifying the email address, the user cannot set a password, hence cannot log in.
The link:
If either of those are not met (opening the link too late, or trying to use it multiple times), we show a Verification failed screen, instructing the user to sign up again.
If the link is valid, the user becomes verified in the system, and gets redirected to the Set password screen.
An edge case is where the user verifies their email using the verification link, but doesn’t finish setting up a password. In this case when they try to log in, they will receive a message asking them to set up a new password as stated above in the Sign in flow.
The set password screen is available when:
First, the link is validated to avoid the case of the user having to set a new password only to realise that the link is expired.
If it’s expired, we show the “Set password failed” screen, instructing the user to get a new link by resetting their password again.
Actionable elements on the screen:
Input level validation:
Form level validation:
Result upon submit success:
To make the users be able to sign out, we needed to extend the navigation of the main view in the dashboard. In the navigation bar we put a “burger” button to the bottom left corner, which opens a sidebar.
The sidebar is triggered by pressing the burger icon of the navigation bar, and is placed over the screen on an overlay.
Elements:
The sidebar can be closed by either the back button, or clicking anywhere outside the sidebar.
After the sign out button is pressed, the session is cleared, and the user is being redirected to the Sign in page.
Full designs can be found in the Figma file:
The prototype can be tried out using this Figma link.
You can see the tickets for this post in this ClickUp board
Development has created a live, clickable prototype for the task management part of the app, so we will conduct user testing and gather feedback. Meanwhile, the development team is setting up the backend to implement authentication and replace our fake API with a real one.
This is what is upcoming:
In the next post we will walk you through step-by-step how to create a Fastify GraphQL API with a MongoDB database.