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
Note: It's important to create a .env.development.local
file and add your valid GoCardless credentials as per .env
format to fully leverage the application's functionalities. To learn more about .env
files, please read this.
- 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:
overspent
when the sum of movements is greater than theallocated_amount
underfunded
when theallocated_amount
is smaller than thetarget amount
funded
when theallocated_amount
is equal or greater than thetarget_amount
and 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.