Personal Finance Application






4.38/5 (11 votes)
Utility to keep track of personal finances
- Download EXE with sample db English - 377 Kb
- Download EXE with sample db Spanish - 377 Kb
- Download source - 828 Kb
Introduction
Utility to keep track of money, expenses, investment, etc.
Background
AccountsMoney goes from one account to other account. There are 3 types of accounts:
- Neutral: This type of account is in your system, you own this
accounts.
Samples: Cash, Bank Accounts, Cash in other currency.
- R+: This type of account puts money into your system. They put
the money into neutral accounts.
Samples: Salary, Interests, Income.
- R-: This type of account takes money out of your system (and you
never see it again).
Samples: Supermarket, bills, grocery, electronics, gas, bus, furniture...everything you buy.
- R+ to Neutral (you earn money)
- Neutral to Neutral (you move money)
- Neutral to R- (you loose money)Transaction Samples
From: Sallary To: Bank A Account Amount: 3000 |
Here you earn money, money goes from R+ to Neutral. |
From: Bank A Account To: Cash Amount: 3000 |
Here you move money. You don't loose and you don't earn. This is an ATM extraction. Neutral to Neutral. |
From: Cash To: Electronics (New TV)Amount: 100 |
Here you loose money. Money goes from Neutral to R-. |
From: Cash To: Buy foreign currency Amount: 1250 |
Your dollars dissapear. You loose them. |
From: Euro Buy To: Euro Cash Amount: 1000 |
Euros appear to your Euros Cash. You "earn" them |
Currency Exchange Sell
From: Euro Cash To: Euro Sell Amount: 1000 |
Your euros dissapear. You loose them. |
From: Sell foreign currency To: Cash Amount: 1250 |
dollars appear to your Cash. You "earn" them |
Both operations are done in two steps, because both accounts of transactions should have the same currency. If not, there could be a lot of problems.
Using the utility
The utility comes with a sample database of accounts. Just check if they fit with your needs. Then enter than transactions. The first ones should be from "A - initial" to "A".
In Statistics, if you don't enter the account name, you get the sum of earnings and loss.
Hints
- With backspace you delete the selected account in the combo. You can select the account with the shortcut
- You can put this app in the windows startup minimized with the /MIN param.
It should go into:
/HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/RUN.
Create a key with: "{Path}\CashM.exe /MIN"
- To compile in spanish, replace the .rc file, with the languages/spanish. Delete the .aps file.
- Security: if you don't want other people see your data, put the db into a zip with a password. Extract it to use it and when done, put it again on the zip. I thought about encrypting the data in the database, but then, I wouldn't be able to use SQL. More problem than solution.
- You can see and change the database with SQLite Database Browser. You can also perform SQL queries against the database.
- The same way you buy and sell euros, you can do with stock papers, or even investment. For example, you can define MSFT as a currency, define the 3 accounts as the Euros example in Accounts. (MSFT: MSFT Paper, MSFT Sell, MSFT Buy, MSFT Inicial, all of them of "MSFT" currency). Finally, in Cash, you should define "Buy Stock", "Sell Stock". The "conversion" in currency would be the paper value.
- Play with the app a while before entering real data, so you get to know it.
- Do some backup of the db periodically.
- As the exe has the database engine inside and the MFC is linked, you can run this on any Windows. You can put the exe and the db in a zip, upload it to the web, and access it from every machine with internet connection.
- The Cash Correct + Account is used if, for example, you find money in your pocket or in the street. The Cash Correct - Account is used when you "loose" cash, for example, burning, loosing coins, etc. I also use these accounts when I check the Cash total (Statistics) and I find numbers don't match (for any reason).
Points of Interest
I used in it A LOT of components from codeproject. Thanks a lot to all the people who wrote them, I wouldn't be able to build this thing without them. I first built a .NET app to keep track of money, but .NET was slow back then (2001) and graphics weren't good. Then I used an SQL Sever database and finally, an excel worksheet. This is an improvement on all of them. I found similar apps like Monex and other but....they don't fit my needs and they get complicated in some operations. I intend to improve this thing, mainly because I use it.
The code got a little "wired" while building the app, in case you decide to change it. I'll probably improve it in the next version. This utility compiles with VC++ 2005 with warnings.
English is not my first language, so please excuse any errors there. This is my first CodeProject
article.
ToDo List
- Printing
- Code improving
- Graphics improving
- Virtual accounts
- Import-Export
- Unicode
- Help