Repository navigation
Releases: zachyale/tab-tracker
Releases · zachyale/tab-tracker
Release list
v0.1.0
Immutable
release. Only release title and notes can be modified.
Features
Tabs and the ledger
- Accounts are ledgers with a name, description, unique URL slug and currency, holding items (e.g. "Cold brew") that each have one or more priced options (e.g. Large / Small) —
feat: restructure options into items with batched tap recording - Append-only ledger: every entry, undo, charge and payment is immutable, and prices are locked at the moment each entry is recorded, so repricing an item never rewrites what anyone already owes —
feat(server): add sqlite ledger schema and balance queries - Public account pages with +/− buttons per option; rapid taps are debounced client-side and recorded as a single batched transaction
- Managers can adjust any member's quantities, add arbitrary charges, and record payments to settle up —
feat(server): add accounts, options, entries, and payments api - Manager-controlled display order for both items and their options —
feat(server): add option ordering,feat(web): add option reordering and currency symbol labels
Members
- Placeholder members let you backfill a tab for someone before they register; the tab transfers to them automatically when they sign up with the matching email, or can be linked to an existing user manually —
feat(server): add ghost members and backfill charges - Bulk member actions from a selectable table: record payments, add charges, settle full balances, and arbitrarily merge any number of members' balances and history into one —
feat(web): add bulk member actions with balance merging - Accounts support an owner plus co-managers, with ownership transfer
Accounts and sharing
- Printable QR code per account, CSV export of the full ledger, and per-account activity feeds —
feat(web): add dashboard, tab page, and manager console - Activity views: a "My activity" accordion on public pages and a paginated activity table for managers —
feat(web): add activity accordion and paginated activity table - Per-account currency from a fixed list of decimal currencies, defaulting to CAD —
feat(server): add balance notifications and currency validation
Auth and administration
- Email + password always available, with optional Google sign-in and generic OIDC, and optional SMTP for verification and self-service password resets —
feat(server): add auth with optional google, oidc, and smtp - Instance admin console: list users, deactivate/reactivate, and set passwords directly for SMTP-less instances. The first registered user becomes the admin —
feat(server): add admin plugin with user deactivation and rate limiting,feat(web): add admin page, notification settings, and currency dropdown - Email notifications when a balance crosses a trigger amount, with admin-set instance defaults (default $20) and per-user overrides —
refactor(web): move notification prefs into profile preferences - Rate-limited auth endpoints
Interface
- Mobile-first UI built on shadcn/ui with accessible dialogs throughout —
refactor(web): adopt shadcn/ui components,feat(web): replace prompt and confirm flows with accessible dialogs - Light/dark/system theming — warm stone in light mode, midnight blue in dark — with an override in the user menu —
feat(web): add theme support, user menu, and profile page,feat(web): midnight blue dark theme and light stone palette - Installable PWA with an offline service worker —
feat(web): add offline service worker - Profile page for name and password changes, with notification preferences
Packaging
- Single Docker image containing the API, the built frontend and an embedded SQLite database; multi-arch (amd64/arm64) images published to GHCR —
feat: add single-image docker packaging - Schema migrations generated with drizzle-kit and applied automatically on startup —
refactor(server): generate migrations with drizzle-kit
Bug Fixes
- server: defer foreign key enforcement during migrations so table rebuilds don't trip ledger constraints —
fix(server): defer foreign keys during migrations - ci: install the
conventionalcommitspreset for the release tooling —fix(ci): install the conventionalcommits preset for release tooling
Internal
- 69 API and unit specs covering permissions, price locking, notifications, merging and the ghost-claim flows, with coverage reported to Codecov
- CI runs typecheck, tests and build on every push and pull request
- Release flow: an admin dispatches the
releaseworkflow, which opens adevelop→mainPR; merging it tags the version, publishes the GitHub Release and pushes the Docker image - MIT licensed
Full Changelog: https://github.com/zachyale/tab-tracker/commits/v0.1.0