Thursday, May 3, 2012

Billing Open Sources Review

I needed to find an open source billing system for one of the projects that I am working on. I've investigated a number of current open source projects.
I was interested in basic functionality like: invoices, orders, customers, estimates, orders, services, pricelists, payment, discounts, currencies etc. I wanted to find a reliable open source project to use and to contribute.

Criteria used to analyze the applications was: open source software evaluation
 
I've looked at SIWAPP, AgileBill, Amberdms Billing System, Freeside, CitrusDB, Bamboo Invoice, Simple Invoices.

SIWAPP is a new PHP project in beta stages and IE is not recommended.

AgileBill has no documentation, only one active developer.

Amberdms does not support all platforms, very little information.

Freeside is a Perl project and it has a bad UI.

CitrusDB is a PHP project maintained by one developer and the coding standards are a joke.

Bamboo Invoice is a PHP project in beta stages, has little documentation  and I could not find the source code.

Simple Invoices this is a PHP project, it does not contains all the functionality I was looking for.

Most of the projects are written in PHP. They are meteoric projects; started with enthusiasm, not very professional and lingering through years.

I could find only one that passed my criterias: JBilling.

JBilling looked very promising from my initial analysis. This project started in 2006, it has a mature well established codebase. It has documentation and coding standards. It is a web application Java based and uses standard Java frameworks. It has a number of developers and the code shows sustained activity.
It contains about 100K lines of Java and SQL code, which means that this is a medium size project. It has a fair amount of comments into the code.
It supports all major browsers and it is OS and database independent. Can run in most of the contemporary application servers that can run with JTA or local transactions, it requires a Message Queue implementation.

I've downloaded and installed the application as documented. The installation was very simple as it required JRE and the instructions were good. I was able to start checking this product functionality in less than 10 minutes.
The UI is very simple and intuitive; I was able to find very easy all the features that I was interested in. This was an unexpected well designed UI for an open source.

My next step was to obtain the latest code and to try to compile and deploy. One thing caught my attention when I was reading the development instructions: it requires Grails 1.3.4 (released sometimes in 2010). The latest Grails version is 2.0.3 released on 3rd April 2012. The latest minor version from version 1 is 1.3.8 released on 29 March 2012.
I was not able to compile using the instructions and the reasons were:
  • Could not find all the dependencies for Grails 1.3.4
  • Upper versions of Grails were not supported
  • The code has dependencies on JbillingAPI and JbillingAPIFactory which are supplied only with EE
Customer care functionality is only available for EE.
This is a Catch 22 situation: the application is open source but it has some crucial missing parts so you have to buy...

So much with the open sources billing systems...

Update May 2013:
JBilling was acquired by AppDirect see article. Since there was no code change.

My personal opinion is: there is no feasible open source billing system and one should check commercial billing systems with extensive API. Check my analysis regarding the commercial billing systems (it is coming soon...).

5 comments:

  1. A standard service billing invoice template will consist of all these fields and much more. invoice template

    ReplyDelete
  2. I am interested in your commercial billing systems review.

    ReplyDelete
  3. I am interested in your commercial billing systems review.

    ReplyDelete
  4. I am interested in your commercial billing systems review.

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete