Files
diana/specification/01-requirements.md
2026-07-31 07:17:00 +02:00

95 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 12 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 12 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`