Skip to content

Make the admin dashboard usable by non-technical sitters#17

Merged
bradburch merged 1 commit into
mainfrom
ux-non-technical-sitters
Jul 8, 2026
Merged

Make the admin dashboard usable by non-technical sitters#17
bradburch merged 1 commit into
mainfrom
ux-non-technical-sitters

Conversation

@bradburch

Copy link
Copy Markdown
Owner

Replaces #16 (same content; that branch's history predated the #15 squash and conflicted — this branch is a clean rebase of the one remaining commit onto main).

Summary

UX hardening round driven by simulated non-technical-user testing: two persona subagents (business setup, daily operations) drove the real app and reported friction; everything blocking was fixed and re-verified against the fixed build.

  • Time off: inclusive "First/Last day off" fields converted to the DB's exclusive convention at the UI boundary — blocking Aug 10–17 no longer silently leaves Aug 17 bookable
  • Service options: duration-derived option keys auto-dedupe server-side, so two same-length options with different names save fine; only genuinely duplicate names error, with an accurate message
  • Booking triage: dashboard lands on Bookings with "Needs your reply (N)" sorted by date; confirm/decline/cancel show a fixed bottom status bar including whether the client was emailed; cancelling a confirmed booking asks first; declined requests are stored (Declined flag) and displayed distinctly from cancelled
  • Status emails: confirm/decline/cancel email the customer via Resend when configured; the response carries notified so the dashboard stays honest when it isn't
  • New sitter-facing data (migration 0008, additive-only — already applied to the remote DB): business contact email/phone (shown in the widget), client phone numbers, per-pet care notes
  • Plain language: embed page copy buttons + numbered Squarespace/Wix steps; nav renames ("Your website", "Pet types"); Services page explains adding a new offering; stale error banners clear on section switch; login screen drops the DEMO_NOTES.md reference
  • Seed: demo bookings belong to the demo customer (no more "Unknown customer" rows), plus pending requests so a fresh install demos triage

Test plan

  • npm test — 245/245 passing (new tests: declined lifecycle, same-duration option keys)
  • Typecheck + eslint + prettier clean
  • Migration applied locally and to remote D1, columns verified; three browser-driving subagent passes verified the flows end to end

🤖 Generated with Claude Code

Fixes from two rounds of simulated non-technical-user testing (setup and
daily-operations personas), re-verified against the fixed build:

- Time off: the UI now treats the typed range as inclusive ("First/Last
  day off, both days are included") and converts to the DB's exclusive
  convention at the boundary — blocking Aug 10-17 no longer silently
  leaves Aug 17 bookable.
- Service options: duration-derived option keys auto-dedupe server-side,
  so two same-length options ("30 minutes" and "Puppy Check-in") save
  fine; only genuinely duplicate names error, and the message says so.
- Booking triage: dashboard lands on Bookings with a "Needs your reply
  (N)" group sorted by date; confirm/decline/cancel show a fixed bottom
  status bar including whether the client was emailed; cancelling a
  confirmed booking asks first; declined requests are stored (Declined
  flag) and displayed distinctly from cancelled bookings.
- Booking status emails: confirm/decline/cancel notify the customer via
  Resend when email is configured; the response reports notified so the
  dashboard is honest when it isn't.
- New sitter-facing data (migration 0008, all additive): business
  contact email/phone (shown in the widget), client phone numbers, and
  per-pet care notes.
- Plain language: embed page gets copy buttons and numbered
  Squarespace/Wix steps; "Embed" nav renamed "Your website", "Pets" to
  "Pet types"; Services page explains how to add a new offering; stale
  error banners clear on section switch; login screen drops the
  DEMO_NOTES.md reference.
- Seed: demo bookings belong to the demo customer (no more "Unknown
  customer"), plus pending requests so a fresh install demos triage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@bradburch bradburch merged commit 0d4c459 into main Jul 8, 2026
2 checks passed
@bradburch bradburch deleted the ux-non-technical-sitters branch July 8, 2026 02:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant