Simple Laravel Invoice Generator Sling — open-source web application that helps you create invoices and track income.

Overview

Sling - Simple Laravel Invoice Generator

Tests GitHub license

Sling — open-source web application that helps you create invoices and track income.

Table of Contents

  1. About
  2. Features
  3. Installation
  4. Installation with Docker
  5. Customization
  6. Roadmap
  7. License

About

Sling was originally created for personal use, for convenient accounting of income and invoice generation for Individual Entrepreneur with "Small Business" status in Georgia (tax is paid on total revenue every month).

This application will be useful for businesses and individuals with a similar taxation system, or just for generating invoices and income accounting. Sling is based on the Laravel PHP framework.

Screenshots of the deployed app are available here.

Sling page on the developer's website: https://icemont.dev/my-scripts/sling

Features

  • Client Accounting.
  • Separate invoice number prefix for each customer with the ability to set the initial number index.
  • Generate invoices & Download invoices as PDF.
  • Invoicing model: "one invoice = one service"
  • One main currency for accounting with the ability to invoice in other currencies. If the invoice is billed in a non-primary currency, it is possible to get an exchange rate from an exchange rate provider for the invoice payment date. At the moment only exchange rate provider for GEL (Georgian Lari) is available, but providers for other currencies can be easily added.
  • Unlimited number of payment methods can be created. Different payment method can be selected for each invoice. Information about the selected payment method will be added to the generated invoice.
  • Reports generation for the selected period with grouping by clients.

Installation

Clone the project repository:

$ git clone https://github.com/Icemont/sling.git

Next, go to the project data directory and install the dependencies using the composer:

$ cd ./sling
$ composer install --no-dev

Then create in the project root directory a settings file .env by copying it from .env.example and edit the necessary options in it, such as database connection settings.

Generate your application key with the command:

$ php artisan key:generate --ansi

Perform database migrations to create the initial database tables structure:

$ php artisan migrate 

Complete installation by adding currencies to the database using one of the commands of your choice:

$ php artisan sling:install
# Or:
$ php artisan db:seed --class=CurrenciesSeeder

Minimized JS and CSS assets are already available in the current repository, but you can install development versions of assets by installing dependencies and executing commands:

$ npm install
$ npm run dev

Initial configuration does not differ from the typical Laravel project configuration, so you can refer to the official Laravel framework documentation in case of difficulties.

Installation with Docker

Install Docker on your host by using this guide: https://docs.docker.com/install/

Install Docker Compose by using this guide: https://docs.docker.com/compose/install/

Clone the project repository:

$ git clone https://github.com/Icemont/sling.git

Next, go to the project data directory and create in the project root directory a settings file .env by copying it from .env.example and edit the necessary options in it:

$ cd sling
$ cp .env.example .env

Next, run commands below:

$ docker-compose up -d
$ ./docker-compose/setup.sh

Customization

Base settings

You can change some basic application settings in the file: config/app.php, such as pagination or default currency:

    /*
    |--------------------------------------------------------------------------
    | Sling config options
    |--------------------------------------------------------------------------
    */

    'per_page' => [
        'clients' => 25,
        'invoices' => 25,
        'payment_methods' => 25,
    ],

    'default_currency' => 'GEL',
    'invoice_index_length' => 5,

New currency

If you need to add a new currency to the database, you can add it to the $currencies array in the database/seeders/CurrenciesSeeder.php file and then run the command:

$ php artisan db:seed --class=CurrenciesSeeder

Roadmap

📌 There are no specific deadlines and guarantees for the implementation.
  • Sending invoices to the client's email
  • Adding exchange rate providers for other currencies
  • Abandoning the jQuery library in favor of native JS

License

The contents of this repository is released under the MIT license.

You might also like...
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.

Voucher Management System is a web application for manage voucher. You can create and manage your voucher. Voucher Management System is used PHP with Laravel Framework and use MySQL for Database.

A dolibarr module which pushes invoices to AADE MyDATA service

DOLIBARR ERP & CRM MODULE FOR GREEK AADE MYDATA This Dolibarr module pushes invoices to AADE MyDATA Check also that the /custom directory is active by

phpIPAM is an open-source web IP address management application.

phpIPAM is an open-source web IP address management application. Its goal is to provide light and simple IP address management application. It is ajax-based using jQuery libraries, it uses php scripts and javascript and some HTML5/CSS3 features, so some modern browser is preferred to be able to display javascript quickly and correctly.

Open Source Point of Sale is a web based point of sale application written in PHP using CodeIgniter framework.

Open Source Point of Sale is a web based point of sale application written in PHP using CodeIgniter framework. It uses MySQL as the data back end and has a Bootstrap 3 based user interface.

Create Your Own Broadcast Network With AVideo Platform Open-Source. OAVP OVP
Create Your Own Broadcast Network With AVideo Platform Open-Source. OAVP OVP

Audio Video Platform AVideo is a term that means absolutely nothing, or anything video. Since it doesn't mean anything the brand simply is identifiabl

OpenEMR is a Free and Open Source electronic health records and medical practice management application

OpenEMR is a Free and Open Source electronic health records and medical practice management application. It features fully integrated electronic health records, practice management, scheduling, electronic billing, internationalization, free support, a vibrant community, and a whole lot more. It runs on Windows, Linux, Mac OS X, and many other platforms.

Remindle is here to help you remember. Remember everything you want, by the means you prefer, in the frequency you like

platform Personal reminders About Remindle Remindle is a platform which helps you to remember all important events. You can set the means you’d like t

Track the memory usage of your workers and display them in Filament.
Track the memory usage of your workers and display them in Filament.

Filament Memory Tracker Track the memory usage of your workers and display them in Filament. Installation Install the package via composer: composer r

Releases(v2.0)
Owner
Ray Icemont
PHP Backend Developer, DevOps Engineer and Linux enthusiast.
Ray Icemont
📑 Invoice Generator - This is an invoicing system created with Laravel,

?? This is an invoicing system created with Laravel, which allows the user to generate invoices based on product and customer catalogs that are manageable.

Javier Amaya 6 Nov 30, 2022
DaybydayCRM an open-source CRM, to help you keep track of your daily workflow.

====================== DaybydayCRM is an everyday customer relationship management system (CRM) to help you keep track of your customers, tasks, appoi

Casper Bottelet 2.1k Jan 3, 2023
Dolibarr ERP & CRM is a modern software package that helps manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).

Dolibarr ERP CRM is a modern software package to manage your company or foundation activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). It is open source software written in PHP and designed for small and medium businesses, foundations and freelancers. You can freely install, use and distribute it as a standalone application or as a web application to use it from every internet access and media.

Dolibarr ERP & CRM 3.7k Jan 7, 2023
Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses related to services

Kyle Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses relat

Laravelista 36 Jul 15, 2022
ATOS is a locally hosted application that allows you to easily manage clients/projects, generate invoices against backlogs, and estimate taxes.

Built by freelancer ??‍♂️, for freelancer ?? ?? ???? - ATOS is a locally hosted application that allows you to easily manage clients/projects, generate invoices against backlogs, and estimate taxes.

Jon Belelieu 33 Dec 27, 2022
One time password generator, validator, and qrcode generator that has no web dependencies (self-contained) in PHP

otp-thing One time password generator, validator, and qrcode generator that has no web dependencies (self-contained) in PHP Introduction This started

Daniel Krusky 25 Apr 29, 2022
Emoncms is an open-source web application for processing, logging and visualising energy, temperature and other environmental data and is part of the OpenEnergyMonitor project.

Emoncms is an open-source web application for processing, logging and visualising energy, temperature and other environmental data and is part of the OpenEnergyMonitor project.

Emoncms 1.1k Dec 22, 2022
EasyQuickImport — Import transactions, invoices and bills into QuickBooks Desktop from Excel or CSV

EasyQuickImport is a tool that helps you import invoices, bills, transactions, customers and vendors into QuickBooks Desktop in multiple currencies in bulk.

Dmitrii Poddubnyi 13 Jan 4, 2023
La Fattura is a system designed for companies and individuals of all sizes to manage invoices

La Fattura La Fattura is a system designed for companies and individuals of all sizes to manage invoices, it integrates with Stripe for payments and w

Sofia Vicedomini 5 Feb 25, 2022
A powerful open source Laravel Blog with WYSWYG and CRUD (Create Read Update Delete) built on Laravel 5.8 and Bootstrap 4

Larablog A powerful open source Laravel Blog with WYSWYG and CRUD (Create Read Update Delete) built on Laravel 5.8 and Bootstrap 4 Table of contents F

Jeremy Kenedy 144 Oct 11, 2022