CookBuddy is an innovative recipe recommender that enhances the cooking experience by offering personalized meal suggestions based on user preferences and available ingredients. Built using Python Django for the backend and ReactJS for the frontend, CookBuddy creates a seamless and dynamic user interface that makes exploring new recipes both fun and intuitive.
Using NLP with the TF-IDF algorithm, the application analyzes ingredients and user preferences to deliver highly relevant and tailored recipe recommendations. It leverages the power of AWS Cloud for scalability, with the frontend hosted on S3 using a CDN for fast, global delivery, and the backend running on EC2, ensuring reliable and high-performance operations. Whether you're a busy professional or a home chef, CookBuddy delivers curated recipe suggestions that inspire culinary creativity, making it a must-have tool in the modern kitchen!. 🔗 Demo Link
The recipe recommendation engine is built using Machine Learning. Data is collected from the Jamie Oliver website using Web-Scraping
and NLTK
module for parsing and fine-tuning the data.. It leverages a Word2Vec model for generating
TF-IDF` rankings of recipes based on ingredients, cuisine style, and user reviews. This approach ensures personalized and relevant recipe suggestions tailored to user preferences.
client
: Contains the React applicationserver
: Contains the Django backendcore
: Django backend systemuser
: Application logic for authenticatino and recommendation system
To run this project on your local machine, follow the steps below:
Ensure you have the following installed on your local machine:
- Python 3.9 or higher
- Node.js v16.15.0 or higher
- npm 8.0.0 or higher
- Clone the repository:
git clone https://github.com/<yourusername>/<yourrepository>.git
- Change into the directory:
cd <yourrepository>
- Navigate to the
server
directory:cd server
- Install Django and other dependencies:
pip install -r requirements.txt
- Create a virtual environment (Optional but recommended):
python -m venv env
- Activate the virtual environment:
On Windows:
On MacOS/Linux:
.\env\Scripts\activate
source env/bin/activate
- Create a
.env
file in theserver
directory and add your secret key like this:SECRET_KEY=<your-secret-key> ALLOWED_HOSTS=<your-allowed-hosts> CORS_ALLOWED_ORIGINS=<your-cors-allowed-origins> CORS_TRUSTED_ORIGINS=<cors-trusted-origins>
- Navigate to the
client
directory:cd ../client
- Install all the dependencies:
npm install
- Run the client:
npm start
- Create a
.env.production
and.env.development
files in theclient
directory and add your secret key like this:REACT_APP_API_URL=<your-backend-hosted-url> # example: http://127.0.0.1:8000/
Now, your application should be running at localhost:3000
.
Note:
- The Django server should be running at the same time as the React application for the system to function properly.
- The application uses the email field instead of the username field for user identification.
- The current recommendation system uses in memory recipe data for recommending the recipies.