My wife has been learning about personal finance lately. Looking back at years of household spending, she concluded that our accounts were a blur: we could not say exactly how much came in or went out over a year. On impulse, she announced she wanted to start keeping books.

We tried some apps, but she found them annoying. So the idea became: use AI to build one. The stack was PHP 8.4 and MySQL. I set the direction and gave requirements; I did not write a single character of code (I couldn't). About six hours later, after roughly ten iterations, the app was nearly finished.

Bookkeeping app interface

What changed in version 1.03

  • Import and export CSV using selected conditions.
  • Bookkeeping tags: one entry can have several tags, and one tag can point to many entries. This is more flexible than a two-level category tree.
  • Pending payments and pending receipts, which better matches real life.

Tags and pending items

Core features

  • Record income and expenses.
  • Statistics by year, month, and category, with search-based statistics using notes.
  • Multi-user support. To prevent junk data, the public front end has no registration entry.
  • A separate admin back end.

Distinctive details

  • Each user can have multiple ledgers, and each ledger gets its own data table.
  • Categories inside each ledger can be added and deleted freely.
  • Heartbeat detection means an account can be logged in on only one client at a time.
  • Brute-force protection: after five failed password attempts, the account is forcibly locked.

A playful touch

  • A registration mode uses a countdown to remind users to record their daily bookkeeping.

Still planned

  • ~~Data import and export~~ — already updated.
  • Data printing.

Planned features and status

In the end, my wife praised it. That made me very happy.

A test account is available for anyone who wants to look around: test / 123456.

Celebrating the finished app