Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


build status

Big finance tools in a small package

bdgt is a one-stop personal finance management app. Planned features:

  • Zero-based budgeting system
  • Bill management, calendar, and reminders
  • Account management/transaction history
  • Goal system with automatic monthly budgeting
  • Forecasting (net worth/account balance)
  • Debt and savings calculators
  • Interactive reports

Demo at / admin



screenshot: bills page

screenshot: goals page

screenshot: reports


This project requires PHP 7.3+ and a MySQL database.

Using PHP on your machine

If you already have PHP installed, you can use php artisan serve or Laravel Valet paired with an installed version of MySQL, or a tool like Takeout.

Using Docker

A Docker config is provided with all required dependencies. You can start the containers with docker-compose:

docker-compose up -d

Or you can use the included Makefile:

Click to toggle Makefile instructions

Make is required to run make commands.
Linux Debian based - sudo apt-get install make
macOS - brew install make
Windows - choco install make

  • make - show all make commands
  • make init - perform all commands defined in the section Configuring the environment
  • make up - boot and install Composer
  • make down - shut down Docker containers
  • make art - forward Artisan command
  • make assets - build frontend assets (NPM)
  • make assets-watch - watch for changes and build assets
  • make assets-production - build production assets

Configuring the app

cp .env.example .env — edit the values in .env to suit your environment
composer install — requires Composer
php artisan key:generate
php artisan migrate
php artisan db:seed
npm install — requires NPM
npm run dev

A dummy account will be created with the following credentials which can be used to log in and preview the app:
Password: admin

Building the frontend assets

If you make changes to JS or SCSS files, you'll need to recompile the frontend assets.

npm run watch — to automatically compile changes

You can’t perform that action at this time.