cooksmart-recipe-recommender-application

CookSmart is a feature-rich recipe recommender app leveraging ReactJS, NodeJS, and Firebase for user authentication, database management. Integrated with Gemini API for real-time recipe searches powered by NLP, enabling personalized recipe recommendations.

https://github.com/sharmeenmomin/cooksmart-recipe-recommender-application

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.9%) to scientific vocabulary
Last synced: 8 months ago · JSON representation ·

Repository

CookSmart is a feature-rich recipe recommender app leveraging ReactJS, NodeJS, and Firebase for user authentication, database management. Integrated with Gemini API for real-time recipe searches powered by NLP, enabling personalized recipe recommendations.

Basic Info
  • Host: GitHub
  • Owner: SharmeenMomin
  • License: mit
  • Language: JavaScript
  • Default Branch: main
  • Size: 13.5 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

CookSmart: Search by name or ingredients for any recipe.



Watch how our application works:

Click here to watch - Youtube Video



Made With DOI GitHub open issues GitHub closed issues GitHub Repo stars GitHub Workflow Status GitHub language GitHub last commit GitHub license GitHub contributors GitHub code size in bytes

What is CookSmart?

Say goodbye to the dilemma of deciding what to cook with the ingredients on hand. We’ve revolutionized the cooking experience with an application that effortlessly suggests delicious recipes based on your kitchen inventory. Unlock the full potential of your pantry and fridge as our innovative software guides you in selecting perfect dishes tailored to your current ingredients. Cooking is now an exciting adventure rather than a daunting task. Immerse yourself in a realm of limitless culinary possibilities with CookSmart!

Feature additions: Enhancements, Upgrades and BugFixes:

We've added numerous entertaining new features and fixes to enhance user-friendliness.
AI-Powered Recipe Suggestions Recipes are now dynamically fetched using AI via Google’s Gemini APIs, providing unique, high-quality recommendations instead of relying on static database entries. This allows for more accurate, creative suggestions tailored to your preferences and ingredients.

Firebase Authentication User login and profile management are now handled by Firebase Authentication, enhancing security and simplifying the login experience. Say goodbye to database-managed credentials and hello to a smoother, safer login process.

Enhanced Recipe Filtering Enjoy better filtering options to quickly find recipes that match your preferences, dietary requirements, or ingredient availability.


More about our new additions in our next section!

Documentation and Project Flow:

  1. User Registration: Establish a unique username and password; no duplicate usernames allowed, ensuring password confidentiality.
  2. User Authentication: Log in using the correct username and password for secure access.
  3. Search Recipes by Ingredients: Input your available ingredients to discover relevant recipes based on ingredient names.
  4. Search Recipes by Dish Name: Locate recipes by specifying the dish name in the search.
  5. Bookmark Favorite Recipes: Save preferred recipes for easy access.
  6. View Bookmarked Recipes in User Profile: Access and review all saved recipes conveniently stored under your user profile.
  7. Logout: Securely log out to protect your profile information and activities.

Source documentation can be found at: CookSmart Docs

API Documentation

getimageby_name
Scrapes an image of the recipe from bing.com.

getrecipesfrom_ingredients
Gets recipes based on the provided ingredients from Gemini along with some sense of pagination. Recipes might duplicate over multiple pages as it is not real pagination.

getrecipesby_name
Gets recipes based on the provided name from Gemini along with some sense of pagination. Recipes might duplicate over multiple pages as it is not real pagination.

getdetailedrecipe
Gets detailed recipe based on name and ingredients with a list of detailed ingredients along with quantities, cooking time and detailed process to cook.


Detailed documentation can be found at: API Docs

Technology Stack

NodeJS React Express.js NPM JEST MongoDB HTML CSS

Key Software Requirements

Project Setup Steps:

Installation:

  • clone repository using git clone https://github.com/SharmeenMomin/CookSmart-Recipe-Recommender-Application.git
  • setup for frontend open terminal and navigate to the frontend folder and execute the following: npm install
  • setup for functions open terminal and navigate to the functions folder and deploy the functions to your firebase firebase login firebase deploy

## Execution Steps

  1. start frontend server using: npm start
  2. Automatically a browser window is opened which shows frontend.
  3. run npm test for running the tests [Dependencies: Jest, Chai, Supertest]

IDE and Code Formatter

FUTURE SCOPE

Implement personalized diertary requirements based filtering.

Meal planning- saving data for all meals of the day.

Voice to text integration.

Chatbot integration- to answer quick queries about the recipe.

Author

Sharmeen Momin

Troubleshooting and Support

Common issues observed and solutions:
1. requirements.txt failing: this issue should no longer be seen, as we have used ~= to ensure your systems pick up versions compatible with the other packages. However, if you happen to see the issue, modify the requirements.txt file to use a more recent version. 2. python was not found: we recommend using python3 as some of the modules are available only on Python3. You may either install Python3 or setup a virtual environment(we suggest the latter if you are currently running other applications on python2)

Made with ❤️ on GitHub.

Owner

  • Name: Sharmeen Momin
  • Login: SharmeenMomin
  • Kind: user
  • Location: Raleigh, NC

Software Developer | CS Grad at NC State Univerisity

Citation (CITATION.md)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:

- family-names: "Joshi"
  given-names: "Atharva"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Purohit"
  given-names: "Sahil"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Shetty"
  given-names: "Shinit"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Wawale"
  given-names: "Shubham"
  orcid: "https://orcid.org/0000-0000-0000-0000"
  title: "Saveurs Sélection"
  version: 1.0.0
  doi: 10.5281/zenodo.10023535
  date-released: 2023-10-19
  url: "https://zenodo.org/doi/10.5281/zenodo.10023534"

GitHub Events

Total
  • Push event: 2
  • Create event: 2
Last Year
  • Push event: 2
  • Create event: 2

Dependencies

.github/workflows/code_formatter.yml actions
  • actions/checkout v2 composite
.github/workflows/tests.yml actions
  • actions/checkout v2 composite
Code/backend/Dockerfile docker
  • node 16 build
Code/docker-compose.yml docker
Code/frontend/Dockerfile docker
  • node 16 build
Code/backend/package.json npm
  • babel-eslint ^10.1.0 development
  • eslint ^7.32.0 development
  • eslint-plugin-react ^7.26.1 development
  • jest ^27.3.1 development
  • prettier ^2.4.1 development
  • supertest ^6.1.6 development
  • chai ^4.3.4
  • cors ^2.8.5
  • dotenv ^10.0.0
  • express ^4.17.1
  • mongodb ^4.1.2
  • nodemailer ^6.7.0
  • nodemon ^2.0.13
Code/frontend/package.json npm
  • @babel/preset-env ^7.26.0 development
  • @babel/preset-react ^7.25.9 development
  • @firebase/testing ^0.20.11 development
  • babel-jest ^29.7.0 development
  • jest ^27.5.1 development
  • @chakra-ui/react ^2.10.3
  • @chakra-ui/utils ^2.2.2
  • @emotion/react ^11.13.3
  • @emotion/styled ^11.13.0
  • @testing-library/jest-dom ^5.14.1
  • @testing-library/react ^11.2.7
  • @testing-library/user-event ^12.8.3
  • axios ^0.21.4
  • bootstrap ^5.1.1
  • firebase ^11.0.1
  • framer-motion ^11.11.10
  • jspdf ^2.5.2
  • react ^18.2.0
  • react-bootstrap-validation ^0.1.11
  • react-dom ^18.2.0
  • react-icons ^5.3.0
  • react-loader-spinner ^6.1.6
  • react-router-dom ^6.27.0
  • react-scripts ^5.0.1
  • web-vitals ^1.1.2
Code/functions/functions/package.json npm
  • firebase-functions-test ^3.1.0 development
  • typescript ^4.9.0 development
  • @google/generative-ai ^0.21.0
  • chromium ^3.0.3
  • firebase-admin ^12.6.0
  • firebase-functions ^6.0.1
  • puppeteer ^23.6.0
Code/functions/package.json npm
  • @google/generative-ai ^0.21.0
  • @puppeteer/browsers ^2.4.0
  • axios ^1.7.7
  • cheerio ^1.0.0
  • cors ^2.8.5
  • firebase-tools ^13.23.0
  • jest ^29.7.0
  • puppeteer ^23.6.0
requirements.txt pypi
  • pandas *
  • requests *