Overview of User Management Functions
To build the user management functions, you need to understand the overall picture of the user management functions. To have a comprehensive understanding, it is good to observe the end-to-end process from two perspectives:
- User journey perspective
- Developer's perspective
User Journey Perspective
From the user journey perspective, there are three types of journeys.
- Initial journey: start to use the app by signing up for the service
- Regular journey: the primary cycle of the user journey – login, a login user journey, and logout.
- Occasional journey: when required, a user can change their password, or when they forget the password, they can reset their password. Also, the user can update their user profile, name, and email address.
Developer's Perspective
From the developer's perspective, you need to design and build the user management functions to support the user journey. There are five key design points in user management functions from the developer's perspective.
1 User Model
First, you need to design what user data the app will handle. Django provides a built-in user model including the following fields:
username
first_name
last_name
email
password
groups
user_permissions
is_staff
is_active
is_superuser
last_login
date_joined
You can also add more fields, such as a user icon and other user profiles, by creating a custom user model.
2 Basic User Management Functions
When we talk about the user management functions for web applications, the following five essential components are often discussed.
- Signup: register user data in the user model
- Login: authenticate the user to allow them to use the service
- Logout: exit the service
- Password change: change the user password because of reasons other that the user losing the password (such as security reasons)
- Password reset: reset the password when the user forgets their password
In web applications, each function is handled on a different page, but the designs of these pages are pretty standardized.
3 Login Status
Once the user logs in to a web application, they can access the pages which are designed for logged-in users. Also, depending on the user profile (authority level), the pages that are accessible to the user can be different. The key parts of user management function development are designing and building the process and pages.
4 User profile update
Usually, web applications have a page to manage user profiles. Unlike the primary user management functions, the user profile page design is more free-form.
5 Social login
The social login is an approach for user authentication via existing online service accounts such as Google, GitHub, or Facebook accounts. By using the social login feature, a web app's user management process can be simplified, and the users can avoid managing their passwords and user profiles. Social login is a common feature in many web applications.