MiHRM is a modern, Laravel-based HR Management System designed to streamline your HR processes, offering tools to manage everything from employee attendance to salary management, project assignments, perks, and more β all in one place!
- Employee Attendance: Monitor attendance and manage working hours.
- Leave Requests: Simple and intuitive leave request handling.
- Project Management: Easily create, update, and track projects.
- Project Assignment: Seamless assignment of projects to employees.
- Salary Management: Accurate and efficient salary tracking.
- Perks & Benefits: Manage employee perks with ease.
- Two-Factor Authentication (2FA): Secure your system with 2FA.
- Admin Controls: Powerful tools for admins to manage HR workflows.
- Announcements: Publish and manage company-wide announcements.
- Installation
- Configuration
- Usage
- Core Functionalities
- Packages
- Queue
- Cron Jobs
- Events
- Middlewares
- Contributing
- License
Ready to get started? Follow these steps to set up MiHRM on your local environment.
-
Clone the repository:
git clone https://github.com/SSTalha/MiHRM cd MiHRM/ -
Install dependencies:
composer install
-
Set up environment variables:
cp .env.example .env php artisan key:generate
-
Configure your database in the
.envfile: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 to set up the database schema:
php artisan migrate
-
Run database seeders:
php artisan db:seed
-
Generate JWT secret key:
php artisan jwt:secret
MiHRM is highly customizable. Tailor it to your needs by configuring:
- Cache settings
- Database connection
- Email notifications
- Queue drivers
All configurations can be adjusted in the .env file for flexibility in various environments.
Configure your mail settings in the .env file to enable email notifications and other mail features:
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@yourdomain.com
MAIL_FROM_NAME="${APP_NAME}"
MiHRM supports various mail services to send notifications, alerts, and other important communications. Make sure to set up your mail service provider accordingly.
Once installed, start the development server with:
php artisan serveThen, open your browser and visit: http://localhost:8000 to start managing your HR tasks effortlessly.
Track employee attendance and working hours effortlessly. MiHRMβs attendance system enables you to monitor productivity, ensure compliance with work schedules, and maintain accurate attendance records. Employees can log their hours, and managers can review attendance reports to ensure all employees are adhering to their work schedules.
Employees can submit leave requests that follow a structured approval workflow, helping HR manage leave applications efficiently. This feature maintains a record of leave balances, making it simple for both employees and managers to track remaining leave days. Managers can approve or reject requests and provide feedback directly through the system.
Easily create, update, and delete projects. This functionality ensures that all projects are properly documented and tracked throughout their lifecycle. Administrators can assign team members to projects, set deadlines, and add necessary resources. Track project progress, manage timelines, and ensure milestones are met, all in one place.
Assign projects to employees with ease. MiHRM allows administrators to validate employee IDs and assign projects accordingly. This ensures accurate tracking of project responsibilities, and employees can view their assignments and deadlines. Seamlessly reassign projects and manage workloads to ensure balanced distribution of tasks.
Manage payroll with precision. This module ensures all salary records are up to date and processed correctly. Admins can update salary details, issue payments, and track salary histories. Generate comprehensive payroll reports, manage deductions and increments, and ensure timely salary disbursement.
Reward and incentivize your employees by managing perks and benefits efficiently. The system allows you to set up various perks, such as bonuses, allowances, and benefits. Track the assignment of these perks to employees, and automatically calculate eligibility based on predefined criteria. Ensure your employees feel valued and motivated.
Security is a priority! MiHRM integrates with Google Authenticator to provide 2FA, giving your employees and admins an extra layer of security when logging in. This feature ensures that even if login credentials are compromised, unauthorized access is prevented. Protect sensitive data and maintain high security standards.
Publish and manage company-wide announcements efficiently. This feature allows admins to create, schedule, and publish announcements visible to all employees. Use this tool to inform staff about important updates, upcoming events, policy changes, and more. Keep everyone in the loop with timely and well-documented announcements.
MiHRM leverages powerful third-party packages to extend functionality. Some of the key packages include:
guzzlehttp/guzzle - laravel/tinkerspatie/laravel-permissiontymon/jwt-authpragmarx/google2falaravelsimplesoftwareio/simple-qrcode
And many more!
MiHRM utilizes a database queue connection for managing background tasks efficiently. You can configure the queue driver in the .env file:
QUEUE_CONNECTION=database
To process the queued jobs, run the following command:
php artisan queue:workMiHRM schedules various cron jobs to automate tasks. To ensure these tasks run as scheduled, set up a cron job on your server to run the Laravel command scheduler:
-
Open the crontab:
crontab -e
-
Add the following line to run the Laravel scheduler every minute:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
MiHRM includes the following scheduled commands:
-
Update Attendance Record:
php artisan attendance:update-record
-
Add Unpaid Salary:
php artisan salary:add-unpaid
-
Handle Leave Requests:
php artisan leave:handle
-
Pay Salaries:
php artisan salary:pay
-
Publish Announcements:
php artisan announcements:publish
-
Custom DTO Generation:
php artisan make:dto
-
Custom Helper Generation:
php artisan make:helper
-
Custom Service Generation:
php artisan make:service
We love contributions! Follow these steps to contribute:
- Fork the repo.
- Create a new branch with your feature/fix.
- Push your changes and open a Pull Request.
Feel free to check out the issues section for features you could help with!
MiHRM is licensed under the MIT License, making it open and free for both personal and commercial use.
π¬ Questions? Reach out by opening an issue or contributing to the discussion!
Made with β€οΈ by MiHRM contributors.