How mathewthomas2/skincare-product-recommender works
GlowGuide’s main workflow is a browser-based skin-image analysis followed by personalized product recommendations. The frontend sends an uploaded image to FastAPI; the backend validates and preprocesses it, runs skin-feature models, and returns a classification and explanatory text. The frontend then uses that classification together with questionnaire answers to filter its local product catalog. Backend internals and recommendation logic are based on sampled source; other README-described details are not expanded beyond available evidence.
Main entry points: app.py Upload and validation · script.js Upload and results flow · index.html GlowGuide interface · preprocess_image.py Image preprocessing
Components 14
Web experience
- GlowGuide interface
Frontend/index.html - Upload and results flow
Frontend/script.js - Preference questionnaire
Frontend/script.js - Product recommendations
Frontend/script.js
Analysis API
- FastAPI service
SkinTypeClassification/app/app.py - Upload and validation
SkinTypeClassification/app/app.py - Skin image metrics
SkinTypeClassification/app/app.py - Skin type result
SkinTypeClassification/app/app.py
Skin analysis
- Image preprocessing
SkinTypeClassification/app/preprocess_image.py - Oily/dry model
SkinTypeClassification/app/models/oily_dry_model.h5 - Pigmentation model
SkinTypeClassification/app/models/pigmented_nonpigmented_model.h5 - Sensitivity model
SkinTypeClassification/app/models/sensitive_resistant_model.h5
Analysis data
- Skin type descriptions
SkinTypeClassification/app/text_info.json
Other components
- Skin-care user
Connections 16
- Skin-care user → GlowGuide interface: uses
- GlowGuide interface → Upload and results flow: runs
- Upload and results flow → FastAPI service: submits image
- FastAPI service → Upload and validation: dispatches
- Upload and validation → Skin image metrics: measures skin
- Upload and validation → Image preprocessing: preprocesses image
- Upload and validation → Oily/dry model: predicts oily/dry
- Upload and validation → Pigmentation model: predicts pigmentation
- Upload and validation → Sensitivity model: predicts sensitivity
- Upload and validation → Skin type descriptions: reads description
- Upload and validation → Skin type result: assembles result
- Skin type result → Upload and results flow: returns analysis
- Upload and results flow → Preference questionnaire: prefills answers
- Skin-care user → Preference questionnaire: enters preferences
- Preference questionnaire → Product recommendations: provides filters
- Product recommendations → Skin-care user: shows suggestions