💡 Inspiration

Sequoia Humane Society shared a common challenge: too many pets, not enough personalized adoption. Their manual process for matching adopters and scheduling visits was inefficient, leading to longer stays for pets and missed connections with potential adopters. I was inspired to build a smarter system that could streamline operations and make adoption more meaningful.

🔍 What It Does

PetMatch uses a machine learning–based recommendation engine to pair adopters with compatible pets based on questionnaire responses. It offers:

  • Real-time visit scheduling and confirmation
  • Admin dashboard for managing pets and adoption requests
  • Secure image uploads and automated email reminders
  • A responsive, accessible user experience for all devices

🛠️ How I Built It

Frontend: React.js + Tailwind CSS Backend: FastAPI (Python) Database: PostgreSQL ML Matching Engine: Encodes adopter preferences and pet traits as vectors for similarity scoring APIs:

  • OpenAI for pet summaries
  • AWS S3 for image uploads
  • MailerSend for emails Deployment: Vercel (Frontend) + Render (Backend & DB)

🚧 Challenges I Faced

  • Building a robust vector-based matching algorithm that wasn't too complex
  • Designing a secure and intuitive multi-role system for adopters and admins
  • Managing async image uploads and email notifications reliably
  • Aligning priorities while balancing scope

📚 What I Learned

  • How to effectively prototype a full-stack ML-driven app
  • The importance of clean UX for nonprofit workflows
  • Real-world experience working with external APIs, user auth flows, and deployment pipelines
  • How to stay focused, adaptive, and efficient when working solo on a high-impact project

Built With

Share this project:

Updates