Skip to content

colincle/Kakeibo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kakeibo

A desktop budgeting app inspired by the Japanese kakeibo (家計簿), a method of tracking household spending by category and reflecting on it each month, here implemented with an envelope-budgeting model. You give every yen a job by dividing your income across labelled envelopes, import your real bank transactions, and watch each envelope fill up or drain over the month.

Written in C++20 with Qt 6. The interface is bilingual (French / 日本語).

The envelopes view

The figures in this screenshot are fictional sample data created for illustration. They do not represent any real account or transaction.

Background

This is a personal tool, built for my own use and shared publicly as a portfolio piece rather than a product. I made it to manage one household's budget across two currencies, euros and yen, using the kakeibo approach.

Because it only ever needed to fit one person, the scope is intentionally narrow:

  • Single-user desktop app. All data is stored locally, with no accounts and no backend.
  • Built and tested on macOS only.
  • The interface is French and Japanese only.
  • The statement importers handle just the banks I use (Rakuten Bank, Rakuten Card, Mitsubishi UFJ).

You're welcome to read, fork, or adapt it, but it isn't meant to work out-of-the-box for a different setup.

Features

  • Envelope budgeting. Create envelopes with a monthly goal and a ceiling, mark some as savings, and track how full each one is at a glance.
  • Bank statement import. Paste a raw statement and it is parsed automatically. Supported formats: Rakuten Bank, Rakuten Card (credit), and Mitsubishi UFJ. Full-width Japanese digits are normalised to ASCII.
  • Automatic categorisation. Expenses are matched to envelopes by remembered description types. Unknown ones prompt you once and are then remembered.
  • Dispatch page. Distribute your income across envelopes, evenly or to each goal, with per-envelope locking and full undo/redo before you apply.
  • History and statistics. Filter expenses by envelope and date range, and see per-month and per-year averages.
  • EUR / JPY conversion. Every amount is shown in yen and euros using live European Central Bank reference rates (no API key required).
  • Backups and cloud snapshot. Daily local backups (30 kept) and an optional image snapshot of selected envelopes written to a sync folder.

Building

Requires CMake 3.16 or newer and Qt 6 (Core, Gui, Widgets, Network, Concurrent).

cmake -S . -B build
cmake --build build
./build/Kakeibo

Or use the helper:

./scripts/run.sh

Tests

The bank-statement parser has unit tests (pure logic, no Qt required):

cmake --build build
ctest --test-dir build --output-on-failure

macOS app bundle

./scripts/bundle.sh   # produces Kakeibo.app (requires macdeployqt on PATH)

Data location

State is stored as JSON under $XDG_DATA_HOME/kakeibo (or ~/.local/share/kakeibo): enveloppes.json, specialEnveloppes.json, and the backup and cloud path config.

Project layout

include/core   data model, parsing, persistence, backups, cloud sync
include/ui     the Qt views (envelopes, history, stats, dispatch, import, etc.)
include/uiElements  small reusable widgets
src/           implementations mirroring include/
external/json  nlohmann/json (single header)
scripts/       run, bundle and formatting helpers

License

MIT. See LICENSE.

About

A desktop budgeting app built on the Japanese kakeibo method, with a bilingual French and Japanese UI and real bank-statement import.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors