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
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
Metadata Files
README.md
CookSmart: Search by name or ingredients for any recipe.
Watch how our application works:
Click here to watch - Youtube Video
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:
- User Registration: Establish a unique username and password; no duplicate usernames allowed, ensuring password confidentiality.
- User Authentication: Log in using the correct username and password for secure access.
- Search Recipes by Ingredients: Input your available ingredients to discover relevant recipes based on ingredient names.
- Search Recipes by Dish Name: Locate recipes by specifying the dish name in the search.
- Bookmark Favorite Recipes: Save preferred recipes for easy access.
- View Bookmarked Recipes in User Profile: Access and review all saved recipes conveniently stored under your user profile.
- 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
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
- start frontend server using:
npm start - Automatically a browser window is opened which shows frontend.
- run
npm testfor 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
- Repositories: 1
- Profile: https://github.com/SharmeenMomin
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
- actions/checkout v2 composite
- actions/checkout v2 composite
- node 16 build
- node 16 build
- 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
- @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
- 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
- @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
- pandas *
- requests *