skip to content

DerekAllard.com : CodeIgniter, ExpressionEngine, and the World of Web Design

The future of BambooInvoice

April 07th, 2008

This weekend I gave some serious consideration to BambooInvoice. I made a few hours to fix some known bugs (including I think the dreaded no demo_flag property on line 19 bug), and add a few features. After working with the code, I know what I need to do. Here is my immediate plan for BambooInvoice.

  • Release 0.84 - a release for mostly bug fixes, with a few features. This should be done in a few days max, maybe today
  • Release 0.9 - this will focus on finishing out the features that I want in Bamboo immediately. There have been some great community contributions that I'd like to go through here. The idea will be to get all the features I want into place, and ready, as Bamboo prepares to take a large step forward.
  • Release 0.91 - This will be a minor release, hopefully very minor, where I iron our any bugs introduced in 0.9. In a perfect world, this doesn't need to even be released.

This is all in preparation for a big move. Bamboo is ready to advance to its first release, BambooInvoice 1.0. I've decided to move to a full release, as it will represent a considerable shift to Bamboo. I will be re-architecting all of the variable and function names, and changing the coding syntax standards to bring them in line with what we use at EllisLab. For most users, this won't even be noticeable, but for some, if you've hacked the code, will require some changes. These will be very clearly outlined. Bamboo is going to take full advantage of the new Active Record pattern in CodeIgniter, and I'm aiming for compatibility (true, proven, tested compatibility) with at least MySQL, Postgre and SQLite.

This also represents an opportunity to revisit code that is starting to show its age. Many people are referring to Bamboo as a model for how to build an application in CodeIgniter. This delights me, and is the entire reason I released Bamboo originally, but, Bamboo was released while CodeIgniter was still very immature. There were no models; fewer helpers; limited Active Record; fewer libraries. It was also a bit of a proving grounds for what could be done. In short, Bamboo blazed the trail that all my CodeIgniter programming would be based on, but as CI has advanced, there are many (many) things in BambooInvoice that I would choose to do another way if I was building it today. I want to take the opportunity to do them right. I want Bamboo to be as finely coded as CodeIgniter itself. This as you can imagine, will be a pretty big task. In essence, I'll be writing (re-writing) the entire application. I'm tired just thinking about it, but its something I really want to do.

1.0 will also represent me dropping Scriptaculous/Prototype and nearly all of the custom javascript, in favour of jQuery, and the new javascript/jQuery libraries that I'm building into CodeIgniter. This should provide for a broader cross-platform functionality. At this time, I'll investigate a system to allow community input, almost certainly via SVN. I'm not sure what this will look like yet, but I need an easier way of tracking these things.

I also have some plans for some more "powerful" features, but I want to be careful what I publicly say here, as I've learned the hard way that talking about something and getting everyone excited, but then not immediately delivering on those generates a lot of hostility. ;)

I want to assure everyone reading this that BambooInvoice will remain free and opensource, but I do want to think about a way to more actively encourage dontations. The amount of time I've sunk into Bamboo has become something of a joke to me - the little pet project that could I guess!

So if you're a Bamboo user, get ready for a large bump in what you current can do, and take your invoicing to the next level. Is there a feature that you really want to see make it into Bamboo? Is there one little thing that bugs you? Have your say, please feel free to leave a comment.

This entry was made on April 07th, 2008 @ 6:36 and filed into .

Comments

Jon wrote on April 07th, 2008 @ 8:33

Derek - I’ve been knee-deep in the Bamboo code for quite some time (I built an application of my own using Bamboo as a guideline).  If you’re at all interested in some assistance, I’ll be happy to help.

shaun wrote on April 07th, 2008 @ 9:27

Awesome news! Bamboo was the very first thing I downloaded when I started getting into CI development, and I agree that it needs to be brought up to speed with regards to current CI best-practice etc. Also very glad about the move to jQuery :)

I think that perhaps rewriting it without adding too much new functionality might be a good way to go.

One thing I long for however is the ability to add recurring invoices - not exactly sure how this might work, but would be super handy for retainers or hosting services.

thanks for all your hard work!

Andy wrote on April 07th, 2008 @ 11:26

Derek - great news on upgrading Bamboo!

I would like to see some kind of hooks that allow functionality to be extended - this might be as simple as seeing if a user-created PHP file exists for extra main menu options (I’ve added a couple of extra features to my installation).

Andrew wrote on April 07th, 2008 @ 12:00

That’s great! Its a nice product, and I’m glad to hear you are going to keep working on it. Drop us a line, we might be able to help if you need it.

Cheers

Sean wrote on April 09th, 2008 @ 7:05

What a beautiful product! What about making it European friendly? Dates, numbers, currency… Dates=dd/mm/yyyy, numbers= 5.400,50 € instead of €5,400.50, whether or not the currency sign goes before or after the number… In Europe there are specific laws regarding what has to be on an invoice, etc and these items cannot vary. Is this something you have already thought of?

Derek Allard wrote on April 09th, 2008 @ 22:12

Thanks all! 

@Jon & Shaun: I’m thrilled to hear it!  The whole point of releasing Bamboo originally was so that others could “dig in”.  Its been a lot of fun that way.

@Andy, feel free to email me a summary of what you changed if you want consideration for inclusion in the main build.  Obviously stuff that is specific to you won’t go in, but I’m always looking for new ideas.

@Sean: thanks!  These are certainly changes I’m looking at.  The date thing should be relatively “doable”, but currency will be a pain ;)

Philip Sturgeon wrote on April 10th, 2008 @ 18:57

This is great news! Hopefully you will be able to take a look at some of the changes I made in the SVN repo I gave you access to.

Sadly the commits were a bit messy (didnt understand branches at the time) but screw it, some of the change history should be helpful.

Good move dropping the crazy custom/prototype JS you have in there. That crap was INCREDIBLY overcomplicated!

Roll on 1.0

chris v wrote on April 22nd, 2008 @ 20:18

hi derek.  i wanted to thank you for bamboo invoice. i learned quite a bit about CI using your application. i would like to contribute back to the bamboo community by offering my coding services.  if you need any help, just let me know. 

thanks

Marcel wrote on April 28th, 2008 @ 9:47

First of all, I think its a great application.

I cant wait for the changes, but the big Question. How long is this gone take :).

Derek wrote on April 28th, 2008 @ 11:09

Time… bah!  Marcel, I’m honestly now sure.  I’m 90% of the way through a graphical installer, and changing some database things, but truthfully, I don’t know.  What I can tell you though, is that everything that works now will continue to work ;)

Post a Comment

Sorry, comments are automatically closed after 45 days, or sooner if one entry gets targetted by spammers. Why not contact me directly?