ChefMate is an intelligent application designed to cluster and recommend restaurants based on user preferences, such as cuisine or specific dishes. Additionally, it features a chef-like chatbot that assists users in preparing recipes, enhancing their cooking experience. This project leverages machine learning and cloud computing technologies to deliver personalized recommendations and cooking guidance.
- Personalized Recommendations: Get tailored restaurant suggestions based on your favorite cuisines and dishes.
- Interactive Maps: Explore restaurant locations with dynamic maps and ratings for an enhanced user experience.
- Cooking Assistance: Engage with our chatbot for step-by-step cooking instructions and tips.
- Future Integrations: Potential to connect with food delivery platforms for seamless ordering.
- Streamlit: For building a user-friendly web application.
- AWS Services: Utilizing S3 for data storage, RDS for database management, and EC2 for deployment.
- Machine Learning: Implementing clustering algorithms for effective restaurant recommendations.
- Python: The primary programming language for development.
- Chatbot Integration: Enhancing user interaction with conversational AI.
- Data Storage: Utilized AWS S3 for storing project files and raw data.
- Data Preprocessing: Implemented data cleaning and preprocessing techniques to prepare the data for model training.
- Database Management: Connected to AWS RDS to store cleaned data for structured querying.
- Model Training: Trained multiple clustering models, including: * KMeans * DBSCAN * Agglomerative Clustering * Gaussian Mixture, The models were evaluated using the silhouette score to determine the best-performing model
- Application Development: Developed the ChefMate application using Streamlit to meet project requirements.
- Chatbot integration in the app: Used gemini generative AI role based chatbot using the API key.
- Deployment: Deployed the application on AWS for real-time interaction.
Follow these steps to set up ChefMate on your local machine:
- Clone the repository:
git clone https://github.com/yourusername/ChefMate.git
- Navigate to the project directory:
cd ChefMate
- Install the required packages:
pip install -r requirements.txt
- Set up your AWS credentials and configure the necessary services (S3, RDS, EC2)
- Run the Streamlit application:
streamlit run app.py
- Access the application in your web browser at http://localhost:8501
The project is organized into the following directory structure:
-
ChefMate.py: This is the main entry point of the application. It initializes the Streamlit web app, handles user inputs, and displays restaurant recommendations and chatbot interactions.
-
requirements.txt: This file lists all the Python packages and dependencies required to run the application. It can be installed using pip.
-
ChefMate/: This directory contains datasets used in the application. The
Zomato_cluster_data.csv
file includes detailed information about various restaurants, such as their names, locations, cuisines, ratings, and more. -
models/: This directory is dedicated to storing machine learning models. The
kmeans_model.pkl
file contains the trained clustering model that groups restaurants based on similarities in user preferences. -
ChefMate/: This directory includes scripts for data preprocessing and other utility functions.
- data_preprocessing.ipynb: This script is responsible for cleaning the raw restaurant data, handling missing values, and converting JSON data into a structured format suitable for analysis.
- data_cleaning.ipynb: This file contains various utility functions that can be used throughout the application for tasks such as data manipulation and visualization.
-
README.md: This file provides comprehensive documentation for the project, including an overview, features, installation instructions, usage guidelines, and contribution details.
For any inquiries, feedback, or suggestions regarding the ChefMate project, feel free to reach out to me:
- SAMUELSON G: [gsamuelsonguna@gmail.com]
- GitHub: [https://github.com/Samuelson777]
Check out the live demo of ChefMate here: Live Demo.
Experience the features of ChefMate in real time with this eg app and see how it can help you find the best restaurants and assist you in cooking delicious meals!
Thank you for checking out ChefMate! I hope you enjoy using it as much as i enjoyed building it. Happy cooking! 🍳
For any clarification about using the app refer the user manual pdf
One of the main challenges encountered was the limited data available for unsupervised learning, which restricted the depth of analysis and model training. Despite this, the project successfully demonstrates the core functionalities.
The goal is to utilize this application in real-time scenarios, allowing users to receive personalized restaurant recommendations and cooking assistance.
The primary users of this application are individuals seeking personalized dining experiences and cooking guidance.
This project was developed as part of a learning initiative to explore the integration of machine learning and cloud computing in real-world applications.
This project is licensed under the MIT License - see the LICENSE file for details.