Skip to content

Repository files navigation

Rasoi Recommender

Python Pandas Tkinter Streamlit License GitHub Stars

A Python application for Indian recipe recommendations based on available ingredients.


Table of Contents


Features

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

Screenshots

Rasoi Recommender App

Rasoi Recommender - Streamlit Web Application

Rasoi Recommender App

Rasoi Recommender - Tkinter Desktop Application


Installation

Clone the repository:

git clone https://github.com/dsouza-shaun/rasoi-recommender.git
cd rasoi-recommender

Create a virtual environment (recommended):

python -m venv .venv

Activate it:

Linux / macOS

source .venv/bin/activate

Windows

.venv\Scripts\activate

Install dependencies:

pip install -r requirements.txt

Quick Start

Run Tkinter Desktop App

python app_tkinter.py

Run Streamlit Web App

streamlit run app_streamlit.py

Recipe Adder Utility

python utils/add_recipe_gui.py

Usage

Search Recipes

Launch 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

Add New Recipe

Run the recipe adder utility Fill in the form fields Click "Add Recipe" Dataset updates automatically


Project Structure

A detailed breakdown of the repository is available in:

PROJECT_STRUCTURE.md


Troubleshooting

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.csv exists
  • 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.txt

SDG Mapping

This project contributes to UN Sustainable Development Goals:

SDG Goal Contribution
3 Good Health Diet filters promote healthy eating choices

Detailed Contribution

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

Acknowledgements

Python

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)

Dataset Source

Indian Food Dataset by Kriti Rathi
Available at: Kaggle - Indian Food 101

License: CC0 1.0 Universal (Public Domain)

Inspiration

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.

Academic Context

Developed as a CCP (Creative Coding in Python) for Computer Engineering curriculum, focusing on practical application of data science concepts in real-world scenarios.


License

This project is licensed under the MIT License.
See the LICENSE file for details.


Contributing

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


Support

If you encounter a bug or have a question, please open an issue on GitHub.

About

Indian Food Recipe Recommendation System with dual interface - Tkinter Desktop & Streamlit Web

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages