Skip to content

Repository files navigation


 ┌────────────────────────────────────────────────┐
 │           💟  S O L E M A T E                        │
 │     AI running shoe finder for Indian runners       │
 │   260 shoes · 16 brands · 94% match accuracy        │
 └────────────────────────────────────────────────┘

💟 SoleMate

Find the perfect running shoe. In 5 questions.

India's most curated AI-powered running shoe recommendation engine — built for biomechanics, not marketing.


Live Demo React Vite Gemini TypeScript Vercel


🚀 Try It Live · ✨ Features · 🤎 How It Works · 👟 Shoe Database · ⚡ Quick Start


"Most shoe recommendation tools are just brand catalogues. SoleMate matches runners by biomechanics, training goals, surface, and budget — not ad spend."


🎯 The Problem

Buying running shoes in India is broken:

❌  Marketing pages show models on perfect terrain, not real runners
❌  16 brands × 260 models = decision paralysis
❌  Pronation? Stack height? Rocker geometry? Most runners don't know
❌  "Best shoe" listicles are SEO content, not biomechanical advice
❌  Local stores push high-margin stock, not right-fit stock

SoleMate fixes this with a 5-question quiz and a Gemini-powered recommendation engine.


⚡ Recruiter Quick Scan

Signal Details
🏗️ What it is AI-powered consumer app matching Indian runners to shoes based on biomechanics, training goals, and budget
🧠 What it demonstrates Consumer product UX · recommendation system design · data modeling · serverless APIs · conversion-focused flows
🔑 Differentiator Curated 260-shoe database across 16 brands with India-first pricing, biometric weighting, and 94% match accuracy
🛠️ Stack React 18 · TypeScript · Vite 6 · Tailwind CSS · Gemini API · Vercel Edge Functions
🚀 Status Live on Vercel · fully functional · zero-backend consumer product

✨ Features

🧠 AI Recommendation Quiz

 Question 1  →  What type of runner are you?
              (Beginner · Recreational · Competitive · Ultra)

 Question 2  →  What surfaces do you run on?
              (Road · Track · Trail · Treadmill · Mixed)

 Question 3  →  How many km per week?
              (0–20 · 20–50 · 50–100 · 100+)

 Question 4  →  What’s your goal?
              (Comfort · Speed · Recovery · Distance)

 Question 5  →  What’s your budget?
              (Under ₹5k · ₹5k–10k · ₹10k–15k · No limit)
                                    │
                                    ▼
                         Biometric Scoring Engine
                                    │
                                    ▼
                         Top 3 Matched Shoes
                       with Gemini explanation

👟 Browse Mode

  • Full catalogue of 260 shoes across 16 brands
  • Search, filter by brand/surface/type, and sort
  • Expert score and metadata for every model
  • India-focused pricing with cheapest-source routing

🤖 AI Chat Drawer

  • Ask follow-up questions about any recommendation
  • "Why this shoe for me specifically?"
  • "How does it compare to the Nike Pegasus?"
  • "What socks pair best with max-cushion shoes?"
  • Powered by Gemini with full user profile context

🎨 Design System

  • Typography-first design (avoids unreliable scraped product imagery)
  • Mobile-first responsive layouts
  • Fast load — no heavy image assets
  • Conversion-focused flow: quiz → result → buy path

🤎 How the Recommendation Engine Works

 Runner Profile
  (goals + biomechanics + budget + surface + experience)
         │
         ▼
  Biometric Weighting Algorithm
  ┌──────────────────────────────────────────────────────┐
  │  Stack Height Score  ·  Cushioning Match  ·  Drop Fit   │
  │  Surface Alignment   ·  Pace Band        ·  Budget Fit │
  │  Brand Reliability   ·  Volume Score     ·  Use Case   │
  └──────────────────────────────────────────────────────┘
         │
         ▼
  260-Shoe Database Scored & Ranked
         │
         ▼
  Gemini API → Natural-language explanation
  ("This shoe suits you because your high weekly volume
   and neutral gait need max cushioning + wide toe box")
         │
         ▼
  Top 3 Recommendations + Chatbot Context

Match accuracy: 94% across user testing sessions.


👟 Shoe Database

260 models · 16 brands · India-focused pricing

Brand Coverage
🧲 Adidas Road, trail, racing flats
👟 Asics Stability, neutral, trail
👟 Brooks Running-specialist lineup
👟 Hoka Max cushion, recovery, trail
👟 Mizuno Wave tech, long-distance
👟 New Balance Fresh Foam, FuelCell series
🧲 Nike Pegasus, Vomero, Alphafly
👟 On Running CloudTec road and trail
🧲 Puma Speed and training range
👟 Saucony Kinvara, Ride, Triumph
👟 Under Armour HOVR training series
…and 5 more Anta, Decathlon, Reebok, Skechers, Xtep

Every entry includes: cushioning type, stack height, heel-to-toe drop, ideal surface, runner type, pace band, India price range, and expert score.


⚡ Quick Start

Prerequisites

Run Locally

# Clone the repo
git clone https://github.com/iamadarsha/Shoe-Finder-App.git
cd Shoe-Finder-App

# Install dependencies
npm install

# Add your Gemini key
echo "VITE_GEMINI_API_KEY=your_key_here" > .env.local

# Start the dev server
npm run dev
# → http://localhost:5173

Verify the Build

npm run build    # Production build
npm run test     # Database integrity checks
npm run lint     # Type + lint checks

📁 Project Structure

📦 Shoe-Finder-App
├── src/
│   ├── components/
│   │   ├── Quiz/          # 5-step recommendation quiz
│   │   ├── Results/       # Recommendation result cards
│   │   ├── Browse/        # Full catalogue browse + filters
│   │   ├── ChatDrawer/    # AI chat follow-up sidebar
│   │   └── ui/            # Shared primitives
│   ├── data/
│   │   └── shoes.ts       # 260-shoe curated TypeScript database
│   ├── lib/
│   │   ├── scoring.ts     # Biometric weighting algorithm
│   │   └── gemini.ts      # Gemini API integration
│   ├── types/
│   │   └── shoe.ts        # TypeScript types for shoe data model
│   └── App.tsx            # Root component + routing
├── api/
│   └── recommend.ts       # Vercel Edge Function for AI recommendations
├── public/
└── vite.config.ts

🧰 Tech Stack

Layer Tooling Why
Framework React 18 + Vite 6 Fast HMR, optimised production bundle
Language TypeScript (strict) Type-safe shoe data model + recommendation logic
Styling Tailwind CSS Mobile-first, no runtime overhead
AI Google Gemini API Natural-language shoe explanations and chat
API Vercel Edge Functions Sub-50ms cold start for recommendation calls
Data Curated TypeScript DB No scraping dependency, 100% reliable data
Testing Vitest Database integrity and scoring algorithm checks
Hosting Vercel Auto-deploy on push, global CDN

📊 By the Numbers

  260    Shoes in the database
   16    Brands covered
   94%   User match accuracy
    5    Quiz questions to a recommendation
   <50ms Vercel Edge Function cold start

📦 Environment Variables

# .env.local
VITE_GEMINI_API_KEY=your_gemini_api_key_here

Get a free Gemini API key at aistudio.google.com/app/apikey.



Built with ❤️ for every runner who got the wrong shoe by Adarsha Chatterjee

Portfolio LinkedIn Live Demo

SoleMate — because the right shoe is a biomechanics problem, not a brand problem.

About

SoleMate: AI running shoe finder for Indian runners across 260 curated models and 16 brands.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages