Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
pennywise
command
Pennywise — single-tenant, self-hosted personal expense tracker.
|
Pennywise — single-tenant, self-hosted personal expense tracker. |
|
internal
|
|
|
auth
Package auth implements password hashing, sessions, CSRF, and middleware.
|
Package auth implements password hashing, sessions, CSRF, and middleware. |
|
cli
Package cli implements the cobra command tree for the pennywise binary.
|
Package cli implements the cobra command tree for the pennywise binary. |
|
config
Package config loads runtime configuration from environment variables.
|
Package config loads runtime configuration from environment variables. |
|
db
Package db wires up the SQLite connection and runs migrations.
|
Package db wires up the SQLite connection and runs migrations. |
|
fuzzy
Package fuzzy provides the small string-matching helpers Pennywise uses to reconcile LLM-suggested category and ledger names against the user's actual records.
|
Package fuzzy provides the small string-matching helpers Pennywise uses to reconcile LLM-suggested category and ledger names against the user's actual records. |
|
handlers
Package handlers contains the HTTP handlers grouped by feature.
|
Package handlers contains the HTTP handlers grouped by feature. |
|
llm
Package llm wraps the four supported text-completion providers behind a single Provider interface and routes every call through Engine, which timeouts, logs, and reports back to the rest of the codebase.
|
Package llm wraps the four supported text-completion providers behind a single Provider interface and routes every call through Engine, which timeouts, logs, and reports back to the rest of the codebase. |
|
models
Package models holds domain types and helpers that aren't database rows.
|
Package models holds domain types and helpers that aren't database rows. |
|
server
Package server wires the HTTP router, middleware, and lifecycle.
|
Package server wires the HTTP router, middleware, and lifecycle. |
|
setupseed
Package setupseed contains the first-run owner+categories seed logic shared by the web /setup handler and the `pennywise init` CLI command.
|
Package setupseed contains the first-run owner+categories seed logic shared by the web /setup handler and the `pennywise init` CLI command. |
|
static
Package static embeds the CSS, JS, and image assets into the binary.
|
Package static embeds the CSS, JS, and image assets into the binary. |
|
telegram
Package telegram drives the Telegram bot: long polling, message dispatch, inline-keyboard callbacks, and the supervisor that starts/stops the bot based on llm_config and telegram_config.
|
Package telegram drives the Telegram bot: long polling, message dispatch, inline-keyboard callbacks, and the supervisor that starts/stops the bot based on llm_config and telegram_config. |
|
templates
Package templates parses and executes the embedded HTML templates.
|
Package templates parses and executes the embedded HTML templates. |
|
testutil
Package testutil provides shared test helpers: ephemeral SQLite databases with migrations applied, a MockProvider for the LLM interface, and a FakeTelegram httptest server that captures bot API calls.
|
Package testutil provides shared test helpers: ephemeral SQLite databases with migrations applied, a MockProvider for the LLM interface, and a FakeTelegram httptest server that captures bot API calls. |
Click to show internal directories.
Click to hide internal directories.