A Python application for Indian recipe recommendations based on available ingredients.
| Module | Capabilities |
|---|---|
| Filters | Diet, time, flavor, region, course filtering |
| Missing Ingredients | Detects what ingredients you need to buy |
| Image Display | Fetches and caches recipe images from URLs |
| Dual Interface | Tkinter desktop app + Streamlit web app |
| Recipe Management | Interactive GUI to add new recipes without coding |
Clone the repository:
git clone https://github.com/dsouza-shaun/rasoi-recommender.git
cd rasoi-recommenderCreate a virtual environment (recommended):
python -m venv .venvActivate it:
Linux / macOS
source .venv/bin/activateWindows
.venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtRun Tkinter Desktop App
python app_tkinter.pyRun Streamlit Web App
streamlit run app_streamlit.pyRecipe Adder Utility
python utils/add_recipe_gui.pyLaunch either the Tkinter or Streamlit app Enter ingredients (comma-separated) Apply filters (diet, time, flavor, region, course) Click "Find Recipes" View match scores and missing ingredients
Run the recipe adder utility Fill in the form fields Click "Add Recipe" Dataset updates automatically
A detailed breakdown of the repository is available in:
No recipes found
- Use more common ingredient names
- Add at least 3-4 ingredients
- Relax some filters (time, region, etc.)
- Check spelling of ingredients
Images not loading
- Check internet connection
- Some URLs may be broken or expired
- Images are cached for faster subsequent loads
Recipe adder shows error
- Ensure
data/indian_food.csvexists - Check all required fields are filled
- Verify no duplicate recipe names
Streamlit app not opening
- Try different port:
--server.port 8502 - Check if port is already in use
- Ensure streamlit is installed:
pip install streamlit
Tkinter app shows blank window
- Check Python version (3.10+ recommended)
- Ensure all dependencies are installed
- Try running from terminal to see error messages
Match scores seem incorrect
- TF-IDF weights rare ingredients higher than common ones
- A recipe with fewer matching rare ingredients may score higher
- This is expected behavior for better recommendations
Virtual environment issues
# Delete and recreate venv
rm -rf venv
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txtThis project contributes to UN Sustainable Development Goals:
| SDG | Goal | Contribution |
|---|---|---|
| 3 | Good Health | Diet filters promote healthy eating choices |
SDG 3: Good Health and Well-being
- Vegetarian/Non-vegetarian filters support dietary preferences
- Time-based filtering encourages home cooking over processed food
- Regional recipes promote traditional, balanced diets
This project relies on the following open-source resources:
- Pandas – Data manipulation and analysis
- Scikit-learn – TF-IDF vectorization and similarity calculations
- Tkinter – Desktop GUI framework
- Streamlit – Web application framework
- Pillow – Image processing and display
- Requests – HTTP library for image fetching
- Dataset – Kriti Rathi (Kaggle)
Indian Food Dataset by Kriti Rathi
Available at: Kaggle - Indian Food 101
License: CC0 1.0 Universal (Public Domain)
This project was inspired by the need to reduce food waste in households by suggesting recipes based on available ingredients, combining traditional Indian cuisine with modern machine learning techniques.
Developed as a CCP (Creative Coding in Python) for Computer Engineering curriculum, focusing on practical application of data science concepts in real-world scenarios.
This project is licensed under the MIT License.
See the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change. Show some ❤️ and star the repo to support the project
If you encounter a bug or have a question, please open an issue on GitHub.

