PHPackages                             lutpiero/open-payroll - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. lutpiero/open-payroll

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

lutpiero/open-payroll
=====================

Built with Laravel Standalone Package Creator

001PHP

Since Jul 23Pushed 5y agoCompare

[ Source](https://github.com/lutpiero/open-payroll)[ Packagist](https://packagist.org/packages/lutpiero/open-payroll)[ RSS](/packages/lutpiero-open-payroll/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

 [![OpenPayroll](resources/img/OpenPayroll.png)](resources/img/OpenPayroll.png)

[![Build Status](https://camo.githubusercontent.com/913b69643b622afb83f6f544bccbb39a3ccbbfcddfc9a5d2bd3ccc8ab19214c3/68747470733a2f2f7472617669732d63692e6f72672f636c65616e69717565636f646572732f6f70656e2d706179726f6c6c2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/cleaniquecoders/open-payroll) [![Latest Stable Version](https://camo.githubusercontent.com/d381133e5433a9d67512f92b2d1d2790bebf81c236690cb6168ab1ae3afd6268/68747470733a2f2f706f7365722e707567782e6f72672f636c65616e69717565636f646572732f6f70656e2d706179726f6c6c2f762f737461626c65)](https://packagist.org/packages/cleaniquecoders/open-payroll) [![Total Downloads](https://camo.githubusercontent.com/2dcaa4ba9186c839834bb71dc3e1163c919a1f3dd1f3386d16042558b655c8ee/68747470733a2f2f706f7365722e707567782e6f72672f636c65616e69717565636f646572732f6f70656e2d706179726f6c6c2f646f776e6c6f616473)](https://packagist.org/packages/cleaniquecoders/open-payroll) [![Scrutinizer Code Quality](https://camo.githubusercontent.com/52bcc88d5d3f44f1e47149c94dc56618a83cf40bbf0cd5e863d7d68a658aa9b8/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f636c65616e69717565636f646572732f6f70656e2d706179726f6c6c2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/cleaniquecoders/open-payroll/?branch=master) [![License](https://camo.githubusercontent.com/fb7a39081962ba8103a79ccd1827d1637dece9fa7c7e9a79b3375edd8fba07cf/68747470733a2f2f706f7365722e707567782e6f72672f636c65616e69717565636f646572732f6f70656e2d706179726f6c6c2f6c6963656e7365)](https://packagist.org/packages/cleaniquecoders/open-payroll)

About Open Payroll
------------------

[](#about-open-payroll)

[Open Payroll](https://cleaniquecoders.github.io/open-payroll/) is an Open Source Initiative for Payroll System - which means you can grab the code to be use in your exisitng Laravel application.

Following are the features provided:

- Multiple Earning and Deductions, based on organisation or employee
- Automated Payroll Calculation using Payroll Scheduler
- Each payroll will require at least a reviewer and an approver
- Customisable Payslip Design
- E-mail / Export the payslip to the employee
- Payroll Report for Administrator
- Payroll Report for Employee
- Custom Earnings and Deductions
- Customisable earnings and deductions calculation process

Demo Site
---------

[](#demo-site)

You can checkout the demo [here](https://open-payroll.cleaniquecoders.com/).

Installation
------------

[](#installation)

1. In order to install `cleaniquecoders/open-payroll` in your Laravel project, just run the *composer require* command from your terminal:

```
$ composer require cleaniquecoders/open-payroll

```

2. You can skip this step if your running Laravel 5.6 and above. Then in your `config/app.php` add the following to the providers array:

```
CleaniqueCoders\OpenPayroll\OpenPayrollServiceProvider::class,
```

3. You can skip this step if your running Laravel 5.6 and above. In the same `config/app.php` add the following to the aliases array:

```
'OpenPayroll' => CleaniqueCoders\OpenPayroll\OpenPayrollFacade::class,
```

4. If you're running Laravel 5.8 or above you need to alter the users table migration.

```
// Change:
$table->bigIncrements('id');

// To:
$table->increments('id');
```

5. Next, you need to install Open Payroll assets:

```
$ php artisan open-payroll:install
$ php artisan migrate

```

6. Open Payroll use [Laravel Observer](https://github.com/cleaniquecoders/laravel-observers), so you need to publish Laravel Observers config file.

```
$ php artisan vendor:publish --tag=laravel-observers

```

Then add the Open Payroll models to the `config/observers.php` in `\CleaniqueCoders\LaravelObservers\Observers\HashidsObserver::class` key. This will allow the observer to create hashed slug for each record automatically.

```
return [
    \CleaniqueCoders\LaravelObservers\Observers\ReferenceObserver::class => [],
    \CleaniqueCoders\LaravelObservers\Observers\HashidsObserver::class   => [
    	\App\Models\OpenPayroll\Employee::class,
    	\App\Models\OpenPayroll\Position::class,
    	\App\Models\OpenPayroll\Salary::class,
    	\App\Models\OpenPayroll\Admin::class,
    	\App\Models\OpenPayroll\Payroll::class,
    	\App\Models\OpenPayroll\Payslip::class,
    	\App\Models\OpenPayroll\Earning::class,
    	\App\Models\OpenPayroll\Deduction::class,
    ],
];
```

> You may use the observer for the other model as well.

Then seed references data for Open Payroll:

```
$ php artisan open-payroll:seed

```

Usage
-----

[](#usage)

When you are done the installation process, then you may login to your application.

Test
----

[](#test)

To run the test, type `vendor/bin/phpunit` in your terminal.

To have codes coverage, please ensure to install PHP XDebug then run the following command:

```
$ vendor/bin/phpunit -v --coverage-text --colors=never --stderr

```

Contributing
------------

[](#contributing)

Thank you for considering contributing to the `cleaniquecoders/open-payroll`!

### Bug Reports

[](#bug-reports)

To encourage active collaboration, it is strongly encourages pull requests, not just bug reports. "Bug reports" may also be sent in the form of a pull request containing a failing test.

However, if you file a bug report, your issue should contain a title and a clear description of the issue. You should also include as much relevant information as possible and a code sample that demonstrates the issue. The goal of a bug report is to make it easy for yourself - and others - to replicate the bug and develop a fix.

Remember, bug reports are created in the hope that others with the same problem will be able to collaborate with you on solving it. Do not expect that the bug report will automatically see any activity or that others will jump to fix it. Creating a bug report serves to help yourself and others start on the path of fixing the problem.

Coding Style
------------

[](#coding-style)

`cleaniquecoders/open-payroll` follows the PSR-2 coding standard and the PSR-4 autoloading standard.

You may use PHP CS Fixer in order to keep things standardised. PHP CS Fixer configuration can be found in `.php_cs`.

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT).

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity1

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity32

Early-stage or recently created project

 Bus Factor1

Top contributor holds 97.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/4a38ee15b093d0cfa7a1d77c0c789ca556b3c57ecf48830995b833ce4bc50915?d=identicon)[lutpiero](/maintainers/lutpiero)

---

Top Contributors

[![nasrulhazim](https://avatars.githubusercontent.com/u/10341422?v=4)](https://github.com/nasrulhazim "nasrulhazim (108 commits)")[![lutpiero](https://avatars.githubusercontent.com/u/323900?v=4)](https://github.com/lutpiero "lutpiero (2 commits)")[![B3none](https://avatars.githubusercontent.com/u/24966460?v=4)](https://github.com/B3none "B3none (1 commits)")

### Embed Badge

![Health badge](/badges/lutpiero-open-payroll/health.svg)

```
[![Health](https://phpackages.com/badges/lutpiero-open-payroll/health.svg)](https://phpackages.com/packages/lutpiero-open-payroll)
```

###  Alternatives

[shipmonk/name-collision-detector

Simple tool to find ambiguous classes or any other name duplicates within your project.

362.1M34](/packages/shipmonk-name-collision-detector)[bostondv/bootstrap-ninja-forms

Adds Bootstrap classes to Ninja Forms

222.2k](/packages/bostondv-bootstrap-ninja-forms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
