# Requirements — Diana Website (v1) ## Stakeholders - **S1 — Prospective customers**: homeowners/property managers seeking repair/maintenance/renovation work. - **S2 — Diana**: needs qualified inquiries, wants accurate representation, wants credibility and differentiation. - **S3 — Search engines**: require indexable content, clear structure, performance, metadata. ## Functional requirements ### Lead capture (primary) - **FR-1**: The site must provide a **Request a Quote / Contact** form accessible within 1–2 taps from any page (persistent CTA). - **FR-2**: The form must be **lightweight** (no file upload in v1). - **FR-3**: The form must collect the following fields to support **qualified leads**: - **Name** (required) - **Address** (service location, required) - **Phone** (required) - **Email** (required) - **Description** (description of work requested, required) - **FR-4**: After submission, the user must see a **clear confirmation** and guidance on next steps (e.g., Diana will follow up within N days). - **FR-5**: Form submissions are delivered via an **existing AWS service** (endpoint TBD — see ADR-002, OQ-3). ### Contact channels - **FR-6**: The site must prominently expose: - **Primary**: quote request form - **Secondary**: email address - **Secondary**: phone number - **FR-7**: Both secondary channels must appear in the site **header/footer** and in the **post-submission confirmation** copy. ### Content & pages - **FR-8**: The site must be **English-only**. - **FR-9**: The site must clearly state the **service area: San Francisco + 50 mile radius**. - **FR-10**: The site must include a **Services hub page** (`/services/`). - **FR-11**: The site must include **service detail pages**, grouped for SEO as follows: | Page | URL slug | |------|----------| | Painting | `/services/painting/` | | Tile Setting | `/services/tile-setting/` | | Drywall & Sheetrocking | `/services/drywall/` | | Minor Plumbing | `/services/plumbing/` | | Minor Electrical | `/services/electrical/` | | Carpentry & Mounting | `/services/carpentry-and-mounting/` | | Flooring & Wood Refinishing | `/services/flooring/` | | Security & Safety Equipment | `/services/security-safety/` | | Boat Work | `/services/boat-work/` | - **FR-12**: The site must include an **About Diana** page highlighting credibility, experience, and project coordination background. - **FR-13**: The site must include a **Testimonials** page using existing testimonial content (source: https://spotlighthis.com/testimonials/). - **FR-14**: The site must include a **Contact / Request a Quote** page (`/contact/`). ### Differentiation / brand messaging - **FR-15**: Brand name: **"Home Enhancement and Renovation — HER"** (short-form: **HER**). - **FR-16**: The site must explicitly lean into "**female handyman/handywoman**" positioning. - **FR-17**: The site must highlight Diana as **trustworthy, easy to work with**, and skilled at **project coordination/mediation** between homeowners and construction crews. - **FR-18**: The site must incorporate key proof points: **years of experience** and **project coordination background** (aerospace team lead). ## Non-functional requirements ### Mobile-first UX - **NFR-1**: The site must be designed **mobile-first**, with readable typography and touch-friendly controls. - **NFR-2**: The quote/contact CTA must be prominent and easily accessible on mobile. ### SEO - **NFR-3**: The site must be **indexable** (static/server-rendered HTML; no content hidden behind client-only rendering). - **NFR-4**: Each service page must have unique, descriptive metadata (title/description) targeting that service and location. - **NFR-5**: The site must include a sitemap and robots.txt (details in `37-seo-content-spec.md`). ### Performance - **NFR-6**: Pages must load quickly on mobile networks; images must be optimized and appropriately sized. ### Privacy / tracking - **NFR-7**: **No analytics, tracking scripts, or cookie consent banner** in v1. No privacy policy page required at launch. ### Maintainability - **NFR-8**: The solution should be low-maintenance and suitable for infrequent updates by the owner. ## Constraints / scope boundaries - **C-1**: Site must be a **static website**. - **C-2**: Deployment/infrastructure is **out of scope** beyond the assumption it will be served behind **Caddy reverse proxy**. - **C-3**: No blog, booking/calendar, or payments in v1. - **C-4**: No file uploads on the contact form in v1. ## Acceptance criteria (v1) - **AC-1**: A visitor can reach the quote request form from any page in 1–2 taps. - **AC-2**: Service pages exist for each group in FR-11, each with a clear CTA and unique content. - **AC-3**: The site clearly states service area and core brand positioning (HER). - **AC-4**: The site is usable on mobile (no horizontal scroll, readable text, accessible tap targets). - **AC-5**: The site is SEO-ready: indexable pages, unique metadata per service page, sitemap/robots present. - **AC-6**: Secondary contact channels (email, phone) are visible in header/footer and post-form confirmation. ## Traceability notes - Lead capture specs → `38-lead-capture-spec.md` - Frontend UX and page layout → `33-frontend-spec.md` - SEO structure and metadata/schema → `37-seo-content-spec.md`