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:
parent
abdb68a29c
commit
b2d16120d2
1 changed files with 30 additions and 24 deletions
40
README.md
40
README.md
|
|
@ -2,19 +2,22 @@
|
||||||
|
|
||||||
Household budget tracker. FastAPI + HTMX frontend, SQLite backend.
|
Household budget tracker. FastAPI + HTMX frontend, SQLite backend.
|
||||||
|
|
||||||
## Sections
|
## Pages
|
||||||
|
|
||||||
The budget page shows one card per section. Every section accepts a name and
|
* `/` budget configuration. One section per category (Incomes, Fixed Amount
|
||||||
amount per entry and displays a running total, except *Primary Debt Target*,
|
Bills, Debt Minimums, Primary Debt Target, Food and Essentials,
|
||||||
which is a pointer to one of the *Debt Minimums* rows.
|
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
|
Navigate between months with the prev / next buttons or the dropdown
|
||||||
* Fixed Amount Bills
|
picker. A "This month" link on `/` jumps to the current `YYYY-MM`; if it
|
||||||
* Debt Minimums
|
has not been created yet, you land on the create flow.
|
||||||
* Primary Debt Target (pointer)
|
|
||||||
* Food and Essentials
|
|
||||||
* Subscriptions
|
|
||||||
* Other
|
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
|
@ -69,18 +72,21 @@ over `quartermaster.db`, and restart.
|
||||||
```
|
```
|
||||||
src/quartermaster/
|
src/quartermaster/
|
||||||
main.py FastAPI app factory
|
main.py FastAPI app factory
|
||||||
routes.py HTTP handlers, HTMX partials
|
routes.py Budget configuration HTTP handlers
|
||||||
service.py Queries, totals, target logic
|
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
|
models.py SQLAlchemy models and Section enum
|
||||||
db.py Engine, session, PRAGMA foreign_keys=ON
|
db.py Engine, session, PRAGMA foreign_keys=ON
|
||||||
config.py DB URL resolution
|
config.py DB URL resolution
|
||||||
templates/ Jinja2 templates (base, index, partials)
|
templates/ Jinja2 templates (base, index, month, partials)
|
||||||
static/ CSS
|
static/ CSS
|
||||||
alembic/ Migrations
|
alembic/ Migrations
|
||||||
tests/ pytest suite
|
tests/ pytest suite
|
||||||
```
|
```
|
||||||
|
|
||||||
## Scope
|
## Deferred
|
||||||
|
|
||||||
Single-month budget. Multi-month support is planned for a later milestone
|
A transaction log that rolls up into `applied` on a per-entry per-month
|
||||||
and is intentionally not modelled yet.
|
basis is deferred. Once implemented it may replace the hand-edited applied
|
||||||
|
field.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue