2013-11-26 14:36:59 +01:00
# Invoice Ninja
2013-11-26 15:18:45 +01:00
## Simple, Intuitive Invoicing
2013-11-26 14:36:59 +01:00
2014-02-20 15:31:46 +01:00
### [https://www.invoiceninja.com](https://www.invoiceninja.com)
2014-08-26 13:17:07 +02:00
2014-11-04 19:32:18 +01:00
If you'd like to use our code to sell your own invoicing app we offer a white-label affiliate program. We ask for 20% of revenue with a $100 sign up fee. Get in touch for more details.
2014-08-26 13:17:07 +02:00
2013-11-26 14:36:59 +01:00
### Introduction
2014-05-15 16:57:07 +02:00
Most online invoicing sites are expensive. They shouldn't be. The aim of this project is to provide a free, open-source alternative. Additionally, the hope is the codebase will serve as a sample site for Laravel as well as other JavaScript technologies.
2014-09-30 15:39:02 +02:00
To setup the site you can either use this [zip file ](http://hillelcoren.com/invoice-ninja/self-hosting/ ) (easier to setup) or checkout the code from GitHub following the instructions below (easier to stay up to date). There's also a more detailed setup guide [available here ](http://hillelcoren.com/invoice-ninja/laravel-ubuntu-virtualbox/ ).
For a WAMP/MAMP/LAMP setup you can one-click install using Softaculous's [AMPPS ](http://www.ampps.com/ ). To deploy the app with [Docker ](http://www.docker.com/ ) you can use [this project ](https://github.com/rollbrettler/Dockerfiles/tree/master/invoice-ninja ).
2014-07-11 10:10:54 +02:00
2014-06-29 19:23:10 +02:00
To connect follow [@invoiceninja ](https://twitter.com/invoiceninja ) or join the [Facebook Group ](https://www.facebook.com/invoiceninja ). For discussion of the code please use the [Google Group ](https://groups.google.com/d/forum/invoiceninja ).
2014-04-12 20:55:40 +02:00
2014-07-04 17:59:00 +02:00
If you'd like to translate the site please use [caouecs/Laravel4-long ](https://github.com/caouecs/Laravel4-lang ) for the starter files.
2013-11-26 14:36:59 +01:00
2014-10-05 11:35:51 +02:00
Developed by [@hillelcoren ](https://twitter.com/hillelcoren ) | Designed by [kantorp-wegl.in ](http://kantorp-wegl.in/ ).
2014-04-02 15:10:00 +02:00
2013-11-26 14:36:59 +01:00
### Features
2014-09-06 22:40:51 +02:00
2014-01-04 22:31:37 +01:00
* Core application built using Laravel 4.1
2013-11-26 14:36:59 +01:00
* Invoice PDF generation directly in the browser
* Integrates with many payment providers
2014-01-04 22:31:37 +01:00
* Recurring invoices
2014-02-19 20:42:57 +01:00
* Tax rates and payment terms
2014-07-27 22:31:41 +02:00
* Multi-user support
2014-10-05 11:35:51 +02:00
* [Zapier ](https://zapier.com/ ) integration
* [D3.js ](http://d3js.org/ ) visualizations
2013-11-26 14:36:59 +01:00
2014-11-02 14:06:16 +01:00
### Contributors
* [Troels Liebe Bentsen ](https://github.com/tlbdk )
2013-11-26 15:18:45 +01:00
### Steps to setup
2014-03-17 19:05:01 +01:00
If you plan on submitting changes it's best to [fork the repo ](https://help.github.com/articles/fork-a-repo ), otherwise you can just checkout the code.
2013-11-26 15:18:45 +01:00
2014-07-04 17:59:00 +02:00
git clone https://github.com/hillelcoren/invoice-ninja.git ninja
2014-02-21 12:54:53 +01:00
cd ninja
2013-11-26 15:18:45 +01:00
2014-01-05 15:03:29 +01:00
Install Laravel packages using Composer
2014-01-31 07:33:07 +01:00
2014-01-29 11:41:38 +01:00
Note: you may be prompted for your Github user/pass due to their API limits.
2013-11-26 15:18:45 +01:00
composer install
2014-07-04 17:59:00 +02:00
Install JavaScript and HTML packages using Bower
bower install
Create the development environment configurations
mkdir app/config/development
cp app/config/app.php app/config/development/
cp app/config/database.php app/config/development/
cp app/config/mail.php app/config/development/
Create database user and a database for ninja
CREATE SCHEMA `ninja` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'ninja'@'localhost' IDENTIFIED BY 'ninja';
GRANT ALL PRIVILEGES ON `ninja` .* TO 'ninja'@'localhost';
FLUSH PRIVILEGES;
Configure development/config/database.php and development/config/mail.php and initialize the database.
2013-11-26 15:18:45 +01:00
2013-12-05 16:23:24 +01:00
php artisan migrate --seed
2013-11-26 15:18:45 +01:00
2014-07-04 17:59:00 +02:00
Add public/ to your web server root
2013-11-26 15:18:45 +01:00
2014-09-06 22:40:51 +02:00
### Deleveloper Notes
2014-11-02 13:46:18 +01:00
* The application requires PHP >= 5.4.0
2014-09-06 22:40:51 +02:00
* If you make any changes to the JavaScript files you need to run grunt to create the built files. See Gruntfile.js for more details.
2014-09-06 22:42:31 +02:00
* The lookup tables are cached in memory (ie, Currencies, Timezones, Languages, etc). If you add a record to the database you need to clear the cache by uncommenting Cache::flush() in app/routes.php.
2014-09-06 22:40:51 +02:00
* If you run into any composer errors try running composer dump-autoload.
### Ubuntu Notes
# Install php-mcrypt
apt-get install php5-mcrypt
sudo php5enmod mcrypt
# Install Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# Install Bower
sudo apt-get install npm nodejs-legacy
sudo npm install -g bower
sudo ln -s /usr/local/lib/node_modules/bower/bin/bower /usr/local/bin/bower
2014-10-30 18:56:37 +01:00
# Install Grunt (For development only)
npm install -g grunt-cli
2013-11-26 14:36:59 +01:00
### Frameworks/Libraries
* [laravel/laravel ](https://github.com/laravel/laravel ) - A PHP Framework For Web Artisans
* [twbs/bootstrap ](https://github.com/twbs/bootstrap ) - Sleek, intuitive, and powerful front-end framework for faster and easier web development.
* [patricktalmadge/bootstrapper ](https://github.com/patricktalmadge/bootstrapper ) - Laravel Twitter Bootstrap Bundle
* [danielfarrell/bootstrap-combobox ](https://github.com/danielfarrell/bootstrap-combobox ) - A combobox plugin
* [jquery/jquery ](https://github.com/jquery/jquery ) - jQuery JavaScript Library
* [eternicode/bootstrap-datepicker ](https://github.com/eternicode/bootstrap-datepicker ) - A datepicker for @twitter bootstrap
* [jquery/jquery-ui ](https://github.com/jquery/jquery-ui ) - The official jQuery user interface library
* [knockout/knockout ](https://github.com/knockout/knockout ) - Knockout makes it easier to create rich, responsive UIs with JavaScript
2013-11-26 14:37:55 +01:00
* [rniemeyer/knockout-sortable ](https://github.com/rniemeyer/knockout-sortable ) - A Knockout.js binding to connect observableArrays with jQuery UI sortable functionality
2013-11-26 14:36:59 +01:00
* [MrRio/jsPDF ](https://github.com/MrRio/jsPDF ) - Generate PDF files in JavaScript. HTML5 FTW.
2013-11-26 14:37:55 +01:00
* [FortAwesome/Font-Awesome ](https://github.com/FortAwesome/Font-Awesome ) - The iconic font designed for Bootstrap that works with twitter bootstrap
2013-11-26 14:36:59 +01:00
* [jasonlewis/basset ](https://github.com/jasonlewis/basset ) - A better asset management package for Laravel
* [Zizaco/confide ](https://github.com/Zizaco/confide ) - Confide is a authentication solution for Laravel 4
* [Anahkiasen/former ](https://github.com/Anahkiasen/former ) - A powerful form builder, for Laravel and other frameworks (stand-alone too)
* [barryvdh/laravel-debugbar ](https://github.com/barryvdh/laravel-debugbar ) - Laravel debugbar
* [DataTables/DataTables ](https://github.com/DataTables/DataTables ) - Tables plug-in for jQuery
* [Chumper/Datatable ](https://github.com/Chumper/Datatable ) - This is a laravel 4 package for the server and client side of datatables
* [omnipay/omnipay ](https://github.com/omnipay/omnipay ) - A framework agnostic, multi-gateway payment processing library for PHP 5.3+
2013-11-28 22:10:01 +01:00
* [Intervention/image ](https://github.com/Intervention/image ) - PHP Image Manipulation
2013-12-03 18:32:33 +01:00
* [webpatser/laravel-countries ](https://github.com/webpatser/laravel-countries ) - Almost ISO 3166_2, 3166_3, currency, Capital and more for all countries
2013-12-05 16:23:24 +01:00
* [briannesbitt/Carbon ](https://github.com/briannesbitt/Carbon ) - A simple API extension for DateTime with PHP 5.3+
2013-12-08 20:08:17 +01:00
* [thomaspark/bootswatch ](https://github.com/thomaspark/bootswatch ) - Themes for Bootstrap
2013-12-17 14:14:47 +01:00
* [mozilla/pdf.js ](https://github.com/mozilla/pdf.js ) - PDF Reader in JavaScript
2014-09-06 22:40:51 +02:00
* [nnnick/Chart.js ](https://github.com/nnnick/Chart.js ) - Simple HTML5 Charts using the canvas tag
2014-01-02 00:12:33 +01:00
* [josscrowcroft/accounting.js ](https://github.com/josscrowcroft/accounting.js ) - A lightweight JavaScript library for number, money and currency formatting
2014-03-19 23:00:56 +01:00
* [jashkenas/underscore ](https://github.com/jashkenas/underscore ) - JavaScript's utility _ belt
2014-04-13 10:19:10 +02:00
* [caouecs/Laravel4-long ](https://github.com/caouecs/Laravel4-lang ) - List of languages for Laravel4
2014-04-29 22:46:40 +02:00
* [calvinfroedge/PHP-Payments ](https://github.com/calvinfroedge/PHP-Payments ) - A uniform payments interface for PHP
2014-10-25 19:32:28 +02:00
* [bgrins/spectrum ](https://github.com/bgrins/spectrum ) - The No Hassle JavaScript Colorpicker
* [lokesh/lightbox2 ](https://github.com/lokesh/lightbox2/ ) - The original lightbox script