As always, before we start building, we should as always take a look at what we plan to build.
Firstly, a brief description of our intent: we plan to build an app that will provide the following functions:
An admin can manage all users within the system and also allow individual users to edit and update their own data.
Users can reset passwords if they have forgotten them; e-mails confirming this will be sent to these users
New users are able to register and become part of the system; a password will be generated and sent to them in an e-mail
We will also look at how to implement code to check for a users' access level. You can use this code in your projects to limit users from specific controllers and controller functions.
To get a better idea of what's happening, let's take a look at the following site map:
So, that's the site map; now, let's go over each item and get a brief idea of what it does: