A Laravel 8-based appointment management system with Role-Based Access Control (RBAC). This application allows users to manage appointments, enforce access permissions based on user roles, and streamline employee scheduling.
- Role-Based Access Control (RBAC): Restrict access to resources based on user roles (Admin, Employee).
- User Management: Admins can create, update, and delete users.
- Appointment Scheduling: Employees can view and manage appointments.
- Working Hours Management: Define and adjust employee working hours.
- Authentication & Security: Secure user authentication using Laravel Passport.
- Access Management: Define and manage permissions.
- Appointments: Create, update, and manage appointments.
- Employee Management: Manage employee details and working schedules.
- Employee Working Hours: Track and modify employee availability.
- User Access: Assign roles and permissions to users.
- Role Access: Define role-based permissions.
- User Management: Manage users, including registration, login, and password resets.
- Working Hours: Configure employee working schedules.
- PHP 7.3+ or 8.0+
- Composer
- MySQL
- Node.js (for front-end assets)
-
Clone the Repository:
git clone using ssh or https cd appointment-with-rbac-laravel-v8
-
Install Dependencies:
composer install npm install
-
Set Up Environment:
cp .env.example .env php artisan key:generate
-
Configure Database: Edit the
.env
file to match your database credentials:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database DB_USERNAME=your_username DB_PASSWORD=your_password
-
Run Migrations and Seed Data:
php artisan migrate --seed
-
Start the Server:
php artisan serve
The app will be accessible at
http://127.0.0.1:8000
.
-
Admin Role:
- Manage users, roles, and permissions.
- Configure employee working hours.
- View and manage all appointments.
-
Employee Role:
- View assigned working hours.
- Manage personal appointments.
Run all tests:
php artisan test
Run a specific test:
php artisan test --filter TestClassName
This appointment management system provides a secure, role-based solution for scheduling and managing appointments efficiently. Built with Laravel 8, it ensures scalability, flexibility, and ease of use for businesses handling multiple users and role-based access. Whether you are an admin managing users or an employee tracking appointments, this system streamlines the process with robust authentication and access control.