I had a free weekend this weekend and actually stayed at home for the first time in ages. In between reminiscing about last weekend in Germany by racing the Nurburgring on my xBox 360 I spent quite a bit of time working on FlexBudget.
I have now basically got all the domain classes finished and all the tests written. This was true TDD – I didn’t even create any view components until 99% of the domain and tests had been written. I also wrote the tests first, checked that they failed then implemented the functionality. I did come across a bug with FlexUnit 4 doing this – sometimes if a test fails FlexUnit seems to not fail it and just say that 44/45 tests completed which was a bit weird.
You can see how far I have got here:
90% of the work so far has been on the domain classes and not very much on presentation logic or views. The next step will be improve the user experience a lot – I’ll move all the new Account / Deposit etc windows into popups. There is no form validation at the moment either, just catching of events so I need to work on that.
The selected transaction panel was thrown together in about 30 mins after I had completed the rest as I wanted to play with it. This is what the app is about really – being able to tweak spending to see how it affects your overall budget. This component is pretty buggy and will throw RTEs if you click in the wrong place in the grid.
The view is not pretty, not well laid out and probably has some bugs in but I am pretty pleased with progress so far. Obviously the app is useless without what you enter being persisted in a database somewhere but that will come next after I have tidied the view up.
Try the following for an example of the functionality.
- Create a new account called House with a balance of £500 and a date of the 1st (make up an account number)
- Add the following withdrawals (amount, date, description, code):
100, 10th, Gas Bill, DD
75, 15th, Electric Bill, DD
1000, 15th, Rent, SO
200, 20th, Council Tax, DD
- Add another account called personal with a balance of £100 and a date of the 1st (make up a number)
- add a deposit of £2000 to personal on the 10th – Wages / CHAPS
- Add a Transfer from personal to home on the 14th of £1000
- Add a withdrawal to personal on the 2nd for £200 called Night Out with code ATM
- Click on the night out transaction in the grid and change the date to the 11th (in the Selected Transaction Panel )
- Click on Gas Bill and change the amount to –50
Eventually you’ll be able to drag transactions around to a new date and amounts etc will be editable in the grid.
I’m looking forward to getting this into a useable state so I can stop using a spreadsheet!
Any comments or ideas for features please let me know.