How edm00/luvfitsv1 works
Luvfits is a clothing-product collector and outfit discovery app. Its documented refresh workflow gathers retailer listings, classifies and tags products, stores them, then prepares compatible outfits; users browse or search outfits through the API and see them in the React app. The sampled API search handler reads stored outfits and applies a simple vibe filter; it does not call the embedding service, despite the README’s semantic-search description. Refresh-worker internals and several API sections were not sampled, so those documented connections are shown only where supported.
Main entry points: scraper_manager.py Scraper manager · main.py FastAPI · db.py MongoDB client · base_scraper.py Scrape base
Components 20
User experience
- App coordinator
frontend/src/App.jsx - Vibe input
frontend/src/components/SearchBar.jsx - Outfit display
frontend/src/components/OutfitDisplay.jsx
API and orchestration
- FastAPI
backend/main.py - Refresh worker
backend/scripts/refresh_worker.py
Product acquisition
- Scraper manager
backend/scrapers/scraper_manager.py - Scrape base
backend/scrapers/base_scraper.py - H&M scraper
backend/scrapers/hm_scraper.py - Amazon scraper
backend/scrapers/amazon_scraper.py - Nordstrom scraper
backend/scrapers/nordstrom_scraper.py - Taxonomy mapping
backend/logic/google_taxonomy.py
Outfit matching
- Embedding service
backend/logic/embedding_search.py - Outfit matcher
backend/logic/outfit_matcher.py - Outfit builder
backend/logic/outfit_builder.py - Legacy search logic
backend/logic/search_logic.py
Data storage
- Product and outfit models
backend/database/models.py - MongoDB client
backend/database/db.py - MongoDB
Other components
- Shopper
- Scrape.do
Connections 28
- Shopper → Vibe input: enters vibe
- Vibe input → App coordinator: submits query
- App coordinator → FastAPI: requests outfits
- FastAPI → MongoDB client: reads outfits
- FastAPI → MongoDB client: reads products
- FastAPI → Refresh worker: starts and stops
- FastAPI → Scraper manager: triggers refresh
- App coordinator → Outfit display: renders result
- FastAPI → App coordinator: returns response
- Scraper manager → H&M scraper: dispatches scrape
- Scraper manager → Amazon scraper: dispatches scrape
- Scraper manager → Nordstrom scraper: dispatches scrape
- H&M scraper → Scrape base: uses scraping
- Amazon scraper → Scrape base: uses scraping
- Nordstrom scraper → Scrape base: uses scraping
- Scrape base → Scrape.do: fetches pages
- Scraper manager → MongoDB client: stores products and jobs
- Scraper manager → Product and outfit models: constructs records
- MongoDB client → MongoDB: reads and writes
- Refresh worker → Scraper manager: runs refresh
- Refresh worker → Embedding service: generates embeddings
- Refresh worker → Outfit matcher: generates outfits
- Outfit matcher → MongoDB client: loads and saves data
- Outfit matcher → Outfit builder: builds combinations
- Scrape base → Taxonomy mapping: classifies products
- Embedding service → MongoDB client: reads products and outfits
- Legacy search logic → Outfit builder: falls back to build
- Legacy search logic → Product and outfit models: queries products