Having now spent a little time working on the user-interface for the MoneyJar application I can now show you a very early version of the application.
I was in a bit of a hurry to mock-up the UI, partly to learn how to use Swing, but also to provide better insight into how the application will be used. More importantly, how useful the application is going to be to the user. A great thing about a mock-up UI is that you can play with it, which can give you ideas about what features are missing.
First thing I realized when creating the UI was that actually the list of transactions presented in the lower table doesn’t actually provide much use. In fact much of the useful data will have little to do with transaction history.
It also occurred to me late last night that maybe I should redesign the application from a single integrated money management environment to a collection of money management tools. The distinction doesn’t seem like much, but it changes the underlying design substantially. I will now consider developing each tool as a separate package that can be added to the system.
Another way of looking at it is that the application is a collection of tools that make up the entire application.
This makes it easier to develop the application in stages, in terms of an expanding number of tools and features. Allowing me to spend time working on isolated parts of the application without affecting others.
At the core of the application are three tools. One that monitors how you spend your money, one that show you your net income, and the other to manage your net worth. While these can be seen as three separate tools, when integrated together there will be overlaps where one tool acts as input to the others.
I know it doesn’t look like much, but a lot of the work is taking place under the hood. What you’re looking at though is a walking skeleton, and I’ll be expanding the number of features.
This is a long-haul project that I am expecting to work on over the next few years. But hopefully over the next few months, I can get it to a stage where it will be useful in day-to-day activities.