Skip to content
EWH2000Public

About

LAN-only household tasks & chores web app — FastAPI + SQLModel + HTMX, rootless Podman deploy. Sibling of pantryapp.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

choresapp

A small, LAN-only web app for tracking household tasks & chores — a shared list the whole house works from. It runs on a home server and shows up as a tile on the house dashboard, usable from a phone or a wall-mounted kitchen iPad. All logic and data live on the server.

A learning / portfolio project, built deliberately with no front-end framework and no build step — just Python, server-rendered HTML, and HTMX. Sibling of pantryapp; same stack, same rootless-container deploy pattern.

Features

  • Add tasks with a title, optional description, priority (high / medium / low), area (Kitchen, Cleaning, Yard, Bills, Pets, Errands, Maintenance, Other), an optional due date, and a repeat schedule (one-off, daily, weekly, biweekly, monthly).
  • Shared list — no per-person assignment; anyone picks up anything.
  • Active list sorts by due date (soonest first, undated last), then priority, then entry date. Overdue tasks are highlighted.
  • Complete a task and it moves to a collapsible Done history (with Reopen). Completing a recurring chore automatically spawns its next occurrence, due a recurrence interval from the completion date.
  • Filter the active list by area / priority and search by title.

Stack

  • Backend: FastAPI (Python 3.14)
  • Data: SQLite via SQLModel — one class defines both the table and its validation; the whole task list is a single file
  • Frontend: Jinja2 server-rendered templates + HTMX for dynamic updates — no JS framework, no bundler. HTMX is vendored locally (the server may have no internet). One fragment (_lists.html) is the single HTMX swap target, holding both the active list and the Done section
  • PWA: a web manifest + Apple meta tags make it installable / fullscreen. No service worker (plain-HTTP LAN isn't a secure context)
  • Runtime: rootless Podman container managed by systemd (Quadlet), data on a persistent volume, daily SQLite backups

Run it locally

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/uvicorn app.main:app --reload     # http://127.0.0.1:8000

The SQLite file (chores.db) is created automatically on first start. The interactive API browser is at /docs.

Deploy

Rootless Podman + systemd, data on a named volume, daily backups. Full runbook in deploy/README.md.

License

MIT.

About

LAN-only household tasks & chores web app — FastAPI + SQLModel + HTMX, rootless Podman deploy. Sibling of pantryapp.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages