This project is a web application that provides personalized skincare product recommendations based on user input and product data.
- User Authentication: Secure user registration and login using Firebase.
- Personalized Quiz: A multi-step quiz to gather information about the user's skin type, concerns, and preferences.
- Product Recommendations: A recommendation engine that suggests suitable products based on the user's quiz answers.
- Product Database: A comprehensive database of skincare products and their ingredients.
- User Reviews: Allows users to view and submit reviews for products.
- Framework: React
- Build Tool: Vite
- Styling: Tailwind CSS
- Authentication: Firebase
- Linting: ESLint
The skincare recommender system uses a content-based filtering approach to provide personalized product suggestions.
- Language: Python
- Libraries:
- Pandas: For data manipulation and analysis.
- Scikit-learn: For feature extraction and similarity calculations.
- Machine Learning Techniques:
- Term Frequency-Inverse Document Frequency (TF-IDF): This technique is used to convert the list of ingredients for each product into a numerical vector. TF-IDF gives more weight to ingredients that are frequent in a specific product but rare across all other products, making them more significant for recommendations.
- Cosine Similarity: After representing products as numerical vectors, cosine similarity is used to measure the similarity between them. A higher cosine similarity score indicates a greater similarity in ingredient profiles.
- Recommendation Logic:
- New Users: For users without a product history, the system recommends top-rated products that match their specified skin type and concerns.
- Existing Users: The system creates a user profile based on the ingredients of previously used products. It then calculates the cosine similarity between this profile and all other products to find the most similar and suitable recommendations.
- Similar Products: When viewing a product, users can see a list of similar products, which are identified by finding the products with the highest cosine similarity scores.
- Rule-Based Filtering: Before applying the machine learning model, the system filters out products containing ingredients the user is allergic to, or that do not match the user's skin type and concerns.
- Node.js and npm
- Python and pip
- MongoDB
- Clone the repository:
git clone https://github.com/your-username/skincare-recommender.git cd skincare-recommender - Install backend dependencies:
cd backend npm install - Install frontend dependencies:
cd ../frontend npm install - Install recommender dependencies:
cd ../recommender pip install -r requirements.txt
- Start the backend server:
cd ../backend npm start - Start the frontend development server:
cd ../frontend npm run dev - Run the recommender service:
cd ../recommender python app/app.py
The application should now be running at http://localhost:5173.
The project is organized into three main directories:
frontend/: Contains all the React frontend code.backend/: Contains the Node.js/Express backend API.recommender/: Contains the Python-based recommendation engine.
Each directory has its own README.md with more specific details.
We welcome contributions! Please see our CONTRIBUTING.md for more information on how to get started.
This project is licensed under the MIT License. See the LICENSE.txt file for details.