united-tattoo/docs/prd/functional-requirements-frs.md

5.0 KiB

Functional Requirements (FRs)

FR-A. Admin Dashboard & Artist Management A1. Invitations & Onboarding

  • FR-A1.1: Admin can invite users (artists, staff) via time-limited signup links.
  • FR-A1.2: Wizard-style onboarding for artists using ShadCN components guiding profile, portfolio, and settings.
  • FR-A1.3: Optional passwordless fallback; primary path supports email+password + 2FA enrollment.
  • FR-A1.4: Sandbox mode to preview changes before publishing live.

A2. Role-Based Access & Controls

  • FR-A2.1: Roles: viewer, editor (portfolio), admin, owner; assignable per user.
  • FR-A2.2: Permissions restrict CRUD on artists, portfolios, and settings per role.
  • FR-A2.3: Emergency pause control per artist or system-wide, disabling booking or portfolio visibility.

A3. Artist Profiles & Portfolio

  • FR-A3.1: CRUD for artist profiles (bio, styles, rates/tiers, links, availability indicators).
  • FR-A3.2: Batch drag-and-drop portfolio upload with progress tracking.
  • FR-A3.3: Manual cropping UI with grid guides; save crops as separate asset records.
  • FR-A3.4: Optional AI-assisted cropping suggestions (can be disabled per settings).
  • FR-A3.5: Versioning for portfolio pieces to track edits/updates.
  • FR-A3.6: Portfolio piece metadata: style tags, dimensions/size class, creation date, visibility flag.

A4. Asset Management & Delivery

  • FR-A4.1: Store media in R2; metadata in D1.
  • FR-A4.2: Server-side asset fetching and transformation for pages; minimize client duplication.
  • FR-A4.3: Configurable compression levels; toggles to disable aggressive compression per asset/group.

A5. Auditability & Notifications

  • FR-A5.1: Activity logs with user, action, timestamp; filter by user/resource.
  • FR-A5.2: Notification preferences per user and per role (email/SMS for key events: new booking, cancellations).
  • FR-A5.3: Basic content moderation hooks for uploads (e.g., queue for review).

FR-B. Unified Booking & Client Management B1. Booking & Consultation Forms

  • FR-B1.1: Multi-form flow with smart routing: consultation vs booking based on user input.
  • FR-B1.2: Appointment type taxonomy (first tattoo, cover-up, large piece, etc.) drives questions and duration.
  • FR-B1.3: Automated quote estimates based on inputs: size, placement, complexity, artist tier/rate.

B2. Client Portal

  • FR-B2.1: Clients can create accounts and authenticate to manage appointments.
  • FR-B2.2: View upcoming/past appointments, reschedule/cancel (per policy windows).
  • FR-B2.3: Payments area: view deposit history, receipts, refunds.
  • FR-B2.4: Profile and preferences (email/SMS notifications opt-in/out).

B3. Scheduling & Calendars

  • FR-B3.1: Real-time availability across artists with conflict detection.
  • FR-B3.2: Google Calendar two-way sync for artists (per-artist toggle).
  • FR-B3.3: Automated confirmations and reminders (email/SMS) per policy.

B4. Payments

  • FR-B4.1: Multi-merchant gateway support (e.g., Stripe, PayPal) with deposit handling.
  • FR-B4.2: Store payment intents and receipt references securely; enable refund workflows.
  • FR-B4.3: Deposit policies surfaced during booking; acceptance required to proceed.

B5. Notifications & Communications

  • FR-B5.1: Email and SMS channels configurable by users/admins.
  • FR-B5.2: Admin notifications for new bookings, cancellations, changes.

FR-C. Public-Facing Website Experience C1. Design System & Visuals

  • FR-C1.1: All pages follow ShadCN baseline; unify typography, spacing, and components.
  • FR-C1.2: Implement layered parallax and split-screen storytelling in hero and portfolio sections.
  • FR-C1.3: Image-forward layouts throughout; high-quality photography emphasis.

C2. Pages & Navigation

  • FR-C2.1: Improve /aftercare, /deposit, /terms, /privacy, /book for consistency and UX.
  • FR-C2.2: Smooth, consistent navigation with refined transitions.
  • FR-C2.3: Responsive behavior across major breakpoints with mobile-first navigation patterns.

C3. Search & Discovery

  • FR-C3.1: Dedicated search page with filters (style, availability, price tier).
  • FR-C3.2: Quick search (Ctrl+K) for artists and educational content.
  • FR-C3.3: Enhanced artist gallery: style-based filtering and interactive zooms/lightbox.

C4. Educational Content

  • FR-C4.1: Detailed aftercare guides with visuals, progress tracking, and checklists.
  • FR-C4.2: Healing process explanations with diagrams or annotated imagery.
  • FR-C4.3: Downloadable PDFs and printable guides.

FR-D. Technical Delivery & Handoff D1. Cloudflare Integration & Runtime

  • FR-D1.1: Use D1 for structured data and R2 for media; server-side patterns for SSR/ISR where applicable.
  • FR-D1.2: Caching strategies to minimize egress and optimize load times.

D2. Performance & Offline

  • FR-D2.1: Lazy loading for portfolio assets; progressive image loading.
  • FR-D2.2: Service worker for offline support and faster revisits.

D3. Documentation & Staging

  • FR-D3.1: Clear README, architecture docs, changelog, contributor guide.
  • FR-D3.2: Staging environment for Christy to preview changes.

D4. Handoff

  • FR-D4.1: Repo delivered ready-to-merge; Cloudflare transfer instructions documented.
  • FR-D4.2: Owner training materials for non-technical management.