{"id":24907650,"url":"https://github.com/vsancnaj/hybrid-recommendation-system","last_synced_at":"2026-04-12T23:54:30.321Z","repository":{"id":275064697,"uuid":"924959107","full_name":"vsancnaj/Hybrid-Recommendation-System","owner":"vsancnaj","description":"A hybrid recommendation system combining Item-Based Collaborative Filtering and Content-Based Filtering to suggest skincare products based on user preferences, product ingredients, and ratings. Features a Flask API and an interactive Streamlit Web App for personalized recommendations.","archived":false,"fork":false,"pushed_at":"2025-01-31T00:24:56.000Z","size":21,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-04T11:21:34.775Z","etag":null,"topics":["collaborative-filtering","content-based-filtering","ecommerce","flask-api","machine-learning","nlp","recommendation-system","sephora","skincare","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vsancnaj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-31T00:12:24.000Z","updated_at":"2025-06-19T14:37:29.000Z","dependencies_parsed_at":"2025-01-31T01:29:53.726Z","dependency_job_id":null,"html_url":"https://github.com/vsancnaj/Hybrid-Recommendation-System","commit_stats":null,"previous_names":["vsancnaj/hybrid-recommendation-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vsancnaj/Hybrid-Recommendation-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsancnaj%2FHybrid-Recommendation-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsancnaj%2FHybrid-Recommendation-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsancnaj%2FHybrid-Recommendation-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsancnaj%2FHybrid-Recommendation-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vsancnaj","download_url":"https://codeload.github.com/vsancnaj/Hybrid-Recommendation-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsancnaj%2FHybrid-Recommendation-System/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31734350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T22:19:12.206Z","status":"ssl_error","status_checked_at":"2026-04-12T22:18:33.088Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collaborative-filtering","content-based-filtering","ecommerce","flask-api","machine-learning","nlp","recommendation-system","sephora","skincare","streamlit"],"created_at":"2025-02-02T01:18:14.106Z","updated_at":"2026-04-12T23:54:30.274Z","avatar_url":"https://github.com/vsancnaj.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧴 Sephora Skincare Recommender\n\n## 📌 Overview\nA **Hybrid Recommendation System** for **Sephora skincare products**, combining:\n\n1️⃣ **Item-Based Collaborative Filtering** – Recommends products based on user ratings.  \n2️⃣ **Content-Based Filtering** – Recommends products based on ingredients, categories, and highlights.  \n\n## 🎯 Purpose\n- Help users find skincare products tailored to their **preferences, skin type, and concerns**.\n- Provide **personalized recommendations** using **machine learning \u0026 NLP**.\n\n## 🚀 Features\n✅ **Hybrid Recommendation Model** (Item-Based CF + Content-Based Filtering)  \n✅ **Flask API** – Serves recommendations dynamically  \n✅ **Streamlit Web App** – User-friendly interface to explore recommendations  \n\n## 📦 Structure\n```\n├── 📂 data/                     # Contains raw dataset files (ignored in Git)\n│   ├── product_info.csv         # Product metadata (ID, name, brand, ingredients, categories, price, etc.)\n│   ├── reviews_0-250.csv        # User reviews (ratings, skin type, feedback, etc.)\n│   ├── ...                      # Other review datasets (split for large-scale handling)\n│\n├── 📂 metadata/                  # Stores processed data files\n│   ├── products.csv              # Cleaned \u0026 processed product metadata\n│   ├── hybrid_similarity.pkl     # Precomputed similarity matrix for recommendations\n│\n├── 📂 skincare/                  # Virtual environment (ignored in Git)\n│\n├── api.py                        # Flask API for serving recommendations\n├── app.py                        # Streamlit Web App interface\n├── model.ipynb                   # Jupyter Notebook for training \u0026 evaluating models\n├── requirements.txt               # Dependencies for installing the project\n├── .gitignore                     # Excludes unnecessary files (datasets, env, cache)\n├── README.md                      # Project documentation (this file)\n```\n\n## 📂 Dataset\n- **Product Data:** Contains product ID, brand, ingredients, categories, price, and highlights.  \n- **Reviews Data:** User ratings, reviews, and skincare attributes (skin type, concerns).\n### **1️⃣ Download the Dataset**\n1.\tGo to the [Sephora Skincare Reviews Dataset on Kaggle](https://www.kaggle.com/datasets/nadyinky/sephora-products-and-skincare-reviews/data)\n2.\tClick Download and extract the ZIP file.\n\n### **2️⃣ Move Files to data/ Directory**\n- After extraction, place the dataset files inside the data/ folder:\n```\n├── data/\n│   ├── product_info.csv\n│   ├── reviews_0-250.csv\n│   ├── reviews_250-500.csv\n│   ├── reviews_500-750.csv\n│   ├── reviews_750-1250.csv\n│   ├── reviews_1250-end.csv\n```\n\n## 🛠️ Installation \u0026 Setup\n### **1️⃣ Install Dependencies**\n```bash\npip install -r requirements.txt\n```\n\n### **2️⃣ Run the Flask API**\n```bash\npython api.py\n```\n- API will be available at: http://127.0.0.1:5000/recommend?product_id=P12345\u0026num_recommendations=5\n\n ### **3️⃣ Run the Streamlit Web App** \n```bash\nstreamlit run app.py\n```\n- Open in browser: http://localhost:8501\n  \n## **📌 How It Works** \n1.\tUsers select a Sephora skincare product from the web app.\n2.\tThe model generates recommendations using a combination of product similarity (content-based) and user ratings (collaborative filtering).\n3.\tUsers receive recommendations with product details (brand, price, and rating).\n\n## **🛠️ Future Improvements** \n- Improve recommendations using sentiment analysis on user reviews.\n- Personalize results further based on skin type \u0026 concerns.\n- Deploy API \u0026 Web App on AWS/Heroku for public access.\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsancnaj%2Fhybrid-recommendation-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvsancnaj%2Fhybrid-recommendation-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsancnaj%2Fhybrid-recommendation-system/lists"}