diff --git a/README.md b/README.md index cd17238..dbd6ed4 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,41 @@ A self-hosted family organization hub for a two-person household. One color-coded calendar view across all family members' Fastmail calendars, plus shared collaborative lists (groceries, gift ideas) — delivered as a React PWA with no app store required. -## What It Does +## Features -- **Unified calendar** — aggregates each member's Fastmail CalDAV calendars into a single color-coded view via tsdav + ical.js -- **Shared lists** — collaborative grocery and gift-idea lists with live sync via Server-Sent Events -- **PWA** — installable on iOS (Home Screen) and Android; push notifications via VAPID -- **Single sign-on** — all auth flows through your existing Authelia OIDC deployment +### One color-coded family calendar + +![FamilySync month view showing each member's events in their own color alongside shared family events](docs/screenshots/calendar.png) + +Every member's personal Fastmail calendars and the shared family calendar are aggregated into a single month view. Each member gets a consistent color; the shared family calendar is always rose, so anyone can tell at a glance who has what on. Events read and write straight back to Fastmail over CalDAV (tsdav + ical.js), including recurring events, all-day events, and reminders — there is no second copy of your calendar to keep in sync. + +### Shared collaborative lists + +![Lists overview showing Groceries, Gift ideas, Costco run, and Hardware store with active and completed counts](docs/screenshots/lists.png) + +Groceries, gift ideas, weekend errands — create as many lists as the household needs, shared with everyone or kept personal. Each card shows live active/done counts so you know what's still outstanding before you leave the house. + +![A grocery list detail view with checkable items, drag handles to reorder, and a completed section](docs/screenshots/list-detail.png) + +Inside a list, check items off, drag to reorder, and add new ones inline. Changes sync live to every other device over Server-Sent Events (with a polling fallback), so two people shopping together never duplicate or miss an item. + +### Single sign-on for the whole household + +![FamilySync sign-in screen with username and password fields plus a "Login with OIDC" option](docs/screenshots/login.png) + +Sign in with a local username and password, or through your existing Authelia OIDC deployment — no per-member calendar credential juggling. The PWA installs to the Home Screen on iOS and Android and supports push notifications (reminders and calendar-change alerts) via VAPID — no app store required. + +### Guided, zero-setup onboarding + +![First-run setup wizard with a four-step progress bar: Welcome, Instance, Calendar, Complete](docs/screenshots/setup.png) + +A first-run wizard walks the operator through configuring the instance — database, OIDC, VAPID keys, and the first Fastmail calendar connection — in about five minutes, so standing up a self-hosted instance does not require hand-editing config files. + +### Household administration + +![Admin settings showing the household members list with credential status and admin badges](docs/screenshots/admin.png) + +Admins manage members and their Fastmail credentials, assign each member a calendar color, choose which calendar is the shared family one, and set the household timezone — all from inside the app. ## Prerequisites diff --git a/docs/screenshots/admin.png b/docs/screenshots/admin.png new file mode 100644 index 0000000..371c7a6 Binary files /dev/null and b/docs/screenshots/admin.png differ diff --git a/docs/screenshots/calendar.png b/docs/screenshots/calendar.png new file mode 100644 index 0000000..fc4cb41 Binary files /dev/null and b/docs/screenshots/calendar.png differ diff --git a/docs/screenshots/list-detail.png b/docs/screenshots/list-detail.png new file mode 100644 index 0000000..bb771d5 Binary files /dev/null and b/docs/screenshots/list-detail.png differ diff --git a/docs/screenshots/lists.png b/docs/screenshots/lists.png new file mode 100644 index 0000000..fa7e055 Binary files /dev/null and b/docs/screenshots/lists.png differ diff --git a/docs/screenshots/login.png b/docs/screenshots/login.png new file mode 100644 index 0000000..0e61d22 Binary files /dev/null and b/docs/screenshots/login.png differ diff --git a/docs/screenshots/setup.png b/docs/screenshots/setup.png new file mode 100644 index 0000000..0bc44a8 Binary files /dev/null and b/docs/screenshots/setup.png differ