feat: flatten routes and merge marketing and onboarding directories
This commit is contained in:
296
prd-template/campmatch-user-experience.md
Normal file
296
prd-template/campmatch-user-experience.md
Normal file
@@ -0,0 +1,296 @@
|
||||
# CampMatch User Experience Specification
|
||||
|
||||
**Version:** 0.1
|
||||
**Date:** 2026-06-01
|
||||
|
||||
---
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
CampMatch is the parent and kid-centered discovery layer for the CampMatch + CampReg ecosystem.
|
||||
|
||||
Its job is to help parents find better-fit camps and activities for each child, then move them into a registration, lead, or external booking flow.
|
||||
|
||||
---
|
||||
|
||||
## 2. Core UX Principles
|
||||
|
||||
1. Parents should not need to understand the camp software market.
|
||||
2. Kids should drive fit, even if parents control the account.
|
||||
3. Search should be structured but not overwhelming.
|
||||
4. Matching should explain itself.
|
||||
5. Mobile discovery should be excellent.
|
||||
6. The path from discovery to registration should be short.
|
||||
7. Trust signals should be visible.
|
||||
8. Providers should be encouraged to improve listing quality.
|
||||
|
||||
---
|
||||
|
||||
## 3. Parent Discovery Flow
|
||||
|
||||
### 3.1 Entry Points
|
||||
|
||||
Parents may enter through:
|
||||
|
||||
- Homepage search
|
||||
- City page
|
||||
- Category page
|
||||
- Provider page
|
||||
- Organic search result
|
||||
- Social campaign
|
||||
- Direct provider listing
|
||||
- Saved search alert
|
||||
- Returning parent dashboard
|
||||
|
||||
### 3.2 Search Inputs
|
||||
|
||||
Required:
|
||||
|
||||
- Location
|
||||
- Child age
|
||||
- Dates
|
||||
- Category/activity
|
||||
|
||||
Useful optional filters:
|
||||
|
||||
- Price
|
||||
- Distance
|
||||
- Full day / half day
|
||||
- Before/after care
|
||||
- Indoor/outdoor
|
||||
- Skill level
|
||||
- Accessibility needs
|
||||
- Availability
|
||||
- Provider type
|
||||
|
||||
### 3.3 Search Results
|
||||
|
||||
Each result should show:
|
||||
|
||||
- Camp name
|
||||
- Provider
|
||||
- Category
|
||||
- Age range
|
||||
- Location
|
||||
- Dates/schedule summary
|
||||
- Price range
|
||||
- Availability status where known
|
||||
- Registration mode
|
||||
- Fit reasons
|
||||
- Save button
|
||||
- Compare option
|
||||
|
||||
### 3.4 Listing Detail Page
|
||||
|
||||
Required sections:
|
||||
|
||||
- Overview
|
||||
- Dates and schedule
|
||||
- Age range
|
||||
- Price
|
||||
- Location
|
||||
- Activities
|
||||
- What kids do each day
|
||||
- What parents need to know
|
||||
- What to bring
|
||||
- Drop-off/pickup details
|
||||
- Provider information
|
||||
- Safety/trust info
|
||||
- Photos
|
||||
- FAQs
|
||||
- Registration CTA
|
||||
- Similar camps
|
||||
|
||||
---
|
||||
|
||||
## 4. Kid-Centered Matching UX
|
||||
|
||||
### 4.1 Child Profile Lite
|
||||
|
||||
Parents should be able to create a lightweight child profile for matching before registration.
|
||||
|
||||
Fields:
|
||||
|
||||
- Child first name or nickname
|
||||
- Age
|
||||
- Grade
|
||||
- Interests
|
||||
- Skill level
|
||||
- Location/date preferences
|
||||
- Parent notes
|
||||
|
||||
### 4.2 Fit Explanations
|
||||
|
||||
Recommendations should include short explanations:
|
||||
|
||||
- Matches age
|
||||
- Matches interest
|
||||
- Available selected week
|
||||
- Close to home
|
||||
- Similar to saved camps
|
||||
- Beginner-friendly
|
||||
- Good for full-day care
|
||||
|
||||
### 4.3 Saved Camps
|
||||
|
||||
Parents should be able to save camps by child, not only by parent account.
|
||||
|
||||
Example:
|
||||
|
||||
- Euan’s saved soccer camps
|
||||
- Euan’s saved outdoor camps
|
||||
- Family saved options for July
|
||||
|
||||
---
|
||||
|
||||
## 5. Compare Experience
|
||||
|
||||
Parents should be able to compare camps across:
|
||||
|
||||
- Dates
|
||||
- Daily times
|
||||
- Price
|
||||
- Distance
|
||||
- Age range
|
||||
- Activities
|
||||
- Availability
|
||||
- Registration type
|
||||
- Required forms
|
||||
- Before/after care
|
||||
- Refund policy if available
|
||||
|
||||
---
|
||||
|
||||
## 6. Registration Transitions
|
||||
|
||||
CampMatch must support three transitions:
|
||||
|
||||
### 6.1 External Link-Out
|
||||
|
||||
User clicks to provider’s external registration page.
|
||||
|
||||
Track:
|
||||
|
||||
- Listing
|
||||
- Click
|
||||
- Source
|
||||
- Date/time
|
||||
- Campaign attribution
|
||||
|
||||
### 6.2 Lead Capture
|
||||
|
||||
User submits interest.
|
||||
|
||||
Required fields:
|
||||
|
||||
- Parent contact
|
||||
- Child age
|
||||
- Desired session/date
|
||||
- Message/interests
|
||||
|
||||
### 6.3 Full CampReg Registration
|
||||
|
||||
User enters CampReg registration flow.
|
||||
|
||||
Required:
|
||||
|
||||
- Preserve listing/session context
|
||||
- Preserve marketplace attribution
|
||||
- Use existing child profile if available
|
||||
- Return to parent portal after registration
|
||||
|
||||
---
|
||||
|
||||
## 7. Parent Dashboard
|
||||
|
||||
Parent dashboard should show:
|
||||
|
||||
- Saved camps
|
||||
- Suggested camps by child
|
||||
- Open registrations
|
||||
- Upcoming camps
|
||||
- Outstanding forms
|
||||
- Payment balances
|
||||
- Waitlist statuses
|
||||
- Messages
|
||||
- Recently viewed camps
|
||||
|
||||
---
|
||||
|
||||
## 8. Trust UX
|
||||
|
||||
Trust signals may include:
|
||||
|
||||
- Claimed provider
|
||||
- Verified provider
|
||||
- Clear address/location
|
||||
- Transparent pricing
|
||||
- Clear dates
|
||||
- Safety information
|
||||
- Parent reviews/testimonials if supported
|
||||
- Response time for leads
|
||||
- Registration powered by CampReg
|
||||
|
||||
---
|
||||
|
||||
## 9. Provider Listing Quality Score
|
||||
|
||||
CampMatch should internally score listing quality.
|
||||
|
||||
Signals:
|
||||
|
||||
- Has description
|
||||
- Has photos
|
||||
- Has age range
|
||||
- Has dates
|
||||
- Has prices
|
||||
- Has location
|
||||
- Has FAQs
|
||||
- Has clear registration CTA
|
||||
- Has provider verification
|
||||
- Has schedule details
|
||||
|
||||
VibnAI can improve low-scoring listings.
|
||||
|
||||
---
|
||||
|
||||
## 10. Mobile UX Requirements
|
||||
|
||||
CampMatch mobile must support:
|
||||
|
||||
- Fast search
|
||||
- Map/list view where useful
|
||||
- Filter controls
|
||||
- Saved camps
|
||||
- Compare light mode
|
||||
- Listing detail pages
|
||||
- Registration CTA
|
||||
- Parent login/account creation
|
||||
- Child profile creation
|
||||
- Lead form
|
||||
- Full registration handoff
|
||||
|
||||
---
|
||||
|
||||
## 11. SEO Requirements
|
||||
|
||||
CampMatch should support:
|
||||
|
||||
- City pages
|
||||
- Category pages
|
||||
- City + category pages
|
||||
- Age-specific pages
|
||||
- Seasonal pages
|
||||
- Provider pages
|
||||
- Structured metadata
|
||||
- Internal linking
|
||||
- Indexable listing pages where permitted
|
||||
|
||||
Examples:
|
||||
|
||||
- Summer camps in Victoria
|
||||
- Soccer camps for 10 year olds in Vancouver
|
||||
- Art camps in Calgary
|
||||
- Overnight camps in BC
|
||||
|
||||
VibnAI can generate and refresh SEO content with editorial review.
|
||||
Reference in New Issue
Block a user