It’s been a long time since I last blogged about what’s been happening with BillReminder… all I can say is that even though I had made plans to release a newer version this year, my personal life and professional career had to be prioritized and most of my side projects had to go back to the shelf. Looking at the git repository I noticed that the last release was 17 months ago!

The project was dormant, specially due to the lack of contributors, but the urge to improve the code and bring in newer features was a constant presence. So around the end of this Summer (August in the northern hemisphere) I started poking at the code and flirting with the idea of moving away from my “made from scratch” database layer to something more robust, and better yet, maintained by someone else! :) So I went with SQLAlchemy and every now and then would dedicate my lunch break to reading up on the documentation and try to “port” my code. Through trial and error I started piecing something together, initially with the intuit of mimicking the behavior of the current code for the short term, but definitely wanting to leverage the flexibility that this library affords. I have to thank nosklo for his help as I kept getting tangled up trying to “translate” sql language to the relational model approach of SQLAlchemy!

Database entities

Database entitites using SQLAlchemy

As if porting the database layer wasn’t enough, I also took on improving the charting panel that displays the total of expenses per categories during a certain time frame. I had been using an older and hacked copy of the graphing library from the hamster-applet project for a while but, as someone had pointed out, there were some issues with the alignment of the y-axis and the top of the bars being generated. I looked around and found pycha which worked quite well, but it wasn’t “IT” for me, you know? I needed a different approach, specially one that wouldn’t require the creation of an image file for the chart itself… so I went back to the hamster-applet project to see if they had made any changes, and was gladly surprised to find out that they had indeed. A couple of emails later between Patryk, Toms and I, and the charting widget was reborn!

BillReminder with charting support

BillReminder with charting support

Toms and I have been talking a lot these last 2 days and I was glad to see that some of the things we had talked about have already come to fruition! There much more to come too, which makes me tingly for all the good reasons.

Anyhow, I now need to create a clear roadmap for the project and go back to rounding up contributors so that the project doesn’t get stagnated once again, as well as to turn some of my ideas (i.e. support for different database backends, different reporting types, a django based frontend, etc) into newer features! Please feel free to contact me directly with your suggestions or questions, and remember: patches will always be welcome! :)