InsightCart is a machine learning-powered Flask-based web application for product recommendation, designed to deliver personalized suggestions. Built with the Singular Value Decomposition (SVD) algorithm, this system leverages collaborative filtering to provide accurate and tailored recommendations. The application is fully containerized using Docker, making deployment seamless and efficient.
- Flask Web Application: A responsive web interface where users can select user IDs and product IDs to get personalized product recommendations.
- Machine Learning Model: The recommendation model is trained using the
scikit-surpriselibrary with SVD for collaborative filtering. - Dockerized Application: The app is fully containerized with Docker, ensuring easy portability and consistent environment setup.
- Interactive Web Interface: Styled using Bootstrap, the interface is clean and user-friendly.
- Modular Project Structure: Separates logic for model loading, web interface, and prediction for better scalability and maintainability.
- Programming Language: Python
- Web Framework: Flask
- Machine Learning: scikit-surprise (SVD algorithm)
- Frontend Styling: Bootstrap
- Containerization: Docker, Docker Compose
InsightCart/
├── app.py # Main Flask application
├── Dockerfile # Dockerfile to containerize the Flask app
├── docker-compose.yml # Docker Compose for managing the Docker container
├── requirements.txt # Python dependencies for the project
├── model/
│ └── svd_model.pkl # Trained SVD model
└── templates/
├── index.html # HTML template for the form (input)
└── result.html # HTML template for displaying recommendation results
- Docker: You need Docker installed to run the application.
- Docker Compose: Ensure Docker Compose is installed for easy container management.
-
Clone the repository:
git clone https://github.com/nabojyoti/InsightCart.git cd InsightCart -
Build and run the Docker container using Docker Compose:
docker-compose up --build
-
Open your browser and go to
http://localhost:5000. -
Select a user ID and product ID from the dropdowns to get a product recommendation based on the trained model.
To stop the running application, you can use:
docker-compose down-
Model Update: Retrain and replace the
svd_model.pklfile in themodel/directory using your data and the scikit-surprise library. -
Data Integration: Add support for real-time data by integrating a database such as
PostgreSQL.
- Database Integration: Store user and product data in a relational database (e.g., PostgreSQL 🐘).
- CI/CD Pipelines: Automate testing and deployment with
GitHub ActionsorJenkins. - Cloud Deployment: Deploy on AWS, GCP, or Azure for global accessibility.
- Enhanced UX/UI: Improve frontend design with Bootstrap or Materialize CSS.
This project is licensed under the MIT License - see the LICENSE file for details.