Laravel SmartHR is an enterprise-grade Human Resource Management System (HRMS) designed for modularity, scalability, and ease of use. It handles everything from employee management to complex payroll and project tracking.
We have comprehensive developer documentation available in the docs/ directory:
- 01. Overview - System capabilities and architecture.
- 02. Installation - Step-by-step setup guide.
- 03. Architecture - Deep dive into the modular monolith design.
- 04. Folder Structure - Where everything lives.
- 05. Database Schema - Tables and relationships.
- 06. Authentication & Permissions - RBAC system explained.
- 07. Modules - Detailed guides for Accounting, Sales, Projects, etc.
- 08. API Documentation - REST API reference.
- 12. Contribution Guide - How to contribute code.
- Modular Architecture: Business logic is separated into independent modules (Accounting, Sales, Projects).
- Employee Management: Complete lifecycle management.
- Payroll System: Automated salary calculation with allowances and deductions.
- Project Management: Kanban boards, task tracking, and team collaboration.
- Invoicing & Accounting: Create estimates, convert to invoices, and track expenses.
- Role-Based Access: Granular permissions for Super Admin, HR, Manager, and Employee.
Watch the installation process on Youtube by clicking on the the thumbnail below
- Clone the repository using your termina or command prompt
git clone https://github.com/MusheAbdulHakim/laravel-smarthr.git smarthrcd smarthr
-
Install dependencies
- Composer
composer install- For npm users
npm install && npm run build- Or if youre using PNPM
pnpm install && pnpm run build -
Create your database
-
Rename .env.example to .env Or copy and paste at project root directory and rename the file .env .You can also use this command.
cp .env.example .env
- Generate app key
php artisan key:generate
- Install Reverb
Refer to the Reverb Documentation on how to setup and run the server. Laravel Reverb
php artisan reverb:install
- Set database connection to your database in the .env file. Make sure to set APP_URL to make your domain.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=smarthr
DB_USERNAME=root
DB_PASSWORD=
- Run migrations and seeders
php artisan migrate:fresh --seed; php artisan module:migrate --all --seed
- Create Symlink
php artisan storage:link
In linux run
sudo chmod -R 777 storage bootstrap/cache
- Visit your application domain/url in the browser or Start the local server with and follow the link
php artisan serve
composer run dev
- Admin
email: superadmin@smarthr.com
password: password
- Employee
email: employee@smarthr.com
password: password
- Client
email: client@smarthr.com
password: password
- Star the repository and report any issues/bugs you encounter here in the repository.
In order for the chat app to be working with realtime communication, you'll need to setup Reverb, Run the reverb server php artisan reverb:start and listen for events with php artisan queue:listen
See Installation Guide for full details.
We welcome contributions! Please see our Contribution Guide for details on our code standards and pull request process.
This project is open-source software licensed under the MIT license.














