Tracking Your Business Finances with NolaPro
I've been doing side work for years, and recently, I've become voluntarily self-employed. Like most small and even large companies, one of my biggest problems is tracking who owes me money and whom I need to pay. And, I kind of want to know whether I'm actually making a living. This is where a good accounting program becomes essential.
About six months ago, I started looking for an accounting program in order to track my side work. I needed something that was easy to use, ran on Linux and preferably was Web-based. It had to be easy to use, because I'm not an accountant or a financial analyst; I'm a nerd. The program had to run on Linux, or I wouldn't have anywhere to run it. I wanted it to be Web-based, because I didn't want to have to install the software on all my machines, and I wanted to be able to log time and charges from remote locations. The Holy Grail would have been if it also would integrate with eGroupWare.
I looked at a lot of accounting packages during my search. The ones that worked at all didn't seem very mature. I had resolved simply to deal with buggy software, when I was offered the opportunity to review NolaPro from Noguska LLC (www.nolapro.com/index-5.html).
NolaPro is a Web-based accounting program that runs on Linux using Apache, MySQL and PHP. NolaPro can track customers, orders, accounts payable, inventory, employees and, everyone's favorite, accounts receivable. NolaPro also has a point-of-sale system, a B2B module, an e-commerce module and a general ledger—all of this in one very mature, polished software package.
NolaPro originally was an in-house program used to track Noguska's printing operations. Eventually, Noguska decided to release the program to the public as a free download. As the company doesn't charge money for the program, it doesn't have an advertising budget for it, which explains why I'd never heard of it when I was looking for an accounting program. Even so, the NolaPro user base is growing, and the company actively supports the program. One of the company's motivations for releasing the product is to help introduce its customers to Linux as a flexible and low-cost system, thus reducing its costs as well as its customer's costs.
Noguska offers fee-based custom development and integration services to NolaPro users. The results of this paid development find their way into the next release of NolaPro. So, the entire user community benefits when a company pays to have a particular feature added to NolaPro. Donovon Lee, Noguska's CEO, described it to me as a Robin Hood business model where the richer, larger companies pay for features they need, and the smaller, poorer companies benefit from the results. The results in this case are that NolaPro has the features companies want, not the features the software companies think they want.
Installing the program was pretty easy. I simply downloaded a tarball and extracted it into my Web server's htdocs directory. Then, I pointed my Web browser at the resulting subdirectory, and the installation program presented me with a checklist of things I had to do to make the program work (Figure 1). In my case, I had to make some configuration changes to PHP. The program led me by the hand, and when all of the prerequisites were met, I was presented with an initial login screen—easy.
Once I had the program running, I was anxious to get some of my customers into the system (Figure 2). The customer module lets me store just about anything I could care to know about my customers. The interface isn't fancy, but it is intuitive.
But, billing is where the money's at, right? Clicking on Billing and then New Invoice was all it took to start a new customer invoice (Figure 3). The Customer Name field let me type the name of the company I wanted to invoice, and as I typed, it would search my customer list and fill in the best match. This feature is one of those unexpected gems that make a program easy to use. Once I find the right company, I press Enter and then can enter the terms of the invoice (Figure 4). Clicking Next lets me enter the specifics of the invoice on a line-item basis (Figure 5). The resulting invoice is a professional PDF file that I can send to my clients and that I can track to ensure timely payment.
The Payables module is almost as intuitive as the Billing module, although it's not as fun to input where all your money is going as it is to input where it's coming from. This is one area where I had to e-mail NolaPro support. I couldn't seem to add a vendor to the database. It turned out that I had to enter the company name as well as the first and last name of a contact at the company. The support staff returned my e-mail within a few minutes, and I was on my way. I don't write a lot of checks, and I'm too small to need purchase orders, but it's nice to see that NolaPro will track them just the same.
The Orders module was something I discovered almost by accident. Being a computer nerd, I tend to think in terms of “projects”, not “orders”. But, once I realized that a programming project was nothing but a service order, I found that NolaPro's Orders module would allow me to track all my billable hours against a given order, and when the work was done, I could convert the order into a ready-made invoice. I had been tracking my billable time in an OpenOffice.org spreadsheet, which was less than ideal.
NolaPro also allows me to enter an estimated cost for each order, which lets me make sure all my projects come in under budget. For orders that entail shipping a product from inventory, NolaPro allows you to create a fulfillment order, so you can estimate shipping costs and modify inventory counts.
Something else I used to track in a spreadsheet was inventory. My VoIP business maintains an inventory of telephone adapters, and it's nice to be able to tell how many I have on hand and where I've stashed them. NolaPro's Inventory module lets me track inventory items that may be stored at multiple locations. It also allows me to set the minimum and maximum number of each inventory item to keep in stock, as well as minimum ordering quantity. I get a substantial discount when I order phone adapters in quantity, for example, and NolaPro allows me to take that fact into consideration when I re-order.
Once a company grows beyond a certain size, it inevitably needs to hire employees. NolaPro has a very mature employee-tracking system. Sure, it tracks your employees' names and phone numbers. It tracks how many hours they work, and it even has an optional time-card function, so they can log their own hours. Then, things get complicated. NolaPro even tracks benefits and taxes. Perusing the whole Payroll section was a daunting experience that left me with a new appreciation for the human resources representative at my old place of employment. With NolaPro, you can track employee benefits, company contributions, deductions, direct deposits and pension plans. The program would let you configure just about any benefits package you could imagine.
Additionally, I thought it was a nice touch that you even can generate phone lists and birthday lists of all your employees.
Each of NolaPros's modules includes its own reporting function. For example, the Billing section includes an Invoice Aging report that shows which invoices are more than 30 days old. The Orders section includes a report that shows open orders and how much money you have tied up in them.
NolaPro's Ledger features go well beyond anything I need as a small-time entrepreneur. Here's where you find a general ledger, budgeting and bank statement reconciliation. Most of the GL functions are tied to a set of standardized general accounts, such as cash on hand, sales income and so forth. The Budgeting module then allows you to set financial targets for each GL account on a per-month basis. The Ledger functions obviously are geared toward companies that are large enough to have an accountant or bookkeeper.
A couple modules are included in NolaPro that I haven't had occasion to use, but I think they are worth mentioning briefly. The Point of Sale module allows a user to sell items from inventory and accept cash, check or credit card as payment, without having to create an invoice. The B2B module allows business partners to log in and view outstanding orders, invoices and payment history. The B2B module also allows partners to pay bills via credit card. I've been told that Noguska will be releasing a Web Services API that will allow third-party developers to integrate with NolaPro. I've already got some ideas on what to do with the API when it's available. The API should be available sometime in the fall of 2008.
Of course, many features are available as add-ons for a nominal fee. For example, the Daily Accounting Summary add-on shows a daily snapshot of checking balances, receivables aging totals, payments received, orders completed and payables aging totals together on one page for easy viewing, and it costs only $2.00. On the other hand, the Employee Time Tracking add-on I mentioned earlier provides a way for employees to record hours worked, and it costs $299. It should be noted that standalone time-tracking systems can cost much more.
Now that I've used the program daily for a couple weeks, I've discovered a work flow that just seems to fit the types of businesses that I run.
When I take on a new programming or consulting project, I create a service order for the project. Then, as I work on the project, I can log my time and note what work was performed on the project. When the project is finished, I can convert the order, history and all, into an invoice that I then send to my client.
My VoIP business is a bit more complicated, because it has an inventory, hardware shipments and regular, recurring billing. I'm able to keep track of how many units I have in inventory. Then, when I take on a new customer, I create a Fulfillment Order for the initial setup and hardware delivery. This order automatically commits a unit from inventory and warns me if I need to re-order. Then, I create a payment plan for the new customer, which automatically creates an invoice for the customer each quarter.
In the time I've been using NolaPro, I've had a few occasions to contact technical support. I've been told that, officially, the free e-mail and telephone support is done on a best-effort basis. In practice, I found NolaPro's e-mail support to be very responsive. I sent in one question at midnight and had a reply by 10am the next day. The context-sensitive help has complete descriptions of each function and includes example screenshots. NolaPro's on-line forums are organized by feature and seem to have a high signal-to-noise ratio. Finally, there's the video training library. Yes, free video training. If you want to learn how to add a new service order, you can click on a few hyperlinks from the NolaPro home page. From there, you can watch and listen to a video of someone actually performing that task. The video describes the process, and you clearly can see what menu items to use. It's more than just a slideshow with a brief outline. Some of the videos are from older versions of the program, which means the menus have a slightly dated layout, but even so, the video training is well done and quite usable.
NolaPro is able to handle a fairly broad range of business types, but it doesn't do everything. Some of my consulting customers require regular incremental invoicing on projects, even before the project is finished. I discovered that NolaPro won't let me split an order up and invoice part of it. I also discovered that the invoicing module tracks inventory items by count, whereas I need to track them individually by serial number. I was a bit disappointed by the fact that when I asked the program to e-mail an invoice to a customer, it sent a very generic e-mail with the invoice attached as an oddly named .pdf file, and none of this was configurable. I've resolved this by simply exporting the .pdf files and attaching them to my own e-mail messages. Finally, I don't know any two people who do their budgets the same way. NolaPro's budgeting capability seemed to be too closely tied to the GL accounts, which I found cumbersome to wrap my head around. With these weaknesses in mind, NolaPro is a very powerful program, and I'm sure that people in different lines of business would find other things they felt needed to be improved. No software program can do everything to everyone's satisfaction.
For me, accounting is one of the necessary evils of doing business. My job is to solve technical problems and to deliver a service, and the tools need to stay out of the way of the real work. NolaPro is a powerful and intuitive software tool, and I've found the program to be a pleasure to use. It's certainly on my list of keepers.
Mike Diehl is a recently self-employed Computer Nerd and lives in Albuquerque, New Mexico, with his wife and three sons. He can be reached at email@example.com.
Mike Diehl is a freelance Computer Nerd specializing in Linux administration, programing, and VoIP. Mike lives in Albuquerque, NM. with his wife and 3 sons. He can be reached at firstname.lastname@example.org
- High-Availability Storage with HA-LVM
- March 2015 Issue of Linux Journal: System Administration
- DNSMasq, the Pint-Sized Super Dæmon!
- Localhost DNS Cache
- Real-Time Rogue Wireless Access Point Detection with the Raspberry Pi
- Days Between Dates: the Counting
- PostgreSQL, the NoSQL Database
- The Usability of GNOME
- Linux for Astronomers
- Multitenant Sites