This is a PHP-based user management system that allows for user registration, login, profile management, password reset, role-based access control (RBAC), and integration with GitHub OAuth for login. The system is designed to provide a secure and flexible solution for managing users and their permissions within a web application.
- User registration: Users can sign up for an account with a unique username, email, and password.
- User login: Registered users can securely log in to their accounts using their username and password.
- Profile management: Users can view and update their profile information, including their username, email, first name, last name, and avatar.
- Password reset: Users can request a password reset if they forget their password. A password reset link will be sent to their email.
- Role-based access control (RBAC): Administrators can assign different roles to users, granting them specific permissions within the system.
- GitHub OAuth integration: Users can log in to the system using their GitHub account, providing a seamless authentication experience.
- Clone the repository to your local machine:
git clone https://github.com/Kynlos/KynlosPHPUserManagementSystem.git
- Install dependencies using Composer:
php -S localhost:8000
You can access the application in your web browser by navigating to:
To use the application:
- Register a new account by clicking on the "Register" link.
- Log in to your account using your username and password.
- Update your profile information on the "Profile" page.
- Request a password reset if you forget your password.
- Administrators can access the admin panel to manage users and their roles.
- Users can log in using their GitHub account by clicking on the "Login with GitHub" button.
This project relies on the following dependencies:
- PHPMailer: Library for sending emails via SMTP.
- RobThree/Authenticator: Library for implementing two-factor authentication (2FA).
Contributions are welcome! If you find any bugs or have suggestions for improvements, please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.