The maze book for programmers!
mazesforprogrammers.com

Algorithms, circle mazes, hex grids, masking, weaving, braiding, 3D and 4D grids, spheres, and more!

DRM-Free Ebook

The Buckblog

assorted ramblings by Jamis Buck

BucketWise: Preview #2

8 April 2009 — 3-minute read

“Buckets” is now “BucketWise”. The name was more unique, easier to identify as an application, and just felt better than “Buckets”.

To celebrate the new name, I’ve also made another screencast, this one demonstrating BucketWise’s anti-debt features. It’s a bit more long-winded than the first one: five and a half minutes of me talk-talk-talking:

BucketWise Preview #2 (QuickTime, 5:30, 10MB)

I’m slowly working my way through the list of things that I want done before I release the code. For the curious, here’s what I’m wanting done before I open it up:

Existing bugs:

  • after saving a reallocation event, the line items don’t reset
  • green “your transaction has been recorded” notice doesn’t disappear when starting a new event
  • date column for event row is squashed in safari
  • “Add a new bucket” should set focus on new bucket line
  • check number and “select repayment options” links are out of whack when editing an event
  • deleting event from account perma results in ajax error (maybe only when there is only a single event in the account?)
  • Reallocating a bucket doesn’t change the updated_at field for the bucket?
  • “move in” and “move out” links on dashboard don’t use existing form—they go to events/new
  • make all autocompleting fields refresh their source array after event creation

Remaining features:

  • tag delete (optionally move transactions to different tag, e.g. “tag merge”)
  • tag rename
  • API
  • validations
  • rake tasks for user and subscription creation
  • change style for event detail view: “window shade” style isn’t really working
  • attr_protected everywhere (perhaps implement an update_override method or something for places where it would be useful to do mass updates despite protected attrs?)
  • spinner for ajax actions
  • user info page (for password change)
  • password reset from login page
  • cache balances on events (?)
  • README with installation instructions
  • CHANGELOG

Those lists are straight from my TODO file. But for those who think I’m waiting for too much to be finished, never fear. I’ve got plenty that I want to implement, but which I’m willing to wait until post-release to work on:

  • signup process
  • exception notifier (?)
  • /subscriptions index
  • autocomplete actor field in event form
  • better 404 and 500 error pages
  • searching & reporting
  • account reconciliation
  • transaction templates (“saved” or “memorized” transactions)
  • scheduled transactions (occur automatically at specified intervals)
  • show check numbers in event detail view
  • add a memo field for events
  • print stylesheet
  • oauth authentication for API
  • filter event views to show only events with a non-zero balance for the account in question
  • filter event views to show only deposits, or only expenses
  • normalize ‘actor’ so we can do actor-centric queries more efficiently
  • full-text searching on the memo field
  • show bucket and account balances next to names in drop-downs
  • make bucket reallocation work from bucket perma

Depending on how soon my bank sends the next statement for my checking account, I may or may not need to have “account reconciliation” done before launch, too.

As before, let me state: I’m writing this application for myself, and really only for myself. If other people like it, that’s cool. I’m more than happy to share and let other people hack on it. I may even release it into the public domain (I haven’t yet decided what license I’ll use). But BucketWise will always be very opinionated. If you prefer having your finance app download your transactions from your bank, you’ll be disappointed by BucketWise. If you need currencies other than the US dollar, you’ll be disappointed by BucketWise. If you need pretty charts and graphs to analyze your cash flow, or if you want to track investments, or any number of other things, you’ll be disappointed by BucketWise.

Just FYI. :)

Reader Comments

I remember you started this project a few years ago right? :) If I can give you a piece of advice which I gave you a couple of years ago, then recently contradicted myself on by ignoring this advice only to realize later that I should have followed it… Take a look at Fowler’s accounting patterns. Whenever I do anything that has things like accounts and transactions in it I find that the accounting patterns really slice and dice those concepts rather well. You are writing an accounting application, it may be called buckets but those buckets are accounts. Hope this helps.

Hey Jamis,

Any idea on whether it will become an open project any time on the future? I really love the concept and would love to translate / work on it!

Best regards, Felipe.

I think you said this resembles the envelope system that many people, including Dave Ramsey, talk about. Great idea to develop some software for it!

@Tim, thanks for the tip! I actually looked at the accounting patterns stuff a couple years ago, but this time around I realized that its time to just make something work. I’ve been working on this app (in one form or another) for over 6 years now. The current design may be fundamentally flawed—it seems to work okay for me and my wife in practice, but who knows what’ll happen when more people start really pounding it? At any rate, one of my secret hopes for this project is that someone more accounting-savvy than myself will be inspired by some of the ideas in BucketWise and will write something more robust. :)

@Felipe, there’s no real timeline for release yet, but I do intend to open-source it eventually.

How weird that Steve wrote an article that touches exactly this same subject, read it here : http://steve-yegge.blogspot.com/2009/04/have-you-ever-legalized-marijuana.html

I respect your decision to keep BucketWise private for now. But I would really like to read and study your rspec/cucumber files. It would be a great exercise to create the application on my own using your specifications.

And as to getting some feedback from the CPA types, that would likely understand specifications better than code.

@Ron, what makes you think I’m using rspec or cucumber? I’m a test/unit man.

I really like the concept of the “aside” fund and allocating credit card purchases for immediate repayment. Great idea!

Looks like a practical app. I think I’ll like it… and so will many others. One suggestion: Consider changing the header color. A forest green would suite it well.

@Melvin, you know, I thought you might be right, so I gave it a try. But a dark header band makes the page feel top-heavy to me. At any rate, when I open up the source code (in the near future) I will certainly invite design patches; my own design-fu is weak, and I’m just doing enough to make it usable for yours truly.

Try #ABE8AE . I’ll play with it once you get it on github :D

My friend made a buckets budgeting implementation for his personal use and made it public: http://github.com/twinge/money-buckets/tree/master

Haven’t used yours or his but maybe some will find it useful.