Version: v2.0 | Date: 2025-07-03 | Author: Product Manager
One-liner: A collaborative platform connecting reporters, rescuers, and adopters β from first sighting to forever home.
- The Animal's Journey: Complete Lifecycle Overview
- User Model: Who Can Do What
- Stage 0: Discovery β How an Animal Becomes Visible
- Stage 1: Pending β Waiting for a Rescuer
- Stage 2: In Progress β Rescue Underway
- Stage 3: Treated β Medical Care Received
- Stage 4: Recovering β Rehabilitation Period
- Stage 5: Awaiting Adoption β Ready for a Forever Home
- Stage 6: Adopted β Mission Complete
- Endings Alternative: Failed, Duplicate, Cancelled
- Supporting Systems
- Value Flywheel & Roadmap
A stray animal goes through many stages from discovery to a potential forever home. Today, these stages are deeply fragmented β the person who spots the animal doesn't know who to tell, people who could rescue it never hear about it, and those who might adopt it have no way to trust the animal's history. Every broken link in this chain means an animal that could have been saved is left behind.
ββββββββββββββββ
β STAGE 0 β Someone spots a stray animal.
β DISCOVERY β A passerby. A resident. Anyone.
ββββββββ¬ββββββββ
β They open PawHaven and submit a report
β (photos + GPS + urgency indicator)
βΌ
ββββββββββββββββ
β STAGE 1 β The case is now PUBLIC.
β PENDING β Visible on the homepage map/list.
β (εΎ
εεΊ) β System notifies nearby volunteers.
ββββββββ¬ββββββββ β
β A volunteer "claims" the case β If no one claims in 24h:
β (publicly declares intent to help) β system escalates β wider
βΌ β radius, more notifications.
ββββββββββββββββ
β STAGE 2 β Rescuer is en route or
β IN PROGRESS β actively rescuing.
β (ζε©δΈ) β Posts updates β photos, notes.
ββββββββ¬ββββββββ
β Animal is safely relocated
β (trapped / caught / transported)
βΌ
ββββββββββββββββ
β STAGE 3 β Initial medical care done.
β TREATED β Cleaning, bandaging, vaccines,
β (ε·²ζ²»η) β basic checkup at a clinic.
ββββββββ¬ββββββββ
β Entering recovery period
βΌ
ββββββββββββββββ
β STAGE 4 β Resting at shelter or foster
β RECOVERING β home. Periodic progress photos.
β (εΊ·ε€δΈ) β Behavioral assessment begins.
ββββββββ¬ββββββββ
β Recovery complete, animal is healthy
β
ββββββ΄ββββββββββββββββββ
β β
βΌ βΌ
ββββββββββββββββ ββββββββββββββββ
β STAGE 5 β β STAGE X β Did not survive.
β AWAITING β β FAILED β Could not be rescued.
β ADOPTION β β (ε·²η»ζ) β Escaped / lost.
β (εΎ
ι’ε
») β ββββββββββββββββ
ββββββββ¬ββββββββ
β An adopter applies and is approved
βΌ
ββββββββββββββββ
β STAGE 6 β Animal has a forever home.
β ADOPTED β Adopter posts "first day home".
β (ε·²ι’ε
») β Case archived with full history.
ββββββββββββββββ
| Stage | Reporter | Volunteer (Rescuer) | Shelter Staff | Adopter | Guest / Casual User |
|---|---|---|---|---|---|
| 0. Discovery | Submits report | β | β | β | Can browse knowledge base |
| 1. Pending | Tracks progress, can add info | Claims case, asks questions | Browses cases, can claim | β | Sees case on map/list |
| 2. In Progress | Watches updates | Executes rescue, posts updates | Can offer transport / support | β | Views rescue progress |
| 3. Treated | Watches medical updates | Uploads medical records | Provides vet contacts | β | Views medical timeline |
| 4. Recovering | Follows recovery | Posts progress photos | Approves adoption readiness | β | Views recovery photos |
| 5. Awaiting Adoption | Sees case is adoptable | Helps screen applicants | Reviews applications | Browses & applies | Views adoption listing |
| 6. Adopted | Receives "mission complete" notification | Invited to write story | Case archived | Posts home photo, writes story | Reads rescue story |
Bold = primary actor for that stage. A regular user who reports becomes the Reporter role. An unregistered passerby is a Guest.
PaHaven does NOT ask users to "pick a role" at registration. Everyone registers as a single User. What they can do depends on their access tier β which is progressive:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β GUEST β
β (Not logged in. Arrived via link, search, or homepage.) β
β β
β CAN: β
β β’ Browse the homepage map/list of pending rescue cases β
β β’ View any rescue case detail + full timeline β
β β’ Browse adoption listings β
β β’ Read knowledge base articles β
β β’ Read rescue stories β
β β
β CANNOT: β
β β’ Submit a report (must register first) β
β β’ Claim a case β
β β’ Comment, follow, or interact β
β β’ Apply to adopt β
ββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββ
β Register (email or social login)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β REGISTERED USER β
β (Logged in. Has a profile. Default tier.) β
β β
β Everything Guest CAN, PLUS: β
β β
β β’ Submit a stray animal report β becomes the REPORTER β
β β’ Follow any rescue case β get notified of status changes β
β β’ Comment on rescue cases + stories β
β β’ "Like" stories and cases β
β β’ Bookmark knowledge articles β
β β’ Apply to adopt an animal (submits application to shelter) β
β β’ View personal profile (my reports, my follows, my apps) β
β β
β CANNOT: β
β β’ Claim a rescue case (must opt into volunteer tier first) β
β β’ Update case status β
ββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββ
β Opt-in: Complete volunteer profile
β (set location, capabilities, availability)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β VOLUNTEER (Registered + Opt-in) β
β (Has completed volunteer onboarding. Capability profile.) β
β β
β Everything Registered User CAN, PLUS: β
β β
β β’ Claim pending rescue cases β
β β’ Update case status (only for cases they claimed) β
β β’ Receive push notifications for nearby new cases β
β β’ Post rescue progress updates (photos + text) β
β β’ Upload medical records β
β β’ Request assistance from other volunteers β
β β’ Mark a case as ready for adoption β
β β’ Earn volunteer achievements and stats β
β β’ Be thanked by reporters and adopters β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
A single user account can do ALL of the above simultaneously:
- Alice is a Registered User who reports a stray cat (now she's a Reporter for that case)
- Alice also opted into Volunteer tier, so she can claim rescue cases
- Alice later applies to adopt a dog β now she's also an Adopter
The system tracks these per-case or action-based roles. There is no profile setting that says "I am only a Reporter." The user is simply a User; what they can do depends on their tier.
| Area | Guest | Registered User | Volunteer |
|---|---|---|---|
| Map/List of pending cases | β Full view | β Full view | β Full view + distance + urgency badges |
| "Report a stray" CTA | β Button β prompts login | β Active button | β Active button |
| Nearby pending cases (personalized) | β No personalization | β Based on saved city | β Based on GPS + volunteer radius pref |
| "Cases you're following" section | β | β Shows followed cases | β Shows followed cases |
| "Cases you claimed" quick access | β | β | β Quick action panel |
| New case push notifications | β | β (opt-in via follow) | β Automatic for nearby urgent cases |
| Adoptable animals | β Public listings | β Public + "apply" button | β Same as registered |
| Knowledge base | β Full access | β Full + bookmark | β Full + bookmark |
| Stories | β Full access | β Full + like/comment | β Same as registered |
A person spots a stray animal.
Could be anyone.
βββββββββββ΄βββββββββββββ
β β
βΌ βΌ
They know PawHaven? They don't know PawHaven?
β β
βΌ βΌ
Open app β Report They search "how to help stray
β animal near me" β Find PawHaven
β via search / social share β
β Land on homepage as Guest β
β See existing cases nearby β
β "Oh, I can report too!" β
β Register β Report
β β
ββββββββββββ¬ββββββββββββ
βΌ
THE REPORT WIZARD
(6 steps, mobile-first)
This is the single most critical form in the entire product. It must work for someone stressed, in a hurry, possibly outdoors, with one hand on a phone.
Step 1: PHOTOS Step 2: LOCATION Step 3: ANIMAL TYPE
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Take or upload β β GPS auto-fetched β β β Cat β
β 1-5 photos. β β Address shown β β β Dog β
β First = cover. β β (editable). β β β Other: [____] β
β β β Pin on map β β β
β [Tap to capture] β β draggable. β β Count: [1] β
β β β β β β
β Required β
β β Required β
β β Required β
β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
Step 4: CONDITION Step 5: URGENCY Step 6: CONFIRM
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Appearance: β β Structured Q's: β β βββββββββββββββ β
β β’ Coat color β β β β β Case summary β β
β β’ Approx size β β β‘ Bleeding? β β β Photo Β· Type β β
β β β β‘ Cannot move? β β β Β· Location β β
β Behavior: β β β‘ In danger zone β β β Β· Urgency β β
β β Friendly β β (road/highway) β β βββββββββββββββ β
β β Wary/avoidant β β β‘ Breathing β β β
β β Aggressive β β difficulty? β β Your contact? β
β β β β β (optional) β
β Optional β β Any YES β Urgent β β β
βββββββββββββββββββ βββββββββββββββββββ β [Submit Report] β
βββββββββββββββββββ
The reporter sees a confirmation screen β not a cold "Success" toast:
ββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β π Thank you for reporting! β
β β
β We've notified X volunteers and Y shelters β
β near Garden Road, Chaoyang District. β
β β
β ββββββββββββββββββββββββββββββββββββββββ β
β β Case #PAW-0421 β "Injured White Cat" β β
β β Status: π‘ Pending β Awaiting rescue β β
β β Reported: Just now β β
β ββββββββββββββββββββββββββββββββββββββββ β
β β
β [π± Track this case's progress] β
β β
β While you wait: β
β β’ π Read: "What to do when you find an β
β injured animal" (from our knowledge base) β
β β’ π We'll notify you when someone claims β
β this case β
β β
β Want to help more? [Become a Volunteer β] β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββ
Simultaneously, the system:
- Creates the case in the database with status =
PENDING - Geocodes the location β determines city, district, and approximate radius area
- Matches volunteers within the configurable radius who:
- Have "Online" volunteer status
- Can handle this animal type (Cat / Dog / Small animal)
- Are within their own notification radius setting
- Sends push notifications to matched volunteers:
- Normal urgency: "A stray cat needs help 2.1km from you"
- Urgent:
"π¨ URGENT: Injured cat needs immediate help 2.1km from you"(with critical alert sound)
- Pushes the case to the public homepage map and list β visible to EVERYONE
- Starts an escalation timer: if not claimed within 24 hours (or 2 hours for urgent), escalate
The case appears on the public homepage in two views:
Map View:
βββββββββββββββββββββββββββββββββββββββββββ
β πΊοΈ Map (leaflet / Mapbox) β
β β
β π Pine Rd β
β π± (urgent) β
β β
β π Oak Ave π 5th St β
β π π± β
β β
β [List View] [Map View] Filters: βΎ β
βββββββββββββββββββββββββββββββββββββββββββ
- Blue dot = normal pending case
- Red pulsing dot = urgent pending case
- Tapping a dot shows a mini-card with photo + animal type + distance
List View:
ββββββββββββββββββββββββββββββββββββββββββββ
β Pending Rescue Cases β
β βββββββββββββββββββββββββββββββββββββββββ
β β [photo] π± Injured White Cat ββ
β β Garden Road Β· 2.1km away ββ
β β π‘ Pending Β· 5 min ago ββ
β β Urgency: High π¨ ββ
β βββββββββββββββββββββββββββββββββββββββββ
β βββββββββββββββββββββββββββββββββββββββββ
β β [photo] π Brown Dog ββ
β β Oak Avenue Β· 3.5km away ββ
β β π‘ Pending Β· 23 min ago ββ
β β Urgency: Normal ββ
β βββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββ
After submitting, the reporter sees this case in two places:
- Post-submit confirmation screen (shown above)
- Profile β "My Reports" β a dashboard of all cases they've reported
ββββββββββββββββββββββββββββββββββββββββββββ
β MY REPORTS β
β β
β Case #PAW-0421 β
β π± Injured White Cat β
β Garden Road Β· Reported 2 hours ago β
β Status: π‘ PENDING β
β "We've notified 12 volunteers near you" β
β β
β [View Full Timeline] β
β [Add More Information] β
ββββββββββββββββββββββββββββββββββββββββββββ
The reporter can add more information at any point while the case is pending β more photos, better description, correction of location.
A volunteer receives a push notification (if within radius):
"A stray cat needs help near Garden Road (2.1km away)"
or
"π¨ URGENT: Injured cat β Garden Road (2.1km away)"
Tapping it opens the case detail page, which for a volunteer includes:
ββββββββββββββββββββββββββββββββββββββββββββ
β π± Injured White Cat β
β Garden Road, Chaoyang District β
β π‘ Pending Β· Reported 5 min ago β
β Urgency: π¨ HIGH β
β β
β [Photo 1] [Photo 2] [Photo 3] β
β β
β Description: β
β "White cat with injured right hind β
β leg. Hiding under a parked car near β
β the bus stop. Seems wary of people." β
β β
β Animal: Cat Β· Adult Β· White β
β Behavior: Wary/Avoidant β
β Location: π Garden Road (approx) β
β β
β Reported by: Anonymous Reporter β
β β
β ββββββββββββββββββββββββββββββββββββββ β
β β CURRENTLY 0 VOLUNTEERS CLAIMED β β
β β β β
β β [π I'LL RESCUE THIS ANIMAL] β β
β β (Claim this case) β β
β β β β
β β Or: [Ask a Question] [Share] β β
β ββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββ
When a volunteer clicks "I'll Rescue This Animal":
-
Confirmation dialog:
βββββββββββββββββββββββββββββββββββ β Claim "Injured White Cat"? β β β β By claiming, you are committingβ β to: β β β’ Go to the location β β β’ Attempt to rescue the animal β β β’ Post status updates β β β’ Transfer to vet/shelter if β β needed β β β β [Yes, I'm on it] [Cancel] β βββββββββββββββββββββββββββββββββββ -
Case status changes:
PENDINGβIN_PROGRESS -
Everyone sees the update:
- The claimer's name appears on the case: "Rescued by: Li Ming (Volunteer, 12 rescues)"
- Other volunteers see: "1 volunteer handling this case" β they can still offer to Assist
- The reporter receives a notification: "Li Ming has claimed your case and is on the way!"
-
The claimed case moves to a different section on the homepage:
- Map: dot changes from yellow to blue
- List: moves from "Pending" to "In Progress" tab
Escalation timeline:
| Time Since Report | Normal Urgency | Urgent |
|---|---|---|
| 0 min | Push to nearby volunteers | Push to nearby volunteers (critical alert) |
| 30 min | β | Push to wider radius |
| 2 hours | Push to wider radius | Push to ALL volunteers in city |
| 24 hours | Push to ALL volunteers in city | Auto-escalate to partner shelters |
| 48 hours | Auto-escalate to partner shelters | Platform admin reviews manually |
At any point, the reporter can also share the case link on social media to crowdsource help.
Only the volunteer who claimed the case (or a shelter staff member who claimed it) can advance the status.
An assistant volunteer can post comments and upload photos, but cannot change the status.
After claiming, the rescuer is expected to:
- Arrive at the location (travel time varies)
- Post an arrival update: "I'm at Garden Road. Can see the cat under the third parked car. Preparing the carrier."
- Execute the rescue β this may involve:
- Direct capture (animal is friendly, can be picked up)
- Trapping (requires trap cage, may take hours/days)
- Coordinating with property management (animal in a locked area)
- Calling for backup (animal is aggressive or large) β "Request Assistance" button
- Post rescue complete update: "Cat secured in carrier. Transporting to Love Pet Clinic."
- Advance status to
TREATED
The reporter follows the rescue via:
-
Push notifications for each update:
- "Li Ming has arrived at the location"
- "Li Ming posted a new photo"
- "The cat has been safely secured!"
-
The case timeline (accessible from their profile):
ββββββββββββββββββββββββββββββββββββββββββββ
β Rescue Timeline: Injured White Cat β
β β
β TODAY, 14:30 β
β π΅ IN PROGRESS β
β Cat secured in carrier. Transporting β
β to Love Pet Clinic. β
β πΈ [photo of cat in carrier] β
β β Li Ming, Volunteer β
β β
β TODAY, 14:00 β
β π΅ IN PROGRESS β
β I'm at Garden Road. Located the cat β
β under the third parked car near the β
β bus stop. Preparing carrier. β
β β Li Ming, Volunteer β
β β
β TODAY, 08:15 β
β π‘ PENDING β
β Case reported by you. β
ββββββββββββββββββββββββββββββββββββββββββββ
Anyone browsing the homepage can click into the case and see the same timeline β minus private contact details. This transparency is the foundation of trust for the platform.
The rescuer (or shelter staff) advances the case to TREATED and uploads:
ββββββββββββββββββββββββββββββββββββββββββββ
β Update: Medical Treatment β
β β
β Facility: Love Pet Clinic, Chaoyang β
β β
β Treatment received: β
β β Wound cleaning and bandaging β
β β Rabies vaccine β
β β Deworming β
β β Blood test β
β β Surgery: ___________ β
β β
β Medical notes: β
β "Right hind leg has a 3cm laceration. β
β No fracture confirmed by X-ray. β
β Expected recovery: 2-3 weeks." β
β β
β Cost (optional, for transparency): β
β Β₯680 β [View Breakdown] β
β β
β πΈ Upload medical documents / receipts β
β [Upload Photos] β
β β
β [Save & Advance to Treated] β
ββββββββββββββββββββββββββββββββββββββββββββ
- The case now has verified medical records β this establishes the animal's health baseline
- Future adopters can see exactly what medical care was received
- The health record is immutable and timestamped (prevents later disputes about health status)
After initial treatment, the animal is placed in a recovery environment:
- Shelter/facility β managed by a partner shelter
- Foster home β managed by a volunteer foster
The rescuer or shelter staff advances to RECOVERING and specifies:
Recovery Location:
β Happy Paws Shelter (partner)
β Foster Home: [Volunteer Name]
β Other: ___________
Expected recovery duration: [2 weeks]
The caretaker (shelter staff or foster volunteer) posts periodic updates:
ββββββββββββββββββββββββββββββββββββββββββββ
β Recovery Update β Day 5 β
β β
β "Wound is healing well. Stitches removed β
β today. White Cat is eating normally and β
β has started to purr when petted. She's β
β much calmer now." β
β β
β πΈ [Photo of cat resting] β
β β
β Weight: 3.2kg (up from 2.8kg) β
ββββββββββββββββββββββββββββββββββββββββββββ
When the caretaker deems the animal physically recovered, they complete a behavioral assessment:
| Trait | Assessment | Notes |
|---|---|---|
| Temperament | Gentle / Playful / Independent / Timid | |
| Human interaction | Seeks attention / Tolerates / Avoids | |
| Other animals | Friendly / Indifferent / Reactive / Not tested | |
| Children | Suitable / Caution / Not tested | |
| Leash trained (dogs) | Yes / In progress / No | |
| Litter trained (cats) | Yes / In progress / No | |
| Special needs | None / Medication / Diet / Mobility aid / Other | |
| Adoption suitability | β
Ready for adoption / |
This becomes the adoption profile and is visible to adopters.
When:
- Physical recovery is confirmed
- Behavioral assessment is complete
- Vaccinations are up to date
- The animal has been spayed/neutered (or a commitment is in place)
β The caretaker advances the case to AWAITING_ADOPTION.
Once marked AWAITING_ADOPTION, the case automatically appears on the Adoption page:
ββββββββββββββββββββββββββββββββββββββββββββ
β π ADOPTABLE ANIMALS β
β β
β βββββββββββββββββββββββββββββββββββββββββ
β β [photo] π± White Cat ββ
β β Adult Β· Female Β· 1 year ββ
β β Happy Paws Shelter Β· Chaoyang ββ
β β β³ Waiting 3 days ββ
β β Tags: Gentle, Litter-trained ββ
β βββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββββββββββββββββββββββββββββββββββββ
β β [photo] π Brown Dog ββ
β β Adult Β· Male Β· 2 years ββ
β β Sunshine Shelter Β· Haidian ββ
β β β³ Waiting 12 days ββ
β β Tags: Playful, Leash-trained ββ
β βββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββ
β π± White Cat β Available for Adoption β
β Happy Paws Shelter Β· Chaoyang District β
β β
β [Photo Gallery: 5 recovery photos] β
β β
β βββ QUICK INFO βββ β
β Age: ~1 year Sex: Female (spayed) β
β Breed: Domestic Shorthair β
β Weight: 3.5kg β
β β
β βββ TEMPERAMENT βββ β
β Gentle, seeks human attention. β
β Good with other cats. Litter-trained. β
β Suitable for families with children. β
β β
β βββ MEDICAL RECORDS βββ β
β β
Rabies vaccine (June 1) β
β β
Deworming (June 1) β
β β
Spayed (June 15) β
β β
Blood test β negative for FIV/FeLV β
β β
β βββ FULL RESCUE HISTORY βββ β
β βΆ See complete timeline (6 stages) β
β From discovery on Garden Road to β
β recovery at Happy Paws Shelter. β
β β
β βββ RESCUER INFO βββ β
β Rescued by: Li Ming (π
12 rescues) β
β Sheltered by: Happy Paws Shelter β
β β
β [π Apply to Adopt] β
β [π Follow This Animal] β
ββββββββββββββββββββββββββββββββββββββββββββ
When the adopter clicks "Apply to Adopt":
ββββββββββββββββββββββββββββββββββββββββββββ
β Adoption Application: White Cat β
β β
β βββ ABOUT YOU βββ β
β Name: [________] Phone: [________] β
β β
β Housing type: β
β β Own house β Rented apartment β
β β Own apartment β Other β
β β
β Do you have a fenced yard/balcony? β
β β Yes, secured β Yes, not secured β
β β No β
β β
β Household members: β
β β‘ Adults only β‘ Children under 12 β
β β‘ Children 12+ β‘ Elderly β
β β
β βββ PET EXPERIENCE βββ β
β Have you owned pets before? β
β β Yes, currently have pets β
β β Yes, had before but not now β
β β No, first time β
β β
β If currently have pets, please describe: β
β [___________________________________] β
β β
β βββ YOUR MOTIVATION βββ β
β Why do you want to adopt White Cat? β
β [___________________________________] β
β β
β βββ HOME ENVIRONMENT βββ β
β Upload photos of your home (optional): β
β [Upload Photos (1-3)] β
β β
β β οΈ Adoption is a 15+ year commitment. β
β Please consider carefully before β
β applying. β
β β
β [Submit Application] β
ββββββββββββββββββββββββββββββββββββββββββββ
The shelter (or managing volunteer) receives the application and follows a review workflow:
Application received β Review β Interview/Chat (in-app messaging)
β
βββ APPROVE β Schedule transfer β Adopter signs agreement
β β
β βΌ
β Case β ADOPTED
β
βββ PENDING β Request more info from adopter
β
βββ REJECT β Provide reason (with kindness)
Adopter can apply for other animals
When the shelter approves the adoption:
- Adoption agreement is signed (digital or physical)
- Animal transfer happens β the adopter picks up the animal
- The shelter marks the case
ADOPTED
Immediately:
- The reporter receives a notification: "The White Cat you reported on Garden Road has been adopted! π "
- The rescuer(s) receive: "White Cat has found a forever home. Thank you for your rescue!"
- All followers of the case receive the adoption notification
The Adopter can:
- Post a "First Day Home" photo β this is added to the timeline
- Keep a "New Home Diary" (optional) β periodic updates visible to the shelter
The System triggers:
- Auto-invitation to write a Rescue Story for the rescuer and/or adopter
- Case archived as a completed rescue β full timeline preserved permanently
Case marked ADOPTED
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββ
β SYSTEM INVITATION β
β "White Cat's rescue journey is complete! β
β Would you share her story?" β
β β
β Sent to: Rescuer & Adopter β
ββββββββββββββββ¬ββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββ
β STORY EDITOR (structured + freeform) β
β β
β Title: [_____________________________] β
β β
β Before/After comparison: β
β [Before photo] β [After photo] β
β (auto-suggested from rescue timeline) β
β β
β Story body (rich text): β
β [___________________________________] β
β β
β Auto-embedded stats: β
β β’ Rescue duration: 32 days β
β β’ 1 reporter + 2 volunteers helped β
β β’ Medical costs: Β₯680 β
β β
β Tags: [ #InjuredRescue #WhiteCat β
β #HappyEnding #Adopted ] β
ββββββββββββββββββββββββββββββββββββββββββββ
These stories appear on the homepage Featured Stories carousel and feed the platform's emotional engine.
Not every rescue ends in adoption. The system must handle non-happy endings with dignity.
The case can be marked FAILED by the rescuer at any point after claiming if:
- The animal did not survive (found deceased, or passed during treatment)
- The animal could not be found at the reported location
- The animal escaped during rescue or recovery
- Rescue was impossible (dangerous location, aggressive behavior beyond safe handling)
What happens:
- The rescuer records the reason (factual, no blame language)
- They can choose to show or hide detailed reason from public view
- The case timeline freezes at the last active stage
- A respectful status message is shown: "This rescue could not be completed. We're grateful to everyone who tried."
- The rescuer receives an emotional support message with links to resources
- Supportive comments are allowed; blaming comments are moderated
If multiple people report the same animal, a volunteer or admin can merge cases:
- The newer case is marked
DUPLICATEand links to the primary case - The duplicate reporter is notified: "Thank you for reporting! Someone else also spotted this animal β you can follow the rescue here [link]."
If a case is determined to be invalid (false information, animal is actually owned, etc.), an admin can mark it CANCELLED with a reason visible internally.
Purpose: Professionally curated educational content that lowers the barrier for everyone to participate.
Where it appears:
- Post-report recommendation: After someone submits a report, show relevant guides ("What to do when you find an injured cat")
- Volunteer toolkit: When a volunteer claims a case, show "Rescue checklist" and "First aid basics"
- Adopter education: When someone applies to adopt, show "New pet at home: the first 7 days"
- Standalone browsing: Searchable, categorized knowledge base accessible from homepage
Content categories:
βββ π¨ Emergency Situations (what to do immediately)
βββ π± Feline Rescue (kitten care, TNR, common illnesses)
βββ π Canine Rescue (safety, distemper/parvo, large dog handling)
βββ π Rescue Process (checklists, legal info, organization contacts)
βββ π Adoption & Placement (screening, introduction to home)
βββ π‘ Experience Sharing (veteran rescuer insights)
Quality control: All medical advice must be reviewed by a certified vet. Articles are labeled "Professional Medical Knowledge" vs "Community Experience."
Matching algorithm (simplified):
- New case created β get GPS coordinates
- Query volunteers where:
volunteer.status = ONLINEdistance(case_location, volunteer_location) <= volunteer.notification_radiusvolunteer.animal_specialty IN (case.animal_type, 'ALL')
- Rank by: proximity + response history + experience level
- Send tiered push notifications (urgent cases get critical alerts)
- First-come-first-claim β first volunteer to click "Claim" gets the case
Escalation rules:
| Case Urgency | First Notification | Escalation 1 | Escalation 2 |
|---|---|---|---|
| Normal | 5km radius | 15km at 24h | City-wide at 48h |
| Urgent | 10km radius | City-wide at 2h | Partner shelters at 6h |
Every user's profile aggregates all their contributions:
PROFILE: Alice
βββ π MY DATA
β βββ Cases I reported: 3 (2 successfully rescued)
β βββ Rescues I participated: 8
β βββ Animals I adopted: 1
β βββ Stories I wrote: 2 (48 likes)
β
βββ π
ACHIEVEMENTS (lightweight badges)
β βββ π° "First Report"
β βββ π° "First Rescue"
β βββ β "Rescue Pro" (10+ rescue participations)
β βββ π "Storyteller" (3+ rescue stories)
β βββ π "Community Hero" (received 5+ thank-you notes)
β
βββ π ACTIVITY FEED
β βββ Cases I'm following
β βββ My cases' status updates
β βββ Bookmarked knowledge
β
βββ βοΈ SETTINGS
βββ Notification preferences
βββ Volunteer settings (Online / Away / Off, radius, animal types)
βββ Privacy (which data is public)
Achievements serve three purposes:
- Identity anchoring β "I've helped 8 animals" is a real identity
- New user onboarding β achievements guide users to try platform features
- Trust credential β adopters trust rescuers with the "Rescue Pro" badge
More reports β More animals visible
β
βΌ
More animals rescued (volunteer network)
β
βΌ
More animals ready for adoption
β
βββββββββ΄ββββββββ
βΌ βΌ
More adoptions More rescue stories
β β
βββββββββ¬ββββββββ
βΌ
Emotional impact β Word of mouth β New users
β
βΌ
More reporters + volunteers + adopters
β
βΌ
(Back to start β flywheel spins)
| Feature | Priority | Why |
|---|---|---|
| Guest browsing (homepage map + list) | P0 | Without visibility, no volunteers can help |
| Stray reporting wizard (6 steps) | P0 | Entry point β no reports, no platform |
| Case detail page + timeline | P0 | Rescue transparency = platform trust |
| 7-stage status machine | P0 | The backbone β defines the entire workflow |
| Volunteer opt-in + capability profile | P0 | Must exist for claiming to work |
| Volunteer case claiming | P0 | Core collaboration action |
| Case status updates by rescuer | P0 | Progress must be shareable |
| Basic user registration/login | P0 | Need identity for reporting + claiming |
| Push notifications for volunteers | P0 | Without notifications, volunteers won't respond |
| Reporter tracking (My Reports) | P1 | Essential for reporter satisfaction |
| Follow a case | P1 | Drives return visits |
| Profile page (basic) | P1 | Shows user activity summary |
| Phase | Timeline | Focus |
|---|---|---|
| Phase 2: Activate Network | Month 3-6 | Knowledge base, volunteer achievements, wider notification logic, shelter onboarding |
| Phase 3: Emotional Engine | Month 6-9 | Rescue stories, adoption matching with applications, full achievement system |
| Phase 4: Ecosystem | Month 9-12 | Shelter admin dashboard, analytics, open API, regional resource directory |
-
Mobile-first: Reporters and volunteers operate on phones, often outdoors. Every core flow must work on mobile first.
-
Progressive tier access: Guest β Registered β Volunteer. No one is locked out of information; actions require appropriate permissions.
-
Transparency builds trust: Every status change is timestamped and attributed. The full rescue timeline is public. This is what makes adopters trust the animal's history.
-
Safety-first: Never expose exact GPS (show approximate area). Never expose phone numbers (in-app messaging only). Animal location is fuzzed after rescue completion.
-
Emotional safety: Failed cases are treated with respect. No blame language is allowed in comments toward reporters or rescuers. Emotional support resources are available for rescuers.
-
Information authenticity: Reports require photos. Volunteer verification is optional (lower barrier). Medical records are immutable.
-
One user, many roles: A single account can report, rescue, and adopt. The system tracks actions per case, not persona per user.
Next step: Based on this product blueprint, proceed to UI/UX design phase β produce page designs and interaction prototypes for each stage of the animal lifecycle.