I have worked some more on my home budget planner application. The current version is implemented on Seaside, and it’s doing great. I haven’t had as much time as I wanted, but it’s coming along nicely. I have some formal training in accounting practices, and I treat my house as being a business: we have income and expense accounts, equity for ourselves, and assets (our bank account) as well as liability accounts (credit cards and bank loans).

BudgetApp’s administration tab. Click for larger view.

This is the administration tab. This is where you add and change accounts. Not much more to show here.

BudgetApp’s budget tab. Click for larger view.

The budget tab. This is where you actually set your budget targets for the month. Historical data is kept around, and you can immediately see when your budget is under the actual value.

BudgetApp’s real tab. Click for larger view.

This is the least polished of the tabs yet, and ironically, this is where most of the work is going to be done. I’ll need to use the application for a bit before I can determine the exact interface I want. I’m thinking of having a couple of panels that will allow the user to say what kind of transaction occurred: paid, bought, reimbursed, transferred, etc.

That’s the state of affairs at revision 9 on the Monticello repository.

Differences with Rails

I haven’t actually started doing any work on the Rails side of things, but there is one thing I did notice: I find it easier to segregate my work in change sets in the file world versus when working in the image-world. For example, revision 8 includes changes to a couple of classes, and none are related: stylistic changes in the budget and admin tabs, plus my initial stab at the real tab. Had I been using Rails, I would have committed a couple of files here and there multiple times, and that would be it.

I am aware of Monticello’s “add to current change set” and “remove from current change set”, but have not dared using them yet. I’m not exactly sure what these options will do, and most importantly, I am afraid of losing work. That probably won’t happen, but there’s this nagging feeling deep down…

Anyway, next step is to generate real transactions from the real tab. More on this next week !

UPDATE 2007-10-23: Changed repository URLs.

Me and my wife have a funny relationship with money: it never stays in our hands. I would guess the majority of people have the same problem. Back in the days, I started by making ourselves a budget using OpenOffice.org spreadsheet. That was fine, until I realized my wife was always changing the numbers. She used it to record a budget of sorts, but when she actually paid the utilities, she’d change the numbers.

At about the same time, I read about Big Visible Charts. I took a piece of 2 ft × 4 ft of paper, and started at the top:

Month of November 2007

That worked OK, until we were both tired of doing all the calculations by hand… The computer is the perfect tool for the job. So now, I’m back to square one, but this time, I am armed with a lot more knowledge. I want a solution that will:

  • record budgets (planned income and expenditures);
  • record actuals (actual income and expenditures);
  • report planned vs actual values, to see where we’re over-budget (it’s the restaurants!).

After learning how to make a simple todo application on Seaside, I think this application is just a little bit meatier that it’s not going to be too hard to do. At the same time, I will use this opportunity to contrast both Seaside and Rails, to help the community at large to see the differences between both of the frameworks.

Both applications are released under the MIT License.

I have setup two repositories:

You can already grab the code from the Monticello repository: I am done coding the models on Seaside. I checked in the skeleton Rails application, and will add a couple of pieces shortly. Expect to see this series pretty regularly in the coming weeks.


Your Host

A picture of me

I am François Beausoleil, a Ruby on Rails and Scala developer. During the day, I work on Seevibes, a platform to measure social interactions related to TV shows. At night, I am interested many things. Read my biography.

Top Tags

Books I read and recommend


Projects I work on

Projects I worked on