The MoneyTracker Project
MoneyTracker allows you to track your expenses and figure out what part of your money goes where. It does that by allowing you to create multiple virtual accounts which can be used to group related transactions, tag transactions and create charts to visualize your income and expenditures.
The JS components are written using the Vue framework. Vue is great at adding piece-meal functionality to existing web applications.
I started this project in 2006 and it has undergone many iterations. What started as a text file morphed into a spreadsheet that morphed into a desktop app that eventually became this web application. The web application itself also underwent many iterations jumping between frontend UI frameworks to eventually settle on Bulma as a CSS framework and Vue for the JS framework.
The public release was in 2020 and reflects my needs for money tracking(get it? that's how the name came about...). A public and free instance for anybody to use is accessible at moneytracker.codedemigod.com.
To run it, follow these basic steps:
- Copy local_settings.py.sample to local_settings.py to define your own local settings. The most important part of this file are the secret values.
- Create a virtual environment for the project by using pipenv and the enclosed Pipfile to create it.
- Install the requirements needed using pipenv
- Run django's migrations via
- Run django's server via
The frontend mostly lives within the assets/js directory. And it consists of the Vue components that get bundled up and served via the django templates.
- To generate the frontend, run the
yarncommand in the main project directory to install the frontend requirements.
yarn watchwill run webpack in watch mode while you develop.
yarn buildis also defined for production releases.