BambooInvoice web-based invoicing application
Smooth Solution
If you want your business to run smoothly, deploying a dependable invoicing solution should be among your top priorities. BambooInvoice offers a user-friendly, web-based invoicing solution.
As a freelancer or a small business owner, you might be tempted to use a Calc spreadsheet or a Writer template to generate and manage invoices, but a dedicated invoicing application can save you a lot of time and frustration in the long run. If installing, configuring, and learning to use an invoicing application sounds like a daunting proposition to you, then BambooInvoice [1] is what you need (Figure 1).
BambooInvoice is a PHP/MySQL-based application, so you need a machine running the LAMP (Linux, Apache, MySQL, PHP) stack. If you don't have the time or necessary skills to set up the stack yourself, your best option is to use the XAMPP package [2], which comes with all the required components preconfigured and ready to run.
Getting Started
Installing BambooInvoice with XAMPP running on your machine is not difficult. To start, create the bambooinvoice database. To do this, you can use the phpMyAdmin tool bundled with XAMPP. Then download the latest version of BambooInvoice, unpack the downloaded archive, and move the resulting bambooinvoice folder to the htdocs directory in the XAMPP installation.
Next, make the invoices_temp and /img/logo directories writable by changing their permissions to 777. Then navigate to the /bambooinvoice/bamboo_system_files/application/config/ directory, open the database.php file in a text editor, and modify the default MySQL connection settings as follows:
$db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = "";
While you are at it, turn database debugging off by changing the TRUE value in the $db['default']['db_debug'] = TRUE; line to FALSE.
The installation notes that come with BambooInvoice also recommend changing the default encryption key to make your system more secure. To do this, go to the /bamboo_system_files/application/config directory and open the config.php file in a text editor. Locate the $config['encryption_key'] line and change its default value to a random string. Here, you can also change BambooInvoice's default language by replacing the default "english" value in the $config['language'] = "english"; line with another supported language (e.g., "french", "german", "dutch", "romanian", "spanish", "portuguese", "bulgarian", "swedish", or "italian").
If you want to be able to send invoices via email directly from within BambooInvoice, you must specify the SMTP server settings. To do so, navigate to the /bambooinvoice/bamboo_system_files/application/config directory and open the email.php file in a text editor. Uncomment the following block and specify the SMTP server, user name, and password:
$config['protocol'] = 'smtp'; $config['smtp_host'] = 'smtp1.mailserver.ca'; $config['smtp_user'] = 'username'; $config['smtp_pass'] = 'password'; $config['smtp_port'] = '25';
To finish the installation, delete the /bambooinvoice/bamboo_system_files/application/controllers/install.php file. Point your browser to http://localhost/bambooinvoice and log in to BambooInvoice using the email address and password specified during installation. This brings you to BambooInvoice's main window (referred to as Root System) consisting of five sections: Invoices, Clients, Reports, Settings, and Utilities.
Settings
First you'll need to specify your account and invoice settings, which is done in the Settings section (see Figure 2). All the fields in the Account Settings subsection are self-explanatory, so you shouldn't have any trouble completing them. The Invoice Settings subsection allows you to specify different invoicing options, such as the default invoice note, currency, payment period, and tax information. Finally, the Advanced Settings subsection lets you add a custom logo that will appear on invoices, disable the default branding, and enable saving of invoices.
The latter option saves PDF copies on the server, but unless you use a .htaccess file to protect your server, you should leave this option disabled.
Next you'll need to populate BambooInvoice with clients, which is done in the Clients section (Figure 3). After selecting the Create New Client button, fill out the available fields and press Save client. Be sure to pay particular attention to the Tax Status section; here, you can mark the client as taxable or non-taxable. Also, you should add at least one contact to the created client. In the Clients section, click on the client to expand the view, click on the Add Contact link, then add a contact. In the client view, you can also add notes to a particular client by pressing the Notes button. This can come in handy if you need to enter some information about the client, like "Always pays invoices on time."
Creating Invoices
To create a new invoice, press the New Invoice button in the toolbar on the left-hand side, select an existing client from the Select client drop-down list, or create a new client on-the-fly by entering a name in the appropriate field (Figure 4). To create the invoice and open it for editing, press the Create Invoice button.
If you want to change the default invoice number or invoicing date, you can do so by modifying the appropriate options. Then fill out the first invoice item and, if necessary, create additional items by pressing the New Item button. To save the invoice, press the Save Invoice button. This displays the created invoice and, using the available buttons in the toolbar to the left, you can perform several actions (Figure 5). Using the Email Invoice button, you can send the invoice via email to a specified contact, whereas the Generate PDF button generates a PDF version of the invoice that you can then either print, send via email as an attachment, or archive for future reference.
To send the invoice directly to your printer, use the Print Invoice button. If you want to modify the currently viewed invoice, you can use the Edit Invoice button or delete the invoice by pressing the Delete Invoice button. The Private Note button allows you to attach a note to the invoice, which then appears in the Invoice History & Private Notes section below the invoice itself.
After the client has paid the invoice, you must close it with the use of the Enter Payment button. If you enter the full amount, BambooInvoice automatically marks the invoice as closed. From that point, you can neither edit nor send the invoice.
BambooInvoice also allows you to enter partial payments, which can come in handy when the client pays the invoices in several installments. Every time you add a payment, it appears in the Invoice History & Private Notes section, so you can keep track of how much of the invoiced amount has been paid.
The Invoice Summary button opens a window that provides an overview of the invoices in the system. By default, BambooInvoice displays a list of open invoices (i.e., sent but unpaid invoices that are not overdue). To view the overdue invoices, select the Overdue option. In a similar manner, you can view the closed invoices or all invoices by selecting the appropriate option. To display a list of invoices for a particular client, choose it from the Select client drop-down list.
Of course, BambooInvoice comes with reporting features, which you can access through the Reports section (Figure 6). Although BambooInvoice's reporting capabilities are not particularly sophisticated, they provide enough information to help you track your invoices and income. The available buttons let you generate quarterly reports quickly, and the Yearly Income graph provides a visual overview of your earnings. The main window of the Reports section also contains a list of open and overdue invoices, as well as the total number of invoices issued to the current date.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
NVIDIA Released Driver for Upcoming NVIDIA 560 GPU for Linux
Not only has NVIDIA released the driver for its upcoming CPU series, it's the first release that defaults to using open-source GPU kernel modules.
-
OpenMandriva Lx 24.07 Released
If you’re into rolling release Linux distributions, OpenMandriva ROME has a new snapshot with a new kernel.
-
Kernel 6.10 Available for General Usage
Linus Torvalds has released the 6.10 kernel and it includes significant performance increases for Intel Core hybrid systems and more.
-
TUXEDO Computers Releases InfinityBook Pro 14 Gen9 Laptop
Sporting either AMD or Intel CPUs, the TUXEDO InfinityBook Pro 14 is an extremely compact, lightweight, sturdy powerhouse.
-
Google Extends Support for Linux Kernels Used for Android
Because the LTS Linux kernel releases are so important to Android, Google has decided to extend the support period beyond that offered by the kernel development team.
-
Linux Mint 22 Stable Delayed
If you're anxious about getting your hands on the stable release of Linux Mint 22, it looks as if you're going to have to wait a bit longer.
-
Nitrux 3.5.1 Available for Install
The latest version of the immutable, systemd-free distribution includes an updated kernel and NVIDIA driver.
-
Debian 12.6 Released with Plenty of Bug Fixes and Updates
The sixth update to Debian "Bookworm" is all about security mitigations and making adjustments for some "serious problems."
-
Canonical Offers 12-Year LTS for Open Source Docker Images
Canonical is expanding its LTS offering to reach beyond the DEB packages with a new distro-less Docker image.
-
Plasma Desktop 6.1 Released with Several Enhancements
If you're a fan of Plasma Desktop, you should be excited about this new point release.