Files
wedding-website/plans/milestone-05-guest-interactions.md
Raul Lugo 4ced446c9c
Build & Deployment / Build & Deploy (push) Failing after 5s
initial commit
2026-08-10 17:55:26 +02:00

2.1 KiB

Milestone 05 — Optional Guest Interactions

Reference

Read plans/wedding-bootstrap-plan.md first. This milestone depends on Milestone 04.

Goal

Add optional guest interaction sections that make the wedding experience more personal: song requests, toast/speech requests, and advice/wish/memory messages.

Scope

Implement only:

  • Guest song request form section.
  • Guest toast/speech request form section.
  • Guest advice/wish/memory message form section.
  • Query modules for these tables.
  • Validation schemas.
  • Admin display and basic management for these submissions.
  • Localization copy for these sections.

Non-goals

Do not implement:

  • MinIO photo upload.
  • Presigned URLs.
  • CSV export unless explicitly requested later.
  • Complex scheduling UI for toasts.
  • Final design polish.

Required constraints

  • Guest-facing copy must use invitations.language.
  • Admin UI must use shadcn/ui components only.
  • Use Kysely query modules; do not add an ORM.
  • Song requests should be limited, recommended max: 3 per invitation.
  • Toast requests are voluntary and admin-approved.

Implementation tasks

  • Add query helpers for:
    • song requests
    • toast requests
    • guest messages
  • Add Zod schemas for interactions.
  • Add localized copy for interaction sections.
  • Add guest-facing form sections to /invite/[token].
  • Persist submissions.
  • Add admin views on invitation detail page for:
    • song requests
    • toast requests
    • guest messages
  • Add toast status controls if feasible:
    • pending
    • accepted
    • declined
    • scheduled

Verification

Run:

npm run lint
npm run build

Manual checks:

  • Guest can submit up to 3 song requests.
  • Guest can submit optional toast/speech request.
  • Guest can submit advice/wish/memory message.
  • Guest-facing text is localized by invitation language.
  • Admin can view all submitted interaction data.
  • Admin can update toast request status if implemented.
  • Admin pages use shadcn/ui only.

Acceptance criteria

  • Optional guest interactions work end-to-end.
  • Admin can review them.
  • No upload functionality was implemented in this milestone.