This README would normally document whatever steps are necessary to get the application up and running.
Things you may want to cover:
Use a ruby dependency manager like rbenv or asdf. The supported ruby version is stated in the .ruby-version file
- Install postgres
brew install postgresql
- Run postgres as a brew service
brew services start postgresql
- Install Make
brew install make
- Prepare the development environment
make prepare
- Run the server
bin/rails s
- Sync the Institutions from GoCardless
bundle exec rake institutions_data:sync
You might install the provided git hooks to prevent committing changes that do not conform to the established style guide.
For such please install pre-commit in your system. Refer to the docs on how to install it.
Once set up, you will need to install the hooks in your local repository. Please run:
pre-commit install
After a successful execution, the commit hoo will trigger when committing files.
make test
make lint
✅ A budget is a collection of categories.
✅ A category has a name and an allocated_amount per month.
✅ A target amount is the desired allocated amount for a given category
A category can be:
overspentwhen the sum of movements is greater than theallocated_amountunderfundedwhen theallocated_amountis smaller than thetarget amountfundedwhen theallocated_amountis equal or greater than thetarget_amountand the sum of movements is fewer tham theallocated_amount
The allocated_amount of a category is depleted by each movement.
A movement belongs to an account. It can be a credit or a debit.
✅ A credit is a money movement flowing out of your account.
✅ A debit is a money movement flowing into your account.
✅ A movement has a payer.
✅ A movement can be assigned to a category
Every unassigned movement will be considered Ready to asign funds, i.e funds to be added to the budget.