A web app to help manage personal finances.
I was looking for a project to improve my (non-existent) HTML and CSS knowledge and so I built this web app to replace a number of spreadsheets I was using to track my own personal finances. It also gave me an opportunity to explore SQL Alchemy and Jinja templating.
It was designed with the following methodology in mind.
The easiest way to run your own version of BlueSheet is to click the button below to deploy it to Heroku. They offer free accounts which have some limitations but should easily suffice for general use.
Once deployed, to update to the latest verion you can do the following:
heroku git:clone -a <your app name>(where "<your app name>" is what you called BlueSheet on Heroku). Note: You may get a message to say that you have cloned an empty repository, this is ok.
cd <your app name>
git remote add source https://github.com/Dullage/BlueSheet
git pull source master
git push heroku master
The following environment variables need to be set for the app to run:
Both should be strong passwords. Note: These will be automatically generated if deploying to Heroku.
You can also optionally set a DATABASE_URL environment variable which can be any SQL Alchemy connection string. This will default to
sqlite:///database.db (a SQLite database stored in a location relative to where the applicant is run) if not specified.
Note: The Heroku deployment will automatically setup a PostgreSQL database and fill in the DATABASE_URL accordingly.
bluesheet.py is a command line tool allowing you to add users, unlock user accounts and change passwords.
Alternatively you can also set USERNAME and PASSWORD environment variables. When the app is fist launched, if the declared user already exists the users password will be updated, if not a new user will be created.
python /path/to/bluesheet.py add-user -u firstname.lastname@example.org -p MyS3curePwd!
When the user first logs in they will be taken to the configuration page.
If a user enters an incorrect password more than 3 times in a row their account will be locked, to unlock an account you can run the following:
python /path/to/bluesheet.py unlock-user -u email@example.com
To change a users password you can run the following:
python /path/to/bluesheet.py change-password -u firstname.lastname@example.org -p My0t4erS3curePwd!