This program ascribes to (what can be popularly referred to as) bucket budgeting, where a "bucket" is referred to as an account in Budse. That means that will enter every payment you receive into Budse, and it can divide the amount between all of your accounts according to your preferences. It keeps track of the amount that is in each account, and every withdrawal subtracts from that amount.
Benefit of this type of budgeting is that it's conceptually simple, which minimizes the overhead of budgeting tasks. It restricts what you can spend, but it also enables you to freely spend the allocation of money without worrying about how that affects other accounts.
Budse is simple to use and absolutely awesome for portable command line use (hello Linux server administrators). Its storage is portable so any place that Budse can run (which is pretty much anywhere), it can run.
Latest News
Installation Instructions
Windows: Grab the binary here
Everyone else (Mac, Linux, anywhere Python can run):
- Install Python 2.6.3
- Download SQLAlchemy and un-archive it (any program that can handle a tar.gz compressed file)
- Grab budse.py and budsecli.py (trunk is always good)
- Place the lib/sqlalchemy folder from the SQLAlchemy uncompressed folder into the same directory as budse.py and budsecli.py)
- Open a terminal application (cmd.exe for Win32, Terminal.app for Mac OS X, etc)
- Navigate to the folder containing budse.py, budsecli.py, and the sqlalchemy folder
- For cmd.exe (on Windows) use: cd to change directory and dir to see the contents of the current directory
- For most other terminal applications use: cd to change directory and ls to see the contents of the current directory
- Execute the Python command line interpreter on budsecli.py (e.g., "python budsecli.py")
Screenshots
Functionality first, beauty second. But this will change!Technical Details
Some dirty development environment details:- Python 2.6.2
- SQLAlchemy 5.5
- Macbook Pro 15"
- Aquamacs/Emacs
- py2exe
Background of Budse
The story of Budse starts in the summer of 2006. Being unsatisfied with then-current implementations of money management, newly-graduated (UCSD!) Derek set out to create a tool for himself. He dislikes MS Excel very much as a database and shudders at the thought of its continued use for ever-increasing information like a budget over time. Plus he was looking for a job and did not want his coding to fall by the wayside.
So he made a tool that does what he wants. And he wanted a simple budgeting tool.
Initially conceived as the Budgeteeer, it was a GUI application written in Python with a proprietary data storage system. The GUI was made with the built-in Tkinter. It was ugly but usable to a degree. Unfortunately it was getting increasingly difficult to add new functionality and near impossible to imagine how to expand the project beyond his own computer. There was hardcoded screen graphing, and it was a struggle to create portions of the GUI. It was so much of a wrestling match that Derek did not even want to do it anymore. So he quit.
Well he quit that version, used his knowledge of his development tools (namely Python), and decided that this could be so much better. So he started from scratch and went with a menu-based command line version. He envisioned creating all of the functionality that he could dream of first and then adding the GUI at a later date. He started this version (started as 0.2) in mid 2008. During development he learned a number of things about Python and code and life and such.
He had a working version of the Budgeteer (which had by now dropped an "e" after it was discovered that it was highly extraneous) in October 2008. He had even started to move from the old Budgeteeer to use the new version for his budgeting. After some contemplation, he decided that he wanted his software to be free. He likes Braveheart, and he can fight for freedom just as much as well the next guy. So he applied to Sourceforge to release the Budgeteer under the GNU Public License.
However a project was already registered under that name on Sourceforge, and they were having migration issues. These issues prevented Derek from taking over the budgeteer project, which led to him re-thinking the name. Thus was born Budse. Inspired by the Python language, which is in part inspired by the amusing Monty Python troupe, Budse stands for: Budget for Spam and Eggs.