Inspiration

This project was born from heartbreak. Two years ago, I lost my 7-month-old Golden Retriever. For two months, I lived through every pet owner's worst nightmare: Riding my electric scooter through empty streets before dawn, calling his name Visiting police stations to review security footage, frame by frame Plastering neighborhoods with "Lost Dog" posters in the rain Refreshing online forums every hour, desperate for any lead

The worst part? I found out too late. Someone had posted a photo of my dog online—but I didn't see it in time. By the time I discovered the post buried in a local forum, the critical 48-hour window had closed. That moment of "what if" haunts me still. I realized the problem wasn't a lack of good Samaritans—people were trying to help. The problem was fragmentation. Lost dog posts scattered across WeChat groups, Facebook pages, neighborhood apps, shelter databases—all disconnected islands of information. A kind stranger and a desperate owner, ships passing in the digital night.

My story isn't unique. Every year, millions of dogs face parallel crises: Lost pets slip through the cracks when there's no coordinated system to match found strays with desperate owners. Pet owners struggle to find safe, compatible playmates for their dogs, often leading to awkward or even dangerous encounters at dog parks. Shelters overflow with adoptable dogs that never reach the right families

We asked ourselves: What if AI could understand dogs the way it's learning to understand humans? What if we could analyze a dog's personality from a 10-second video clip? What if machine vision could reunite a lost puppy with its family in hours instead of weeks? What if no owner ever had to experience what I went through?

Google's Gemini multimodal AI made this vision possible. Inspired by this technology, we named our project Goodle—a fusion of "Google" and "Good." It represents our ambition to apply Google's world-class search capabilities to a "Good" cause: animal welfare. We thought: if we can Google any fact in an instant, why can't we "Goodle" a lost family member just as fast? It is both a tribute to the technology that powers us and a promise to every "Good Boy" and "Good Girl" out there.

We set out to build Goodle—a unified platform where: Citizens can instantly report strays with a photo + GPS pin. Owners post lost dog alerts that get matched against every stray sighting automatically. AI vision does the heavy lifting—comparing coat patterns, unique markings, breeds across hundreds of photos in seconds. Real-time alerts notify owners the moment a potential match is found. No more missed posts. No more waiting for someone to make the connection. Just AI working 24/7 to bring families back together.

And beyond reunification, Goodle helps dogs thrive—finding compatible playmates through behavioral AI, and connecting adoptable dogs with their perfect forever homes. This is personal. This is for every owner who's felt that crushing helplessness.

This is Goodle—a platform where every dog gets understood, matched, and found.

What it does

Goodle is a comprehensive AI-powered platform with three core features:

  1. Pet Social - Smart Playmate Matching Like Bumble, but for dogs. Goodle uses Gemini's vision and video analysis to create rich behavioral profiles: Photo Recognition: Upload a dog photo → Gemini identifies breed, size, age, coat type, and appearance traits with 90%+ accuracy Video Behavior Analysis: Upload a 10-second social interaction video → Gemini scores: Energy level (0-10): Activity intensity and exercise needs Sociability (0-10): Approach speed toward unfamiliar dogs Emotional resilience (0-10): Recovery time after interruptions Play style: Chase-oriented vs. wrestling-focused Body language (0-10): Tail, ear, and posture relaxation signals Intelligent Matching Algorithm: Combines static traits (breed, size, vaccination) and dynamic behavior scores to recommend compatible playmates Swipe Interface: Browse potential matches, swipe right to like—when both dogs match, owners can chat and schedule playdates Mathematical Model: The compatibility score $S$ between two dogs $A$ and $B$ is computed as: $$ S(A,B) = 0.3 \cdot C_{size}(A,B) + 0.4 \cdot C_{personality}(A,B) + 0.3 \cdot C_{energy}(A,B) $$ Where: $C_{size}$ penalizes large size mismatches: $C_{size} = 1 - \frac{|size_A - size_B|}{max_size_diff}$ $C_{personality}$ measures temperament alignment across 5 dimensions $C_{energy}$ uses activity level distance: $C_{energy} = 1 - \frac{|energy_A - energy_B|}{10}$

    1. Dog Finder - AI-Powered Lost & Found A dual-purpose map system connecting lost pet owners with good Samaritans: Stray Reporting: Citizens snap a photo of a stray, mark GPS location, add description → appears as red pin on city map. Lost Dog Posts: Owners upload missing dog photos, last seen location, time → appears as blue pin Gemini Vision Matching: When a lost dog is posted, AI automatically compares against all stray reports: Breed consistency. Coat color and pattern similarity Body size and build Unique markings (collars, scars, distinctive spots) Temporal-spatial proximity (time/location overlap) Instant Alerts: When similarity score exceeds 70%, owner receives notification with potential matches.
  2. Adoption Plaza A showcase for homeless dogs seeking families: Browse adoptable dogs with rich profiles Filter by breed, age, size, temperament View detailed health status and adoption requirements Connect directly with shelters or foster homes

How we built it

Architecture Overview ┌─────────────────────────────────────────┐ │ Frontend (React) │ │ Swipe UI · Map Integration · Chat │ └──────────────┬──────────────────────────┘ │ REST API ┌──────────────┴──────────────────────────┐ │ Backend (Python FastAPI) │ │ Auth · Matching · Geolocation · Chat │ └──────────────┬──────────────────────────┘ │ ┌───────┴────────┐ │ │ ┌──────▼─────┐ ┌─────▼──────────────┐ │ Database │ │ Gemini API │ │ (SQLite) │ │ · Vision (photo) │ │ │ │ · Video analysis │ │ │ │ · Image matching │ └────────────┘ └────────────────────┘ Tech Stack Frontend: React with React Router for SPA navigation Tailwind CSS for responsive design React Swipeable for card swipe gestures Google Maps API for geolocation features Axios for HTTP requests Backend: Python 3.10+ with FastAPI framework SQLAlchemy ORM for database management Pydantic for request/response validation Geopy for geocoding and distance calculations JWT for authentication (simplified for demo) AI Layer: Google Gemini Pro Vision for image recognition Google Gemini Pro for video analysis Custom prompt engineering for structured JSON outputs OpenCV (optional) for video preprocessing Database Schema: -- Core tables users (id, email, password_hash, created_at) pets (id, user_id, name, breed, size, age, photos, video_url, ai_tags) pet_behaviors (pet_id, energy, sociability, resilience, play_style, body_language) swipes (id, user_id, target_pet_id, action, timestamp) matches (id, pet1_id, pet2_id, created_at) messages (id, match_id, sender_id, content, timestamp)

-- Lost & Found stray_reports (id, photo, lat, lng, address, description, report_time) lost_dogs (id, user_id, photo, breed, description, lost_time, lost_lat, lost_lng)

-- Adoption adoption_posts (id, photo, breed, age, health_status, requirements, contact) Development Workflow

Key Implementation Details Gemini Prompt Engineering Example (Photo Recognition): prompt = """ Analyze this dog photo and return a JSON object with: { "breed": "primary breed (or mix description)", "size": "small/medium/large", "age_group": "puppy/adult/senior", "coat_type": "short/medium/long", "coat_color": "primary color and patterns", "distinctive_features": ["list", "of", "unique", "traits"], "temperament_guess": "breed-typical personality traits" }

Be precise. If mixed breed, identify top 2 probable breeds. """ Video Analysis Prompt: prompt = """ Watch this 10-second dog social interaction video. Score 0-10 for each:

  1. ENERGY_LEVEL: Movement frequency and intensity 0 = barely moves, 10 = constantly running/jumping

  2. SOCIABILITY: Approach speed toward other dogs 0 = avoidant/fearful, 10 = immediately friendly

  3. EMOTIONAL_RESILIENCE: Recovery time after disruption 0 = stays stressed long, 10 = instantly bounces back

  4. PLAY_STYLE: "chase" or "wrestle" (primary preference)

  5. BODY_LANGUAGE: Overall relaxation 0 = ears back, tail tucked, stiff, 10 = loose, waggy, ears neutral

Return JSON only. No markdown. """

Challenges we ran into

  1. Gemini API Rate Limits & Cost Problem: During initial testing, we hit rate limits quickly when batch-processing 20 dog videos for demo data. Solution: Implemented request queuing with exponential backoff Cached AI results in database to avoid repeated API calls

  2. Image Matching False Positives Problem: Gemini sometimes matched different dogs with similar coats (e.g., two yellow labs). Solution: Enhanced prompts to focus on unique identifiers: "Ignore general breed similarity—focus on scars, collar color, ear shape asymmetry" Added temporal-spatial filter: Only match if lost time ± 3 days and location within 10km Required similarity score >70% threshold before alerting owner Displayed top 3 matches for human verification rather than auto-confirming

  3. Swipe Gesture Conflicts Problem: Vertical scrolling on mobile triggered accidental horizontal swipes. Solution: Increased swipe threshold to 50px horizontal movement Added velocity detection: Fast swipes = intentional, slow drags = scrolling Locked vertical scroll when horizontal swipe detected Added visual feedback (card tilt angle) before commit

What we learned

  1. Prompt Engineering is an Art: We went through 15+ iterations on our video analysis prompt. Key learnings: Specificity matters: "Score energy level" → "Count jumps and running duration" Output format enforcement: "Return JSON" + temperature 0.3 = consistent structure Few-shot examples beat long instructions

  2. API Design for AI Uncertainty: Always include confidence scores in responses Provide fallback paths when AI fails (manual tag entry) Cache aggressively—AI calls are slow and expensive

  3. Dog Behavior Complexity: Energy level ≠ sociability (some dogs are high-energy but shy) Play style preferences are real (chase vs. wrestle compatibility matters) Size matching isn't just weight—it's about play intensity

What's next for Goodle

  1. Enhanced AI Capabilities Emotion Detection: Expand body language analysis to detect stress, fear, excitement in real-time Multi-dog Video Support: Analyze pack dynamics when 3+ dogs interact. Breed-specific Traits: Fine-tune prompts per breed (e.g., herding dogs need mental stimulation, not just physical exercise).

  2. Community Features Dog Park Check-ins: See which dogs are at your local park right now Event Planning: Organize group walks, playdates, training sessions

  3. Safety & Trust Vaccination Verification: Integrate with vet clinic APIs for auto-verified health records Background Checks: Optional owner verification through identity services Incident Reporting: Track dog park conflicts to improve matching algorithm

  4. Expansion to Cats Cats have different social needs—adapt behavior analysis for: Indoor vs. outdoor temperament, Solo vs. multi-cat household compatibility, Prey drive assessment

  5. Hardware Integration Smart Collar Partnership: Real-time GPS tracking for lost pet alerts Wearable Sensors: Collect long-term activity data to improve behavioral profiles

  6. AI-Generated Training Plans Based on personality assessment, create custom training curricula: Shy dog → confidence-building exercises High-energy dog → agility training recommendations Aggressive tendencies → professional behaviorist referral

Built With

Share this project:

Updates