jantman/biweeklybudget
Responsive Flask/SQLAlchemy personal finance app, specifically for biweekly budgeting.
1.2K
Responsive Flask/SQLAlchemy personal finance app, specifically for biweekly budgeting.
For full documentation, see http://biweeklybudget.readthedocs.io/en/latest/
For screenshots, see http://biweeklybudget.readthedocs.io/en/latest/screenshots.html
For development activity, see https://waffle.io/jantman/biweeklybudget
biweeklybudget is a responsive (mobile-friendly) Flask/SQLAlchemy personal finance application, specifically targeted at budgeting on a biweekly basis. This is a personal project of mine, and really only intended for my personal use. If you find it helpful, great! But this is provided as-is; I'll happily accept pull requests if they don't mess things up for me, but I don't intend on working any feature requests or bug reports at this time. Sorry.
The main motivation for writing this is that I get paid every other Friday, and have for almost all of my professional life. I also essentially live paycheck-to-paycheck; what savings I have is earmarked for specific purposes, so I budget in periods identical to my pay periods. No existing financial software that I know of handles this, and many of them have thousands of Google results of people asking for it; almost everything existing budgets on calendar months. I spent many years using Google Sheets and a handful of scripts to template out budgets and reconcile transactions, but I decided it's time to just bite the bullet and write something that isn't a pain.
Intended Audience: This is decidedly not an end-user application. You should be familiar with Python/Flask/MySQL. If you're going to use the automatic transaction download functionality, you should be familiar with Hashicorp Vault and how to run a reasonably secure installation of it. I personally don't recommend running this on anything other than your own computer that you physically control, given the sensitivity of the information. I also don't recommend making the application available to anything other than localhost, but if you do, you need to be aware of the security implications. This application is not designed to be accessible in any way to anyone other than authorized users (i.e. if you just serve it over the web, someone will get your account numbers, or worse).
Note: Any potential users outside of the US should see the documentation section on Currency Formatting and Localization; the short version is that I've done my best to make this configurable, but as far as I know I'm the only person using this software. If anyone else wants to use it and it doesn't work for your currency or locale, let me know and I'll fix it.
This software should be considered alpha quality at best. At this point, I can't even say that I'm 100% confident it is mathematically correct, balances are right, all scheduled transactions will show up in the right places, etc. I'm going to be testing it for my own purposes, and comparing it against my manual calculations. Until further notice, if you decide to use this, please double-check everything produced by it before relying on its output.
Note: Alternatively, biweeklybudget is also distributed as a Docker container. Using the dockerized version will eliminate all of these dependencies aside from MySQL (which you can run in another container) and Vault (if you choose to take advantage of the OFX downloading), which you can also run in another container.
pip
(recommended installation method; your OS/distribution should have
packages for these)It's recommended that you install into a virtual environment (virtualenv / venv). See the virtualenv usage documentation for information on how to create a venv.
This app is developed against Python 3.6, but should work back to 2.7. It does not support Python3 < 3.4.
mkdir biweeklybudget
virtualenv --python=python3.6 .
source bin/activate
pip install biweeklybudget
biweeklybudget itself is licensed under the GNU Affero General Public
License, version 3. This
is specifically intended to extend to anyone who uses the software
remotely over a network, the same rights as those who download and
install it locally. biweeklybudget makes use of various third party
software, especially in the UI and frontend, that is distributed under
other licenses. Please see biweeklybudget/flaskapp/static
in the
source tree for further information.
biweeklybudget includes a number of dependencies distributed alongside
it, which are licensed and distributed under their respective licenses.
See the biweeklybudget/vendored
directory in the source distribution
for further information.
docker pull jantman/biweeklybudget