
| Home | Articles | Projects | University | Gallery | Guestbook | About |
pyBudget is a simple program designed in pyGTK+, whose goal is to make easier the calculations of an estimated budget for saving a certain amount of money over a given period of time.
Although pyBudget is simple, it can make semi-complicated calculations with personal budgets taking in account the monthly income of an individual or even color the savings balance cell in green or red, depending on the achievements during a given period.
As I started to live by myself as a student in Finland, I decided to build a small program capable of keeping track of my expenses and incomes, thus boosting my economy and enhancing my savings.
First, I designed a program in Qt3, which was named qBudget, and it was quite simple and not very functional. However, after several headaches due to my lack in knowledge of C++, I decided to re-program it in GTK+, and so gBudget was born. gBudget was the first draft of pyBudget, programmed in GTK+. Afterwards, I decided to port it to Qt since I changed my desktop from GNOME to KDE and, two weeks after that, I decided to improve gBudget also since there are many GTK+ users as well.
The next step to come out with pyBudget was to unify both interfaces under a same directory tree and same project, letting the user choose which interface build up from the same source tree. And this way, I unified gBudget and QBudget into mBudget (from MKD's Budget).
Finally, after I got tired of using GTK+ and Qt interfaces (it was very tedious due to some differences between both languages). This was caused by a change in my mind, telling me that why should I use normal programming languages when I could use simple scripting for a simple program like this. That is how I came out with the idea of turning the project into pyGTK+, which was very simple at for me and accessible at the time I decided to redirect the project.
pyBudget must be provided with four important data fields in order to calculate the budget estimate. The first two buttons give access to two different calendars, one for picking the start date and the other one to pick the end date, thus telling pyBudget the period of time in which the amount of money is going to be budgetted.
The first input field must contain the total amount of money that we are willing to spend over the specified time. Moreover, in the second input field, we may (optionally) enter a stady amount of money that we will receive every month. This field is optional but its main purpose is to support a regular monthly salary.
Then, in the Money spent field we should enter the amount of money that we have already spent. Typically, the best way to use pyBudget is starting from the first day and manually updating the Money spent field every time we make a payment or we spend some money.
Finally, the Calculate button will estimate how much we have been spending per day (Current budget), and how much should we spend (per day) from now onwards, in order to accomplish the target budget. The Balance field is pretty obvious, and it will be colored in green if we are ahead the budget, or in red if we have spent more than the expected amount.
pyBudget is not only capable of estimating a certain budget, but also performing several basic tasks present in most graphical programs. First, pyBudget is capable of saving a budget estimate into a file (please note the menu File and the options Save and Save as..).
As of the version 0.2, pyBudget is able to keep track on the recently open documents. This means that if you create or save different files, pyBudget will remember the last 10 elements and will include them in the submenu File >> Recent Documents. If a file is missing, pyBudget will delete it from the Recent Documents list, avoiding further problems.


pyBudget can also save any calculation in a file (with the option Save as... or load some calculations from any file (with the option (Open).
At this moment, pyBudget is only a python script and mostly to be run in GNU/Linux systems. However, due to the wide support of Python and GTK+, it may run perfectly under OpenBSD, NetBSD, FreeBSD and similar systems. The MacOS X users will have wait, since I have not researched how good is the pyGTK+ support in MacOS X, and I think the GTK+ support is still not so good.
Please note that, in order to run pyBudget you need to install python-gtk on your system, and that is the only requisite.
As of the version 0.2, several bugs were introduced in consequence to the new features present in that version. To note:
For more information, please contact me by email or leaving a message in this website.