- Introduction
- Installation Instructions
- Backend Setup (Node.js + MySQL)
- Frontend Setup (Angular)
- API Documentation
- Usage
- Testing
- Contributing
- License
- Contact
The User Management System is a web-based application designed to streamline user authentication, authorization, and account management. It provides a secure and efficient way to handle user registration, authentication, and role-based access control.
Built with Node.js and MySQL for the backend and Angular for the frontend, this system ensures a seamless experience for both users and administrators. Key features include JWT authentication, email verification, password recovery, profile management, and an admin dashboard for managing user accounts. Additionally, a fake backend implementation is available to facilitate development and testing without requiring a live backend.
This project is developed by:
- Marc Lawrence Magadan
- Jairus Azer Andrade
- John Clarence Palma
Follow these steps to set up the project locally:
Back to Table of Contents Ensure you have the following installed on your system:
- Node.js (Latest LTS version recommended)
- MySQL
- Angular CLI (for frontend development)
-
Clone the repository
git clone https://github.com/your-repo/user-management-system.git cd user-management-system/backend
-
Install dependencies
Run the following command to install the required dependencies:npm install
-
Set up environment variables
Create a.env
file in the root of thebackend
folder and add the following environment variables:# Database Configuration DB_HOST=your_db_host DB_PORT=3306 DB_USER=your_db_user DB_PASS=your_db_password DB_NAME=your_db_name # JWT Secret JWT_SECRET=your_jwt_secret # Email Configuration EMAIL_FROM=your_email@example.com SMTP_HOST=your_smtp_host SMTP_PORT=your_smtp_port SMTP_USER=your_smtp_user SMTP_PASS=your_smtp_password
Replace the values with your actual database credentials and email configuration.
-
Start the backend server
npm start
For development mode with auto-restart on file changes, use:
npm run start:dev
-
Navigate to the frontend directory
cd ../frontend
-
Install dependencies
npm install
-
Start the frontend server
ng serve
The application will be available at
http://localhost:4200/
.
The API documentation is available via Swagger. After starting the backend server, access it at:
http://localhost:4000/api-docs/#
-
Register a new account
- Navigate to
/accounts/register
and fill in the required details. - Submit the registration form.
- Check your email for a verification link.
- Navigate to
-
Verify your email
- Click the verification link sent to your inbox.
- You will be redirected to a confirmation page.
-
Log in
- Visit
/accounts/login
. - Enter your credentials and submit the form.
- Visit
-
Manage your profile
- Navigate to
/profile
to update personal information. - Change password and security settings.
- Navigate to
-
Forgot Password
- If you forgot your password, go to
/accounts/forgot-password
. - Enter your registered email and submit the request.
- You will receive an email with a password reset link.
- If you forgot your password, go to
-
Reset Password
- Click the link in the email to navigate to the password reset page.
- Enter a new password and confirm the changes.
- Log in with your new password at
/accounts/login
.
-
Admin functionalities
- Admin users can access the dashboard to manage users, roles, and permissions.
- Navigate to
/admin/dashboard
for full administrative capabilities.
To ensure system reliability, various tests have been conducted:
-
Functional Testing
- Validates core functionalities such as registration, login, email verification, and role management.
- View the functional testing results: Functional Testing Results
-
Security Testing
- Assesses vulnerabilities.
- View the security testing results: Security Testing Results
Contributions are welcome! If you’d like to contribute, please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Make your changes
- Commit your changes (
git commit -m 'Add new feature'
) - Push to the branch (
git push origin feature-branch
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For any inquiries or support, reach out to the developers:
- Marc Lawrence Magadan - mmarclawrence@gmail.com
- Jairus Azer Andrade -
- John Clarence Palma - johnclarencepalma7@gmail.com