Finished the planner end to end.
Corrected rollover and yearly accounting, recurring targets, savings 
rules, and targeted dormant restorations.
Added editing/deletion for income, expenses, targets, and categories.
Rebuilt dashboard, analytics, calendar, settings, exports, 
authentication, and responsive mobile UI.
Added original artwork at 
[financial-flow.png](/Users/tyemeclifford/Documents/GH/budget/public/assets/images/financial-flow.png), 
generated with built-in Imagegen using an abstract financial-momentum 
landscape prompt.
Added 
[self-test.php](/Users/tyemeclifford/Documents/GH/budget/scripts/self-test.php).
Verification passed: automated accounting/export tests, full browser 
workflow, responsive 390px layout, light/dark themes, and no console 
errors. Tested with FrankenPHP v1.12.4. Live Mailgun delivery was not 
attempted without credentials.
This commit is contained in:
Ty Clifford
2026-06-15 10:33:55 -04:00
parent b7eaa81501
commit 51ee4ecb5a
18 changed files with 1568 additions and 559 deletions
+9 -2
View File
@@ -19,6 +19,12 @@ php -S 127.0.0.1:8080 router.php
Open `http://127.0.0.1:8080` and create the first administrator account. The SQLite database is created automatically at `storage/database/budget.sqlite`.
Run the accounting and export smoke test with:
```bash
php scripts/self-test.php
```
For Apache, use `public/` as the document root and enable `mod_rewrite`.
## Core behavior
@@ -26,9 +32,10 @@ For Apache, use `public/` as the document root and enable `mod_rewrite`.
- Each month has a manual starting income and an explicit previous-month remainder.
- Positive remaining funds can roll into the next month. Use **Recalculate** to refresh an existing month's rollover after changing the prior month.
- Income and expense rules can move a percentage or fixed amount into the dormant account automatically.
- Dormant deposits reduce usable funds; restorations increase the selected month's usable funds.
- Dormant deposits reduce usable funds; restorations can return to monthly income or be tagged to a specific budget target.
- Payments linked to a budget item progress its paid and owing totals.
- Monthly recurring items copy from the prior month; yearly items copy from the same month in the prior year.
- Monthly and yearly recurring items materialize from the latest matching series, even when a month was skipped.
- Annual fresh-income totals exclude rollover so carried money is not counted twice.
- JSON exports use the `neon-ledger/budget-planner` version 1 format and exclude credentials, 2FA secrets, and the Mailgun API key.
## Bill reminders