The digest/dashboard provides a snapshot of the overall financial picture. From top-left clockwise, it shows information about your bank and cash accounts (collectively called financial accounts), your credit cards and loans (collectively called debts), a trending chart of total expenses versus total deposits/income over the last 6 months, status of the emergency fund, the most active spending/budget items, and finally the most recent transactions logged. I have room for one more widget at bottom-left but haven't decided what it will be.
While the initial functionality is in place and a useful product is available to users (my wife and I have been using this webapp for over a year), I also had technical goals that this phase needed to meet:
- I wanted a real project to hash out my knowledge of Hibernate 3.x. This is the technology I am using for persistence management and database connectivity. The database application itself is MySQL 5.x.
- I wanted a real project to play with Spring MVC, which I use to receive all client requests and control access to data. The Spring configuration runs in an Apache Tomcat 6.x web container.
- I wanted somewhere to explore Ext JS 3.x, which is what I use for the UI and client/server communication.
- I've wanted to exercise the project build capabilities of Maven 3.x, which is what I use to compile and build this project and manage dependencies and releases. In tandem with Maven, I also use Subversion SVN for version control.
- I also wanted to improve my development process to include automated testing (using TestNG and Selenium), automated/scheduled releases (weekly in a testbay) and automated data import from old databases to new schema. For some of these, Perl saved the day.
- Finally, I wanted to understand the intricacies of hosting Java application on the web. I use eApps, which provides a VPS (virtual private server) with the database application, Tomcat and JVM, among other things, for about $250/year.
- Figure out what it takes to obtain a patent for software like this.