Title: FurnFit, we know your fashion taste

Inspiration

  • Make shopping match real-life style by using people’s own photos instead of generic catalogs.
  • Reduce returns and decision fatigue by surfacing “looks like me” products automatically.

What it does

  • Pulls user photos (IG → S3 → Supabase), runs RunPod to detect garments and extract embeddings, then kNN searches OpenSearch for the closest catalog items per photo.
  • Uses Bedrock Nova to summarize style traits and short descriptions for each photo; stores summaries alongside URLs.
  • Serves authenticated users a dashboard with per-photo recommendations (top matches, summaries) plus a text-based search/results page with pagination.

How we built it

  • Frontend: Next.js/React app with Tailwind-style utility classes, React Query for data fetching, infinite scrolling batches, and a reusable Result/Pagination UI.
  • Backend: NestJS with TypeORM + Supabase Postgres, Redis-backed sessions; OpenSearch for vector search; RunPod serverless for image embedding; AWS Bedrock (Nova) for style analysis; S3 for image storage.
  • Glue: product.service handles search/vector calls; users.service orchestrates IG ingestion, Nova calls, and Supabase writes.

Challenges we ran into

  • Network/DNS timeouts to RunPod/OpenSearch and handling long-running fetches.
  • Managing large embedding payloads and excluding them from responses.
  • Keeping session auth working across Next.js proxy rewrites.
  • Pagination math between OpenSearch kNN (from/size/k) and UI expectations.

Accomplishments we’re proud of

  • End-to-end personalized pipeline from user photos to product matches with vector search.
  • Style summaries from Nova shown directly in the dashboard.
  • Working pagination on result pages and per-photo recommendations with skeleton loading states.

What we learned

  • Practical kNN paging in OpenSearch using from/size/k.
  • Integrating Bedrock Nova for structured JSON outputs and storing per-image metadata.
  • Coordinating multiple clouds/services (RunPod, AWS, Supabase) under one Nest/Next stack.

What’s next for FurnFit

  • Add better timeout/retry and health checks for external ML endpoints.
  • Refine virtual try-on UX and add price/size filters to recs.
  • Cache popular searches and add A/B testing for ranking tweaks.
  • Mobile-first polish and broader catalog ingestion to improve match coverage.

Demo Credentials ID: samuelchoi322@yahoo.com PW: After007!

Built With

Share this project:

Updates