Showing posts with label Geldzin. Show all posts
Showing posts with label Geldzin. Show all posts

Wednesday, January 25, 2012

Geldzin2: Final Beta Released

I've just deployed the final beta of my little financial web application (Geldzin). The beta's business goals were to put all core functionality in place while driving for a usable product that would demonstrate the trajectory I envision for personal finance management. The core functionality includes transaction log, tracking financial and debt accounts, categorization of transactions, distribution of income, a couple of spending reports, emergency fund, and charity&giving emphasis. Below is a view of the digest (main) page:


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:
  1. 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.
  2. 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.
  3. I wanted somewhere to explore Ext JS 3.x, which is what I use for the UI and client/server communication.
  4. 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.
  5. 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.
  6. 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.
  7. Figure out what it takes to obtain a patent for software like this.
All these goals were met during this phase (except #7 which is still in the works). The next phase will focus on how to create better UIs (user interfaces), webapp themes (look and feel), producing technical documents (quick start and user guides, source API), mobile sites (using a framework like jQuery Mobile), how to estimate project development costs better (financial and time), and a few other business features in the release candidate (RC1). It is a learning process.

Thursday, December 15, 2011

Geldzin2: Emergency Fund

In version 1.9 (build#77), I implement the concept of an emergency fund. The emergency fund is money that has been saved specifically for emergencies. An emergency is "something unexpected that has major impact on your family". Things that can be saved for or that can wait are not emergencies. The emergency fund "turns crises into inconveniences" (quoting Dave Ramsey both times).


Geldzin2 allows users to specify what their emergencies are. Anything you can think of that you want to have money available for when it suddenly happens should be considered an emergency. The sum estimate is the emergency fund goal. The minimum amount should be held in cash (ready to spend on a moment's notice), and the rest held in a bank account that you do not use for everyday expenses (separate from your main checking account).

During distribution, emergencies are prioritized higher if the minimum amount has not been achieved. Otherwise, they are considered after debts are taken care of. (See image below).

The app considers various factors to determine whether current income should be distributed towards emergencies, including the fund goal, minimum, available cash and emergency account balance, and anything that might have been distributed before but not yet transferred to the account.

To access the emergency fund feature, log into the app and navigate to {Emergency Fund}.

Monday, December 12, 2011

Geldzin2: Public Beta Availability

The latest version of the app (version 1.8) is considered a bonified public beta, ready for release to the masses in January 2012. At this point, users can perform basic financial tasks such as create a budget and categories, track financial accounts and debts, log daily transactions (deposit, expense, income), and distribute income among competing obligations. It also incorporates the idea of charity.

Over the next few weeks, progress towards a milestone version (M1) will involve implementation of other key features, a theme, and reports (including the dashboard). The second release milestone (M2) will bring under-the-hood optimizations and a complete user guide. The third release milestone (M3) will add a mobile website and an Android/iOS app. I project that the final release (version 2.0) will drop around June 2012.

It takes me longer to complete each milestone now because I am a one-man operation with a wife, day job, and hobbies that needs my time. Soon, programming marathons will no longer be possible too, but I will keep pushing to complete this project sooner than June 2012.

Friday, December 09, 2011

Geldzin2: Transactions

In version 1.7 (build#64), I introduce the expected feature of transaction management. Every financial management app provides a means for users to log their expenses, deposits, and transfers. In Geldzin, this feature integrates with categories, debts and financial accounts (and behind the scenes, it affects distributions).


As you can see in the screenshot above, transactions are displayed with the latest on top. Amounts are color-coded (red for outgoing money, blue for incoming money), and linked categories and financial accounts are shown. Expenses can have splits (more than one category assignment). The current version allows entry of income (via Income Distribution), deposits, and expenses. Whenever you use a category that is budgeted, its distributions are affected. For example: an expenditure using a budgeted category will deduct the transaction amount from that month's distribution for the category.
Using the menu immediately above the transaction display, you can also choose to view transactions (1) in a given date range, or (2) for a particular financial account. A future version will provide more comprehensive reports so you can analyze transactions and see your financial trends.

The lifestyle principle is that you should know where your money is coming from or where it is going. With data like this, all kinds of analysis and trending can be done to help make good financial decisions and identify opportunities for efficiency. This data can, for example, be used to refine your budget.

To see this feature in action, access the webapp at http://jubilee.homeip.net:84/geldzin2/ and login. [Demo account is username guest and password geldzin]. Navigate to {Transactions}. Select an option in the {Create New Transaction} dropdown to create an expense, deposit, or distribute income.

Wednesday, December 07, 2011

Geldzin2: Income Distribution

In version 1.6 (build#56), I introduce the concept of income distribution. This is the second unique feature in my personal finance management system that no one else out there has. Simply put, "income distribution" is the practice of earmarking (or distributing) your income towards budget categories, debt, and other savings goals systematically. It ensures that your immediate budget needs are covered, debt paid off as quickly as possible, and other savings goals catered to. All you have to do is punch in your paycheck whenever it arrives, and the system will tell you how to use it.



As you can see in the screenshot above, you simply plug in an income amount and distribution tells you what should be applied towards charity & giving, current and next month budget needs, and debts or loans. When you save the distributions, it counts as a deposit as well. If there is any leftover money, you have a choice to save it for a future distribution, or spread it out among all your budget areas.

The lifestyle principle is that you should only spend from what you have earned/distributed rather that what you have planned/budgeted. In other words, just because there is a budget doesn't mean the money is there. The budget is only the beginning: income distribution is a necessary second (and ongoing) step.

To see this feature in action, access the webapp at http://jubilee.homeip.net:84/geldzin2/ and login. [Demo account is username guest and password geldzin]. Navigate to {Distributions | Income Distributions}.

Monday, November 21, 2011

Geldzin2: Charity & Giving

In version 1.6 (build#56), I introduce the concept of charitable giving as part of the financial lifestyle. This is the first unique feature in my app that no other personal financial management system has. The idea is simple: you ought to give away a portion of your earnings to charitable causes and helping others; it will make you happier! There is all manner of research and experience that support the connection between happiness and generosity. You are never truly wealthy until you can give away some of your treasures.

In Geldzin, you provide a percentage that will be earmarked for charitable giving during income distribution (called the charity rate). You also provide the name of the category with which charitable giving can be tracked in your transactions.



Apart from the happiness you might derive from generosity, the category is there to help you track charitable giving for tax purposes as well. The charity category is not included in the budget, as the practice is to deduct charity money and applying the rest to budget priorities. This enables people to consider charity and giving no matter what their income is, and to always be generous as long as there is an income.

Check out the feature at http://jubilee.homeip.net:84/geldzin2/ and login with username "guest" and password "geldzin". Select menu {Guest > Profile}, access the "Charity" tab.

Sunday, November 13, 2011

Geldzin2: Debts

In version 1.5 (build #39), I add the ability to begin tracking debts. Only basic information about loans and credit cards (how much is owed, when the next payment is due and for how much) is tracked, needed to devise a debt payment strategy (coming in a later version). On this page, you can also see how many payments are left if you were to pay minimums only.




When making a budget, you also need to account for minimum debt payments per month. If there are debts to pay, Geldzin will show debts in categories/budget under a special category highlighting payments that will need to be done throughout the year, as shown in the screenshot below. This gives you a better picture of what your expense budget should be.



You can preview this feature at http://jubilee.homeip.net:84/geldzin2/ (login as guest with password geldzin, select menu Navigate > Credit Cards & Loans). Note that the guest/demo account is reset each night, so any changes you make will be lost overnight). This application is still in beta.

Wednesday, November 09, 2011

Geldzin2: Financial Accounts

In version 1.4, I add the ability to begin tracking bank accounts and cash. After you figure out how much you will be spending (see Geldzin2: Categories & Budget), you need to know how much money you currently have and where it is held. Aside from that, you should also know how you use the financial accounts, such as if there are any debit cards associated with them. I attempt to meet these goals in the latest implementation of Geldzin2, as shown in the screenshot below.


In the future, I'll provide a means to connect to banks and download balances and transactions, as well as additional account analysis and reports. I'll also provide reminders for when debit cards expire, and notices for when accounts may run out of money based on historical expenditure trends.

You can preview this feature at http://jubilee.homeip.net:84/geldzin2/ (login as guest with password geldzin, select menu [Navigate > Financial Accounts]). Note that the guest/demo account is reset each night, so any changes you make will be lost overnight). This application is still in beta.

Monday, October 31, 2011

Geldzin2: Categories & Budget

In version 1.3, I add features required to manage categories and a simple budget. All this can be done from a single page, as shown in the screenshot below (with randomly generated data).


At top/left section is where you manage categories. All financial transactions must be itemized (or categorized). In the context of categories, you then can create a budget (as seen at top/right section). A category can have any number of budget items, each specifying budget amounts for each month of the year. Annual and monthly totals are displayed at bottom for convenience and quick reference.

My philosophy on personal budgeting is that a budget should initially be designed around expenses only (as opposed to incorporating income). I take this approach for two reasons: (1) everyone has expenses regardless of income, and (2) knowing expenses first helps shape an informed strategy for obtaining income to cover the expenses. A budget is simply rules on how you plan to use money (and doesn't necessarily mean you have that money). Income should later be considered when balancing the budget (in light of actual financial activity) and for forecasting. Once you know how much you must spend, the question then becomes: "how shall I get all this money?". An expense-only budget also helps bring to the forefront your lifestyle and priorities.

Sunday, October 16, 2011

Geldzin2: Accounts

In Geldzin2, accounts are the hub of user activity, used to coordinate the various features the user experiences when using the application. The following are planned features for version 1.2 (developer build available Sun Oct-23, 2011):
  • Accounts are created when a user activates their profile.
  • An account can be linked to multiple users (up to 2), primarily so that each user can have their own login.
  • One of the account users can be designated the primary user (the first user assigned to an account is by default the primary). This user is the only one allowed to schedule the account for deletion.
  • Accounts can be free or paid. This implementation will support only free accounts.
  • Accounts can be personal or business. This implementation will support features appropriate for personal financial management only.
  • When a user is removed from an account, the user is scheduled for deletion. The user can no longer log into the the account thereafter.
  • When an account is disabled, its users are also disabled, meaning that they cannot log in thereafter.
  • When an account is deleted, its users are disabled and removed when the account is removed.
As usual, a developer build of the previous version can be previewed at http://jubilee.homeip.net:84/geldzin2/. To test-drive the application, login as guest/geldzin (for username/password).

NOTE: The guest account is reset every night, so do not expect changes to persist day-to-day. Although the developer drop allows users to register new accounts, this information is lost when a new build is deployed.