docs: document monthly view, updated layout, and deferred work

Refs #3

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
archeious 2026-04-17 11:40:06 -06:00
parent abdb68a29c
commit b2d16120d2

View file

@ -2,19 +2,22 @@
Household budget tracker. FastAPI + HTMX frontend, SQLite backend.
## Sections
## Pages
The budget page shows one card per section. Every section accepts a name and
amount per entry and displays a running total, except *Primary Debt Target*,
which is a pointer to one of the *Debt Minimums* rows.
* `/` budget configuration. One section per category (Incomes, Fixed Amount
Bills, Debt Minimums, Primary Debt Target, Food and Essentials,
Subscriptions, Other). Every section accepts name + amount entries and
shows a running total. The Primary Debt Target is a pointer to a Debt
Minimums row.
* `/month/YYYY-MM` monthly view. Snapshots the budget at creation time and
tracks an `applied` amount per entry alongside the planned amount. Each
row is annotated when its name or planned value has been edited away
from the snapshot, or when the row was added after creation. Per-month
debt target is independent of the budget's target after snapshot.
* Incomes
* Fixed Amount Bills
* Debt Minimums
* Primary Debt Target (pointer)
* Food and Essentials
* Subscriptions
* Other
Navigate between months with the prev / next buttons or the dropdown
picker. A "This month" link on `/` jumps to the current `YYYY-MM`; if it
has not been created yet, you land on the create flow.
## Requirements
@ -69,18 +72,21 @@ over `quartermaster.db`, and restart.
```
src/quartermaster/
main.py FastAPI app factory
routes.py HTTP handlers, HTMX partials
service.py Queries, totals, target logic
routes.py Budget configuration HTTP handlers
routes_month.py Monthly view HTTP handlers
service.py Budget queries, totals, target logic
month_service.py Snapshot, deviation, per-month CRUD
models.py SQLAlchemy models and Section enum
db.py Engine, session, PRAGMA foreign_keys=ON
config.py DB URL resolution
templates/ Jinja2 templates (base, index, partials)
templates/ Jinja2 templates (base, index, month, partials)
static/ CSS
alembic/ Migrations
tests/ pytest suite
```
## Scope
## Deferred
Single-month budget. Multi-month support is planned for a later milestone
and is intentionally not modelled yet.
A transaction log that rolls up into `applied` on a per-entry per-month
basis is deferred. Once implemented it may replace the hand-edited applied
field.