Skip to main content

Responsive Flask/SQLAlchemy personal finance app, specifically for biweekly budgeting.

Project description

travis-ci for master branch coverage report for master branch sphinx documentation for latest release Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. 'Stories in Ready'

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

Overview

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).

Important Warning

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.

Main Features

  • Budgeting on a biweekly (fortnightly; every other week) basis, for those of us who are paid that way.

  • Optional automatic downloading of transactions/statements from your financial institutions.

Requirements

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.

  • Python 2.7 or 3.3+ (currently tested with 2.7, 3.3, 3.4, 3.5, 3.6 and developed with 3.6)

  • Python VirtualEnv and pip (recommended installation method; your OS/distribution should have packages for these)

  • Git, to install certain upstream dependencies.

  • MySQL, or a compatible database (e.g. MariaDB). biweeklybudget uses SQLAlchemy for database abstraction, but currently specifies some MySQL-specific options, and is only tested with MySQL.

  • To use the automated OFX transaction downloading functionality:

    • A running, reachable instance of Hashicorp Vault with your financial institution web credentials stored in it.

    • PhantomJS for downloading transaction data from institutions that do not support OFX remote access (“Direct Connect”).

Installation

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.3.

Please note that, at the moment, two dependencies are installed via git in order to make use of un-merged pull requests that fix bugs; since

git clone https://github.com/jantman/biweeklybudget.git && cd biweeklybudget
virtualenv --python=python3.6 .
source bin/activate
pip install -r requirements.txt
python setup.py develop

License

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

biweeklybudget-0.1.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

biweeklybudget-0.1.0-py2.py3-none-any.whl (1.3 MB view details)

Uploaded Python 2Python 3

File details

Details for the file biweeklybudget-0.1.0.tar.gz.

File metadata

File hashes

Hashes for biweeklybudget-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e6077b16bf13c91a598365d557100bc7faf44d0c521d825ad5b98ab3fb40463c
MD5 671a2d9883920f76ae227a9aadf92590
BLAKE2b-256 deebe16c7f68f22290cc0a0e5aca329dbdfc124f6df7ea98d441783d76188a79

See more details on using hashes here.

File details

Details for the file biweeklybudget-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for biweeklybudget-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 525af08319df9eb9f156b182f629a3a78cffa1b352f30c77a3c7cc468c1e5442
MD5 29135f52cd58127a701f64f1384602e5
BLAKE2b-256 437d529845c270b3d439242e21c4a187cc68c8fbf79aa41e722753d8bf18e9bd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page