InvoiceNinja is a very interesting invoicing Laravel application that we discovered last year.
They have two different versions – hosted and self-hosted. In other words, you can register at invoiceninja.com and use their online version, paying for premium services, or you can download the code for free (Laravel 5.2) and install it on your server for free.
We started with the hosted version, and we loved it, especially our accountant. It is really well made, easy to use, with a slick interface.
It took us few days to master the tool and since than we have been using it everyday.
The hosted version is great, keeps on updating, adding new features and never had issues with it.
Now with our company growing, we are starting having the need of adding our own modules to the application, so we decided to go for the self-hosted version.
Being in Laravel, it is pretty easy for us to extend the functionalities of this very nice software. There is also a nice documentation that can be found here.
Our first attempt to extend InvoiceNinja has been the Access module, a small module that allows us to store project information.
To install simply run the code below:
php artisan module:install soiposervices/access --type=github
Check if the module has been installed:
php artisan module:list
And run the migrations:
php artisan module:migrate Access
At this point visit the application and you should have a new menu item “Access”
Both username and password are encrypted in the db.
There are improvements, but if you are interested to contribute or user the module, it can also be downloaded here.
We used DigitalOcean for this project, we love that hosting company, has very affordable and scalable plans, we highly recommend them.