app | ||
bootstrap | ||
node_modules | ||
public | ||
tests | ||
vendor/php-payments | ||
.bowerrc | ||
.env.development.php | ||
.gitattributes | ||
.gitignore | ||
artisan | ||
bower.json | ||
codeception.yml | ||
composer.json | ||
composer.lock | ||
Gruntfile.js | ||
LICENSE | ||
package.json | ||
php.ini | ||
phpunit.xml | ||
README.md | ||
scheduler.yml | ||
server.php |
Invoice Ninja
Simple, Intuitive Invoicing
https://www.invoiceninja.com
Introduction
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.
This guide is the simplest way to setup the site. The high level instructions for setting up the site using Git are below but there's also a more detailed setup guide. To deploy the app with Docker you can use this project.
To connect follow @invoiceninja or join the Facebook Group. For discussion of the code please use the Google Group.
If you'd like to translate the site please use caouecs/Laravel4-long for the starter files.
Site design by kantorp-wegl.in
Features
- Core application built using Laravel 4.1
- Invoice PDF generation directly in the browser
- Integrates with many payment providers
- Recurring invoices
- Tax rates and payment terms
- Multi-user support
Steps to setup
If you plan on submitting changes it's best to fork the repo, otherwise you can just checkout the code.
git clone https://github.com/hillelcoren/invoice-ninja.git ninja
cd ninja
Install Laravel packages using Composer
Note: you may be prompted for your Github user/pass due to their API limits.
composer install
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.
php artisan migrate --seed
Add public/ to your web server root
Frameworks/Libraries
- laravel/laravel - A PHP Framework For Web Artisans
- twbs/bootstrap - Sleek, intuitive, and powerful front-end framework for faster and easier web development.
- patricktalmadge/bootstrapper - Laravel Twitter Bootstrap Bundle
- danielfarrell/bootstrap-combobox - A combobox plugin
- jquery/jquery - jQuery JavaScript Library
- eternicode/bootstrap-datepicker - A datepicker for @twitter bootstrap
- jquery/jquery-ui - The official jQuery user interface library
- knockout/knockout - Knockout makes it easier to create rich, responsive UIs with JavaScript
- rniemeyer/knockout-sortable - A Knockout.js binding to connect observableArrays with jQuery UI sortable functionality
- MrRio/jsPDF - Generate PDF files in JavaScript. HTML5 FTW.
- FortAwesome/Font-Awesome - The iconic font designed for Bootstrap that works with twitter bootstrap
- jasonlewis/basset - A better asset management package for Laravel
- Zizaco/confide - Confide is a authentication solution for Laravel 4
- Anahkiasen/former - A powerful form builder, for Laravel and other frameworks (stand-alone too)
- barryvdh/laravel-debugbar - Laravel debugbar
- DataTables/DataTables - Tables plug-in for jQuery
- Chumper/Datatable - This is a laravel 4 package for the server and client side of datatables
- omnipay/omnipay - A framework agnostic, multi-gateway payment processing library for PHP 5.3+
- Intervention/image - PHP Image Manipulation
- webpatser/laravel-countries - Almost ISO 3166_2, 3166_3, currency, Capital and more for all countries
- briannesbitt/Carbon - A simple API extension for DateTime with PHP 5.3+
- thomaspark/bootswatch - Themes for Bootstrap
- mozilla/pdf.js - PDF Reader in JavaScript
- nnnick/Chart.js - Simple HTML5 Charts using the tag
- josscrowcroft/accounting.js - A lightweight JavaScript library for number, money and currency formatting
- jashkenas/underscore - JavaScript's utility _ belt
- caouecs/Laravel4-long - List of languages for Laravel4
- calvinfroedge/PHP-Payments - A uniform payments interface for PHP
- bgrins/spectrum - The No Hassle JavaScript Colorpicker
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