# Teressa Copeland Homes

## What This Is

A professional real estate web presence and document management web app for broker Teressa Copeland (teressacopelandhomes.com). The public-facing site showcases Teressa's brand and active listings pulled from WFRMLS via utahrealestate.com. The private web app lets Teressa log in, prepare real estate documents for clients, add signature fields, and send clients a link to sign — all without the client needing an account.

## Core Value

Teressa can prepare and send any real estate form to a client for signing in minutes, from her browser, without leaving her site.

## Current Milestone: v1.2 — Multi-Signer and Deployment Hardening

**Goal:** A single document can be sent to multiple signers in parallel, each receiving their own link and seeing only their own fields, with automatic completion notifications — plus a production-ready Docker Compose setup that correctly passes secrets so email works reliably.

**Target features:**
- Multi-signer: agent tags each signature field to a signer's email when placing
- All unique signer emails auto-discovered from field tags → recipients list built automatically
- All signing links sent simultaneously (parallel, any order)
- Each signer sees only their own fields on the signing page
- Document completes when ALL signers have signed → agent notified + all parties receive final merged PDF
- Docker Compose with proper secrets/env var injection for production
- Fix email delivery in Docker (SMTP secrets not passing through to container)

## Requirements

### Validated

- ✓ Marketing site with brand and contact form — v1.0
- ✓ Agent portal with client management and document dashboard — v1.0
- ✓ PDF upload, preview, and forms library — v1.0
- ✓ Drag-drop signature field placement and document preparation — v1.0
- ✓ Email-link signing flow (no client account) — v1.0
- ✓ Presigned agent download, audit trail, LEGAL-03 compliance — v1.0

### Active (v1.1 — nearly complete, Phase 13 E2E verification pending)

- ✓ Agent can add property address to client profile (for AI pre-fill)
- ✓ AI auto-places all field types on a PDF at the click of a button
- ✓ AI pre-fills text fields with known client/property data
- ✓ Agent can place text, checkbox, initials, and date field markers
- ✓ Agent can save a drawn signature and reuse it across documents
- ✓ Agent applies saved signature to agent signature fields before sending
- ✓ Agent sees a filled preview of the prepared document before sending

### Active (v1.2)

- [ ] Agent can tag each signature/initials/date field to a specific signer email when placing
- [ ] Document recipients list is built automatically from unique signer emails on the document
- [ ] All signers receive their signing links simultaneously (parallel, any order)
- [ ] Each signer sees and signs only their own fields (other signers' fields hidden)
- [ ] Document status tracks per-signer completion (who has signed, who hasn't)
- [ ] When all signers complete, agent receives a notification email
- [ ] When all signers complete, all parties (signers + agent) receive the final merged PDF
- [ ] Production Docker Compose with proper secrets/env var injection
- [ ] Email delivery works correctly in Docker production environment

### Out of Scope

- Native iOS/Android app — responsive web app only
- Client login portal — clients sign via anonymous email link only (v1)
- DocuSign/HelloSign — custom signature capture built in-house
- Notifications/reminders for unsigned documents — v2
- Team/multi-agent support — solo agent only (v1)

## Context

- Agent photo: `/Users/ccopeland/Downloads/red.jpg` — auburn hair, warm smile, professional black blazer; fits warm/approachable aesthetic
- Domain: teressacopelandhomes.com
- utahrealestate.com credentials available for forms library and listings integration (WFRMLS MLS feed)
- Documents include: purchase agreements, listing agreements, buyer representation agreements, addendums/disclosures
- Teressa fills fields (property address, client names, dates, prices) before sending; client only signs
- Custom e-signature: canvas-based signature drawn in browser, embedded into PDF

## Constraints

- **Integration**: utahrealestate.com/WFRMLS — credentials-based; must scrape or use available API; no guaranteed public API
- **Tech Stack**: Next.js (React) — chosen by client; full-stack via API routes
- **Legal**: Custom e-signature must capture IP, timestamp, and signature image for legal standing
- **PDF Processing**: Must handle Utah real estate standard forms (likely PDF-based); field detection may require heuristics or manual placement UI

## Key Decisions

| Decision | Rationale | Outcome |
|----------|-----------|---------|
| Custom e-signature over DocuSign | Lower ongoing cost for solo agent; full control over UX | — Pending |
| Next.js full-stack | Single repo for marketing + web app; API routes for backend | — Pending |
| Email-link signing (no client account) | Lowest friction for clients; standard in real estate | — Pending |
| utahrealestate.com integration via credentials | Client already has account; forms library is core source | — Pending |

## Evolution

This document evolves at phase transitions and milestone boundaries.

**After each phase transition** (via `/gsd:transition`):
1. Requirements invalidated? → Move to Out of Scope with reason
2. Requirements validated? → Move to Validated with phase reference
3. New requirements emerged? → Add to Active
4. Decisions to log? → Add to Key Decisions
5. "What This Is" still accurate? → Update if drifted

**After each milestone** (via `/gsd:complete-milestone`):
1. Full review of all sections
2. Core Value check — still the right priority?
3. Audit Out of Scope — reasons still valid?
4. Update Context with current state

---
*Last updated: 2026-04-03 after v1.2 milestone start*
