Darko Gjorgjijoski 119a1712b0 Port expense report grouped itemized view + i18n + return types from master
Ports the net behaviour from three master commits into v3.0 as a single change, because v3.0 has already diverged structurally (controller moved from V1/Admin/Report to Company/Report, blade has its own CSS rework using the bundled fonts partial, and v3.0's App\Facades\Pdf replaces Barryvdh\DomPDF\Facade\Pdf). The three source commits are: 834b53ea (grouped itemized expenses), e22050bc (DomPDF facade + Pint — adapted to v3.0's App\Facades\Pdf), 0e9f18d4 (expenses.uncategorized + pdf_expense_group_total_label i18n keys + View|Response return type).

Controller: replaces the expenseCategories aggregate fetch with an itemized Expense query ordered by date, groups by category name with expenses.uncategorized fallback, and shares an expenseGroups collection of {name, expenses, total} plus the overall totalExpense. Adds expense_category_id to applyFilters. Updates the docblock return type from JsonResponse to View|Response. Keeps v3.0's App\Facades\Pdf.

Blade: replaces the single expenseCategories aggregate table with a per-group itemized table (date / note / amount columns + per-group total line using the new pdf_expense_group_total_label i18n key). Adds the item-table-* CSS classes and removes the old expense-total-table bottom block.

lang/en.json: adds expenses.uncategorized = "Uncategorized" and pdf_expense_group_total_label = "Group total:".
2026-04-07 17:28:34 +02:00
2026-04-07 02:12:38 +02:00
2026-04-03 22:41:15 +02:00
2026-04-06 17:59:15 +02:00

Introduction

InvoiceShelf is an open-source web & mobile app that helps you track expenses, payments & create professional invoices & estimates.

The Web Application is made using Laravel & VueJS while the Mobile Apps are built using React Native.

To get started with InvoiceShelf using Docker Compose, check out the Installation docs.

Table of Contents

  1. Documentation
  2. Download
  3. Mobile Apps
  4. Discord - NEW 🔥
  5. Roadmap
  6. Credits
  7. Help us translate
  8. License

Documentation

System Requirements

  • Starting from v2.2.0 (Laravel 13 upgrade), InvoiceShelf requires PHP 8.4+.
  • Before updating from the app settings, verify your server PHP version and required extensions.
  • The in-app updater checks requirements and blocks the update if they are not met.

Download

Mobile Apps

  • Andorid - Coming Soon
  • IOS - Coming Soon
  • Source

Discord

Join the InvoiceShelf discord server to discuss: Invite Link

Roadmap

~~Here's a rough roadmap of things to come (not in any specific order):

  • Automatic Update
  • Email Configuration
  • Installation Wizard
  • Address Customisation & Default notes
  • Edit Email before Sending Invoice
  • Available as a docker image
  • Performance Improvements
  • Customer View page
  • Add and Use Custom Fields on Invoices & Estimates.
  • Multiple Companies
  • Recurring Invoices
  • Customer Portal
  • Accept Payments (Stripe Integration)
  • Improved template system (invoices and estimate)
  • Modules and templates marketplace

Credits

InvoiceShelf is made possible thanks to the contributions and support from many people and projects:

  • Crater (project inspiration and code base)
  • All contributors who have provided code, translations, reported issues, or supported the project in any way.

Translate

Help us translate on https://crowdin.com/project/invoiceshelf

Star History

Star History Chart

License

InvoiceShelf is released under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3. See LICENSE for details.

Description
No description provided
Readme AGPL-3.0 72 MiB
Languages
PHP 59.9%
Vue 36.1%
Blade 3.2%
Shell 0.6%
Dockerfile 0.1%