CookBook is your ultimate AI-powered kitchen assistant that makes cooking stress-free, fun, and delicious! 🎉
Whether you're working with a stocked pantry or just a few ingredients, CookBook will help you whip up amazing recipes tailored to what you have.
- ✨ Easy to Use: A super-friendly platform where you can simply input your ingredients, and CookBook will suggest recipes instantly.
- 📖 Step-by-Step Guidance: Get detailed, easy-to-follow instructions for every recipe.
- 🌟 Flexible & Adaptable: Use as few or as many ingredients as you want—CookBook adjusts to you!
- 🍴 Recipes for Everyone: Explore a variety of recipes across multiple cuisines and cultures.
With CookBook, you'll never run out of cooking inspiration again! 🥗🍜🍰
Most of us have faced these situations:
1️⃣ Craving something delicious, but delivery isn't an option.
2️⃣ Staring at your pantry, unsure of what to make with what's available.
3️⃣ Wanting to try something new and exciting, but need guidance.
- 🍳 Ingredient-Based Recipes: Enter the ingredients you have, and CookBook finds recipes to match.
- 📜 Step-by-Step Instructions: Follow clear directions, even if you're new to cooking!
- 🌍 Explore Global Cuisines: Try dishes from different cultures with ease.
- 🖥️ Familiar & Intuitive Interface: Just like your favorite search engine, simply enter your ingredients and hit "Proceed" to get recipe suggestions.
CookBook isn’t just a tool—it’s your cooking companion, saving time and bringing creativity to your kitchen! 🍲✨
| What's New | Installations | Examples | Style Checker & Code Fomatter | Code Coverage | Why CookBook? | Team | Support |
- 🎤 Voice-Guided Recipes: Choose from multiple voices to guide you while you cook.
- 🖼️ Personalized Themes: Customize your CookBook experience with themes like Midnight Chef or Literary Lemon.
- 📝 Printable Meal Plans: Plan your meals for the week and print them for easy access.
- 🛒 Smart Shopping Lists: Automatically generate and export shopping lists as PDFs.
- 🍝 Advanced Filters: Search recipes by cuisine type, cooking time, or dietary preferences.
- 🤝 Social Sharing: Easily share recipes with friends via Discord, Slack, or social media.
Click the image above to watch the demo video on YouTube! 🚀
CookBook is designed with scalability, safety, and reliability in mind. The software architecture includes modern solutions to ensure a seamless experience for users.
- Content Delivery Network (CDN): Accelerates content delivery by distributing data globally.
- Load Balancing: Ensures optimal resource utilization and improves availability.
- Cache: Reduces latency and increases speed by caching frequently accessed content.
- Domain: Ensures secure domain configurations.
- SSL/TLS: Encrypts communication between users and the server for secure data transfer.
- DDoS Protection: Protects against distributed denial-of-service attacks to ensure site reliability.
Access CookBook directly via this link: Cook Book.
If the page fails to load, you can try the following:
- Switch to a different network environment (e.g., home network or mobile hotspot).
- Some users may experience DNS resolution failures under NC State's network due to DNS server issues.
If problems persist, follow the installation instructions below to run CookBook locally.
Before setting up the project, ensure you have the following installed:
- MongoDB: Create a cluster and generate the DB URL, username, and password.
- GROQ: Create an API key.
- Create a
.envfile in theapifolder with the following details:
ATLAS_URI = ...
DATABASE = cookbook
GROQ_API_KEY = ...
PORT = 8000
- Docker
- Docker Compose
- (Optional) Python 3.11 and pytest 7.4.4 for testing the API
- (Optional) Node.js and npm for frontend testing
You can find the dataset used for this project here
Follow these steps to set up and run the backend server:
- Navigate to the API folder:
cd api - Install required dependencies:
pip install -r requirements.txt
- Run the application server:
python -m uvicorn main:app --reload
In case you run into any issues running the above commands, some operating systems may require you to use python3 instead of python and pip3 instead of pip.
To set up the front end React app, do:
- Navigate to the frontend folder:
cd frontend - Install required dependencies:
npm install
- If the above command fails, use the following alternative::
npm install --legacy-peer-deps
- Start the React app:
npm start
CookBook has been upgraded with exciting new features to make your cooking experience smarter, more interactive, and hassle-free! Below are the highlights of the latest functionalities added:
A fresh addition! Choose from multiple voice options to guide you through cooking, enhancing convenience and enabling hands-free operation.
Make CookBook your own with beautifully designed themes like Midnight Chef, Literary Lemon, and more. Create the perfect cooking atmosphere tailored to your style.
Plan your meals for the week and print them with ease! CookBook helps you stay organized by preparing a clear, printable meal plan to simplify your cooking schedule.
Easily generate shopping lists from selected recipes and export them as PDFs for offline access and convenience. Save time and never forget an ingredient while shopping!
Looking for something quick? Or perhaps you want to try a specific cuisine? Use advanced filters to narrow down recipes by:
- Cuisine type
- Cooking time
- Dietary preferences
Share your favorite recipes instantly via Discord, Slack, or other social media platforms. Collaboration in the kitchen has never been easier!
- This is the CookBook HomePage that should automatically open in a browser after executing the command: 'npm start'
- The user can use the search bar to enter the ingredients one by one, and then proceed by clicking the arrow on the right.
- The user would then be redirected to the page showing the recipe suggestions.
- The details of a recipe can be viewed by simple clicking on a recipe from the list of recipes being displayed.
- Above content mentions that users may manually input keyword, and click on 'search tag' to create some keyword search tags to search recepies. Besides, users may also click on some "food tags" to search receipes without specific input. For example, we may select "milk" tag:
- Then, we may have results shown as below:
- What is more, if users are not sure that tags to be chosen, they are able to use sliders to set some values for [Calorie, Fat, Suger, Protain]. The filtered recepies will be shown after using this kind of search. For example, if we want receipes that fulfill some requirements as:
- As former example cases, filtered results are displayed:
-
IDE and Style Checker: VSCode
-
Code Style Formatter: Beautify
-
Code Syntax Checker : Eslint for Vscode plugin.
Following extensions have to be added to you VS Code editor:
- For Eslint: Install - dbaeumer.vscode-eslint
- For Prettier: Install - esbenp.prettier-vscode
- Update the settings.json of your VS Code editor to include these statements (you can add them to your existing ones):
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"eslint.alwaysShowStatus": true,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
}
}
In case of any queries and for additional help, please email us at: [email protected]
|
Soundarya Khanapur |
Mugdha Joshi |
Jing Huang |
- Pinxiang Wang
- Yuheng Zhu
- Mengzhe Wang
- Jiayuan Huang
- Yiran Zhu
You can find the dataset used for this project here
| Factor | Score | Notes |
|---|---|---|
| Video | 3 | https://youtu.be/Tk9iwPMeQhA?si=6ZQWc6nXfInSZTet |
| Workload | 3 | Distributed |
| Number of commits | 3 | 50+ |
| Number of commits: by different people | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/graphs/contributors |
| Issues report: There are many | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/issues |
| Issues are being closed | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/issues?q=is%3Aissue+is%3Aclosed |
| DOI badge | 3 | https://zenodo.org/records/14200974 |
| Docs: format | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/blob/main/.github/workflows/autopep8.yml |
| Docs: description | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| Docs: short animated video | 3 | |
| Docs: strong punchlines | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| Docs: mini tutorials | 3 | https://github.com/Software-Engineering-2024-Group/BurnoutExtreme/blob/master/Tutorials.md#signup-and-sign-in |
| Use of version control tools | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/blob/main/.github/workflows/autopep8.yml |
| Use of style checkers | 3 | https://github.com/Software-Engineering-2024-Group/BurnoutExtreme/blob/master/.github/workflows/autopep8.yml |
| Use of code formatters. | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/blob/main/.github/workflows/flake8.yml |
| Use of syntax checkers. | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook?tab=readme-ov-file#style-checker-and-code-fomatter |
| Use of code coverage | 3 | https://coveralls.io/github/Software-Engineering-2024-Group/my-cookbook?branch=main |
| Other automated analysis tools | 2 | https://github.com/Software-Engineering-2024-Group/my-cookbook/blob/main/.github/workflows/build.yml |
| Test cases exist | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/tree/main/tests |
| Test cases are routinely executed | 2 | https://github.com/Software-Engineering-2024-Group/my-cookbook/tree/main/tests |
| The files http://contributing.md/ lists coding standards and lots of tips | 3 | |
| Issues are discussed before they are closed | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/issues |
| Chat channel: exists | 3 | whatsapp, discord(https://discord.gg/4zmAMZNY) |
| Test cases: a large proportion of the issues related to handling failing cases. | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/issues |
| Evidence that the whole team is using the same tools | 3 | |
| Evidence that the members of the team are working across multiple places in the code base | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/pulse |
| Short release cycles | 3 | |
| Does your website and documentation provide a clear, high-level overview of your software? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| Does your website and documentation clearly describe the type of user who should use your software? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| Do you publish case studies to show how your software has been used by yourself and others? | 3 | |
| Is the name of your project/software unique? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| Is your project/software name free from trademark violations? | 3 | |
| Is your software available as a package that can be deployed without building it? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| Is your software available for free? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| Is your source code publicly available to download, either as a downloadable bundle or via access to a source code repository? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| Is your software hosted in an established, third-party repository like GitHub? | 3 | |
| Is your documentation clearly available on your website or within your software? | 3 | |
| Does your documentation include a "quick start" guide, that provides a short overview of how to use your software with some basic examples of use? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| If you provide more extensive documentation, does this provide clear, step-by-step instructions on how to deploy and use your software? | 3 | |
| Do you provide a comprehensive guide to all your software’s commands, functions and options? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook |
| Do you provide troubleshooting information that describes the symptoms and step-by-step solutions for problems and error messages? | 3 | |
| If your software can be used as a library, package or service by other software, do you provide comprehensive API documentation? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/blob/main/INSTALL.md |
| Do you store your documentation under revision control with your source code? | 2 | |
| Do you publish your release history e.g. release data, version numbers, key features of each release etc. on your web site or in your documentation? | 3 | |
| Does your software describe how a user can get help with using your software? | 3 | |
| Does your website and documentation describe what support, if any, you provide to users and developers? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/blob/main/INSTALL.md |
| Does your project have an e-mail address or forum that is solely for supporting users? | 3 | |
| Are e-mails to your support e-mail address received by more than one person? | 3 | |
| Does your project have a ticketing system to manage bug reports and feature requests? | 2 | https://github.com/Software-Engineering-2024-Group/my-cookbook/issues |
| Is your project's ticketing system publicly visible to your users, so they can view bug reports and feature requests? | 3 | https://github.com/Software-Engineering-2024-Group/my-cookbook/issues |
CookBook
├─ .DS_Store
├─ .git
│ ├─ COMMIT_EDITMSG
│ ├─ FETCH_HEAD
│ ├─ HEAD
│ ├─ ORIG_HEAD
│ ├─ branches
│ ├─ config
│ ├─ description
│ ├─ hooks
│ │ ├─ applypatch-msg.sample
│ │ ├─ commit-msg.sample
│ │ ├─ fsmonitor-watchman.sample
│ │ ├─ post-update.sample
│ │ ├─ pre-applypatch.sample
│ │ ├─ pre-commit.sample
│ │ ├─ pre-merge-commit.sample
│ │ ├─ pre-push.sample
│ │ ├─ pre-rebase.sample
│ │ ├─ pre-receive.sample
│ │ ├─ prepare-commit-msg.sample
│ │ ├─ push-to-checkout.sample
│ │ ├─ sendemail-validate.sample
│ │ └─ update.sample
│ ├─ index
│ ├─ info
│ │ └─ exclude
│ ├─ logs
│ │ ├─ HEAD
│ │ └─ refs
│ │ ├─ heads
│ │ │ ├─ deployment
│ │ │ ├─ feature
│ │ │ │ ├─ sharing
│ │ │ │ └─ voice
│ │ │ ├─ main
│ │ │ └─ testing
│ │ └─ remotes
│ │ └─ origin
│ │ ├─ HEAD
│ │ ├─ deployment
│ │ ├─ feature
│ │ │ ├─ custom-recipe
│ │ │ ├─ sharing
│ │ │ └─ voice
│ │ ├─ main
│ │ └─ testing
│ ├─ objects
│ │ ├─ 05
│ │ │ └─ e0965be70269e9d0e80b4a7abcd19cee5045aa
│ │ ├─ 0b
│ │ │ └─ 3319b88eb440710814e313a0a0ec5af41a83cc
│ │ ├─ 0d
│ │ │ └─ ff004f27b6e45498cbf98849a09a1a6af9874c
│ │ ├─ 0e
│ │ │ └─ 94498776b5f0afd22be43a380e9ecbac725047
│ │ ├─ 12
│ │ │ └─ dfb43a249310457988157ac56bcf7ee1156374
│ │ ├─ 1c
│ │ │ └─ 9c24ec1a7f026f7cef4fb6f8abb431d4079fc5
│ │ ├─ 1d
│ │ │ └─ 0b4eb0ad5ea8fa4f2fa85fbf3b281dbb1b41b7
│ │ ├─ 1f
│ │ │ └─ 885a64eb4ad8eacb492ce1da01b557b23b19b5
│ │ ├─ 21
│ │ │ └─ b395ebc3bc7eaba702fa32badf955b2ea69958
│ │ ├─ 23
│ │ │ └─ a58ac52d9211d707e1ac0ec484736c5809bc2e
│ │ ├─ 27
│ │ │ └─ bc5baa52acca8ad0f3a0321a0957458de1675e
│ │ ├─ 28
│ │ │ └─ e92174ac0219af02b7f9a124f54a4e46a4f3a6
│ │ ├─ 2a
│ │ │ └─ 02c6a9003c06e0eb63232bca3d526a95c93095
│ │ ├─ 2b
│ │ │ └─ 79db553eecee4bea5cacd328834d8705b45aa7
│ │ ├─ 2c
│ │ │ ├─ 20e3def01cf18f20987259a3d859b4aa8f5f9d
│ │ │ └─ ee3a95364a8844f0433e5213c4c7b22e66f80f
│ │ ├─ 2d
│ │ │ └─ 9a284218a2ef36de0897f8bd40d9ba9fd2743a
│ │ ├─ 33
│ │ │ └─ 89e18869d320d3a1b5dc4b4f6aaa2ba3688c90
│ │ ├─ 35
│ │ │ └─ 5047b0ddb8cea63068b0ccd64b9365cfa2df9c
│ │ ├─ 38
│ │ │ └─ 5df5b7d9247910d69f0ecc50c8a5e2be19f8c7
│ │ ├─ 3a
│ │ │ └─ d62964ed81b6697f6c7218a6c9ca5fe8a7a351
│ │ ├─ 3b
│ │ │ └─ 302566fe62c27c8ce825f6d64286cd011e213d
│ │ ├─ 3f
│ │ │ └─ 2367dc9f0bf3a4cc7f2d42b5b485a2932115d2
│ │ ├─ 43
│ │ │ └─ 9ada9155dd5c1da0181bf8e6e071cb5c435e35
│ │ ├─ 45
│ │ │ ├─ 08d6f2117f9bd57e21e482f675817c60e30078
│ │ │ ├─ eecb95e928111642f35a0fda1e9fb35f84dc87
│ │ │ └─ eeeea6f81bf2451b45891eb49852b2d6d79c0f
│ │ ├─ 4e
│ │ │ └─ b258465db79cd4771e33ed907371c5a334f480
│ │ ├─ 4f
│ │ │ └─ 1142f5630b93c095998e437e1a2bd20b607e94
│ │ ├─ 50
│ │ │ └─ 12b8fc470a0bfbce2cec7238e7a351a76ce7fc
│ │ ├─ 55
│ │ │ └─ 17db073566a2a557375d6ddb9ddafb488cc5c9
│ │ ├─ 56
│ │ │ └─ 465aec48cfe99f1102b7fd68f95ea016edebe0
│ │ ├─ 57
│ │ │ ├─ 8c8a608d48133177e145cbf2e59f9acbe1d21e
│ │ │ └─ cef333e32cc136fe715103bf37c9100197ec79
│ │ ├─ 5a
│ │ │ └─ 3eee8dac34dbbc230490e664670d49e9a24490
│ │ ├─ 5b
│ │ │ └─ ebb86cf4099e14503daaad9d8d3ef0446611cf
│ │ ├─ 5e
│ │ │ └─ c9021186b01b24c9adb84708079f58151a3e03
│ │ ├─ 62
│ │ │ └─ 49314f7b1d3a425b459964d54a49a6e1802601
│ │ ├─ 63
│ │ │ └─ 7b7f066d93d871872fab0654a371e02ac415b1
│ │ ├─ 64
│ │ │ └─ 0e0ef369946319891bbf6f37c7c803faafa516
│ │ ├─ 73
│ │ │ └─ fe86be6ada884538f65e3d8e55048cd254a797
│ │ ├─ 7c
│ │ │ └─ 31b0872a6fe49e72423d3ad7017a71eba0570b
│ │ ├─ 82
│ │ │ └─ 2df5e946e036b77730d86d6476b4d8819820e1
│ │ ├─ 84
│ │ │ └─ 03357d66ff432d5d5a3cfb0f0322104d379f83
│ │ ├─ 86
│ │ │ └─ fd607e06ed348d5a51318fddbb937548cc6e4c
│ │ ├─ 88
│ │ │ └─ 7b8d72e8c2d7422b0376bd37b16391176e8b00
│ │ ├─ 89
│ │ │ └─ 708ed1661d80ecc4010ba346df8207d06de455
│ │ ├─ 8a
│ │ │ └─ 71c83e5df64559b56e7af5e25f8d357b4b9e07
│ │ ├─ 8e
│ │ │ └─ 45ca7105f3836da20768d67a35c5c5ffc64bb5
│ │ ├─ 8f
│ │ │ ├─ 8a4a71e58a1e2c164c0b73a1ee623e6ed424a6
│ │ │ └─ baeca88855919dd266975e786a7269e55eba3c
│ │ ├─ 92
│ │ │ └─ c6daa84c49571b9aa61281c88ee210ead16e08
│ │ ├─ 93
│ │ │ └─ d8ccb1f59ef71e7b233dd34e4e2f117e42452a
│ │ ├─ 94
│ │ │ └─ 76207bb81ee44dbafad15cfb50de1a51283bc4
│ │ ├─ 95
│ │ │ └─ 08aac5b04a69782dfbeac1630ea7d57fbe26b3
│ │ ├─ 96
│ │ │ └─ 9129c099b42928c06cd01035067eca7facf56b
│ │ ├─ 97
│ │ │ └─ fc547d726b2ea87da271952e03fa659b4d75a8
│ │ ├─ 98
│ │ │ └─ 05126010b269bf288173db7623eaebc27ca1f1
│ │ ├─ 9c
│ │ │ └─ 997bee6ba58d20dcf3c678eebe1017d0c888e7
│ │ ├─ 9e
│ │ │ └─ 1dc1c0085312c944af86e3777e14eb88430b5c
│ │ ├─ a0
│ │ │ └─ 505556f638908eed62296a05ea19a9016bdd54
│ │ ├─ a5
│ │ │ └─ 9bbd4ded2aff28877e486141ed444419061b1d
│ │ ├─ a6
│ │ │ └─ f9da8d99465ec2b09e9af5adb984cd576bdb8a
│ │ ├─ a8
│ │ │ └─ 7d925906dd12e0e33d9bdb4ad50303a20928af
│ │ ├─ aa
│ │ │ └─ 42eb78e014d5916c16853d7713e591ed878178
│ │ ├─ ac
│ │ │ └─ 2f6c8814a74213fff124db7aabbc88ec3b3846
│ │ ├─ ae
│ │ │ └─ 2e39f23f2834d54a5d18dbc90e3cda3d00d201
│ │ ├─ af
│ │ │ ├─ 5706c29b537769ed01b173e62c12c7a09f255e
│ │ │ └─ f0407fa24f199085fc2ca399cd04698dab9dc1
│ │ ├─ b0
│ │ │ └─ d4d2e31be48d5245abc85a94052adc7111cadb
│ │ ├─ b2
│ │ │ └─ ee1df41a9ef6394b7c4f2832e436eee822ae2a
│ │ ├─ b4
│ │ │ └─ 43203e19ff74b71be21af72474e6033867d62e
│ │ ├─ b6
│ │ │ └─ ca86dacf42818d6f5e199d925db43676e62f85
│ │ ├─ ba
│ │ │ ├─ 0974b2e7a07a77153f9c777cfdd4b5251104b3
│ │ │ └─ 5c9c50582c1141dd237337321105cb9bcf1c30
│ │ ├─ be
│ │ │ └─ 1cdc8366f2b7562308ec152a69a774e0d62589
│ │ ├─ bf
│ │ │ └─ 2266d1193d4b0369743b2074054bf0e446e95f
│ │ ├─ c2
│ │ │ ├─ 6e9936d970b54f8e422c7538735bad3a93ff32
│ │ │ └─ cb2b753ec6664caceee8a6c2079243ee19bd6a
│ │ ├─ c4
│ │ │ └─ c35c40fc479461d898bbf13a3294b588870404
│ │ ├─ c9
│ │ │ └─ e9ef1c2e1fb2337c263cd33095573e91c932c2
│ │ ├─ cd
│ │ │ └─ 735018cba96ad337385e3666ea395f83e889ab
│ │ ├─ cf
│ │ │ └─ f3fc8f9916aa6ea1b4b97237168ca0bca71048
│ │ ├─ d2
│ │ │ └─ 40aa4500e7c05b0a475cf57115abb4c3ee49a1
│ │ ├─ d6
│ │ │ └─ ddd185635923c19a76d0a38bd66de0874399d4
│ │ ├─ db
│ │ │ ├─ 289e152c510a1feaa873bfcfcbc71afb548192
│ │ │ ├─ 2fb59dac5993906dbf0d712d9c28c0a867ee08
│ │ │ └─ 574e4410c6139964f7097e9483f6e18a1e80a7
│ │ ├─ dd
│ │ │ └─ c3e50fa76cf9f43532b6d9170f8b8abf9dd341
│ │ ├─ e1
│ │ │ └─ f5461b9a857e1592e6ead0387e856a9572239f
│ │ ├─ e2
│ │ │ └─ 624a1ef480ff481ea9355ae657e3f59e38386d
│ │ ├─ e4
│ │ │ └─ 6c17f5660215efa2296bc8842abdc3df74e6b8
│ │ ├─ e6
│ │ │ └─ 2c7589183ccaecccd1f603d02abe68ec51fea7
│ │ ├─ e7
│ │ │ ├─ 712e1b3fc982c63bf3900f167db4a128b99fcb
│ │ │ └─ 98ae6feeefec68ff154574fe6ee8b85c6badf9
│ │ ├─ ea
│ │ │ └─ 39a3ed6c9af3449f26a82a265ce23b53273b67
│ │ ├─ ee
│ │ │ └─ 50c4157b92ba1a5ed5b7f84cc0173cdb878626
│ │ ├─ ef
│ │ │ └─ d3b43ad008caac2176b0cc00a809df69c0ae27
│ │ ├─ f6
│ │ │ └─ 0368f89ab89ac1c06cd8a7ecedcc157b3ec588
│ │ ├─ fa
│ │ │ ├─ 81f02fff8948545949813a00a39eabaaadd9e6
│ │ │ └─ d083da3df884b22975a34cf43dad821edb56a5
│ │ ├─ fb
│ │ │ └─ 58b6fcd36eb073621a612501f45ec4d39d162f
│ │ ├─ fc
│ │ │ └─ 3efe393c5ef63c5dd47335eecf0497cbac209a
│ │ ├─ info
│ │ └─ pack
│ │ ├─ pack-120a108bc00379b2f122869f8014cfe85126262e.idx
│ │ ├─ pack-120a108bc00379b2f122869f8014cfe85126262e.pack
│ │ └─ pack-120a108bc00379b2f122869f8014cfe85126262e.rev
│ ├─ packed-refs
│ └─ refs
│ ├─ heads
│ │ ├─ deployment
│ │ ├─ feature
│ │ │ ├─ sharing
│ │ │ └─ voice
│ │ ├─ main
│ │ └─ testing
│ ├─ remotes
│ │ └─ origin
│ │ ├─ HEAD
│ │ ├─ deployment
│ │ ├─ feature
│ │ │ ├─ custom-recipe
│ │ │ ├─ sharing
│ │ │ └─ voice
│ │ ├─ main
│ │ └─ testing
│ └─ tags
├─ .github
│ └─ workflows
│ ├─ node.js.yml
│ ├─ python-app.yml
│ └─ workflow.yml
├─ .gitignore
├─ CITATION.cff
├─ CODE_OF_CONDUCT.md
├─ CONTRIBUTING.md
├─ LICENSE
├─ README.md
├─ api
│ ├─ Dockerfile
│ ├─ __init__.py
│ ├─ main.py
│ ├─ models.py
│ ├─ requirements.txt
│ └─ routes.py
├─ assets
│ ├─ HomePage.PNG
│ ├─ HomePage_new.png
│ ├─ RecipeDetails.PNG
│ ├─ SearchBar.PNG
│ ├─ SearchResults.PNG
│ ├─ codecov.png
│ ├─ demo.gif
│ ├─ filterSearch1.png
│ ├─ filterSearch2.png
│ ├─ logo.png
│ ├─ tagSearch1.jpg
│ ├─ tagSearch2.jpg
│ ├─ team_edit.png
│ ├─ video1.m4v
│ └─ video2.m4v
├─ docker-compose.yml
├─ docs
│ ├─ Home.css
│ ├─ Safety.md
│ ├─ Scalability.md
│ ├─ api
│ │ ├─ main.html
│ │ ├─ models.html
│ │ └─ routes.html
│ ├─ api.html
│ ├─ components.html
│ ├─ images
│ │ ├─ 4a08d1b7-15a5-0eed-0f9f-0c0337f05c03.jpg
│ │ ├─ 8750c800-0485-f790-5fdc-5a8cf409301e.jpg
│ │ ├─ SSL.png
│ │ ├─ cache.png
│ │ ├─ cdn.png
│ │ ├─ e6fab1f1-ae30-31cf-b73f-aa548e18d0f4.jpg
│ │ ├─ fgfgfg4.jpg
│ │ ├─ load.png
│ │ ├─ load_balancing.png
│ │ ├─ screenshot1.png
│ │ └─ screenshot2.png
│ ├─ index.html
│ ├─ jquery.js
│ ├─ nicepage.css
│ ├─ nicepage.js
│ ├─ proj1rubric.md
│ ├─ proj1rubricComments.pdf
│ ├─ proj2rubric.md
│ ├─ search.js
│ └─ style
│ ├─ accordian.pack.js
│ └─ style.css
├─ frontend
│ ├─ .eslintignore
│ ├─ .eslintrc.json
│ ├─ .gitignore
│ ├─ .prettierignore
│ ├─ .prettierrc.json
│ ├─ .vscode
│ │ └─ settings.json
│ ├─ Dockerfile
│ ├─ README.md
│ ├─ package-lock.json
│ ├─ package.json
│ ├─ public
│ │ ├─ favicon.ico
│ │ └─ index.html
│ ├─ src
│ │ ├─ App.css
│ │ ├─ App.test.tsx
│ │ ├─ App.tsx
│ │ ├─ features
│ │ │ ├─ AppContent
│ │ │ │ ├─ AppContent.tsx
│ │ │ │ ├─ HomePage
│ │ │ │ │ ├─ AboutPage.tsx
│ │ │ │ │ ├─ ContactPage.tsx
│ │ │ │ │ ├─ HomePage.css
│ │ │ │ │ ├─ HomePage.test.tsx
│ │ │ │ │ ├─ HomePage.tsx
│ │ │ │ │ └─ photos
│ │ │ │ │ ├─ eighth.jpg
│ │ │ │ │ ├─ fifth.jpg
│ │ │ │ │ ├─ first.jpg
│ │ │ │ │ ├─ fourth.jpg
│ │ │ │ │ ├─ logo.png
│ │ │ │ │ ├─ nineth.jpg
│ │ │ │ │ ├─ second.jpg
│ │ │ │ │ ├─ seventh.jpg
│ │ │ │ │ ├─ sixth.jpg
│ │ │ │ │ ├─ tenth.jpg
│ │ │ │ │ └─ third.jpg
│ │ │ │ ├─ NutritionFilter
│ │ │ │ │ └─ CustomizedAccordions.tsx
│ │ │ │ ├─ RecipeInformation
│ │ │ │ │ ├─ RecipeInformation.css
│ │ │ │ │ ├─ RecipeInformation.test.tsx
│ │ │ │ │ ├─ RecipeInformation.tsx
│ │ │ │ │ ├─ getRecipeInformation.action.ts
│ │ │ │ │ ├─ getRecipeInformation.actionTypes.ts
│ │ │ │ │ ├─ getRecipeInformation.reducer.ts
│ │ │ │ │ ├─ getRecipeInformation.saga.ts
│ │ │ │ │ └─ no-image.png
│ │ │ │ ├─ RecipeList
│ │ │ │ │ ├─ RecipeList.css
│ │ │ │ │ ├─ RecipeList.tsx
│ │ │ │ │ ├─ getRecipeList.action.ts
│ │ │ │ │ ├─ getRecipeList.actionTypes.ts
│ │ │ │ │ ├─ getRecipeList.reducer.ts
│ │ │ │ │ └─ getRecipeList.saga.ts
│ │ │ │ └─ Tag
│ │ │ │ ├─ GetTags.tsx
│ │ │ │ ├─ TagList.css
│ │ │ │ ├─ getTagList.action.ts
│ │ │ │ ├─ getTagList.actionTypes.ts
│ │ │ │ ├─ getTags.reducer.ts
│ │ │ │ └─ getTags.saga.ts
│ │ │ ├─ GetIngredients
│ │ │ │ ├─ GetIngredients.tsx
│ │ │ │ ├─ getIngredients.action.ts
│ │ │ │ ├─ getIngredients.actionTypes.ts
│ │ │ │ ├─ getIngredients.reducer.ts
│ │ │ │ └─ getIngredients.saga.ts
│ │ │ ├─ Header
│ │ │ │ ├─ Header.css
│ │ │ │ ├─ Header.test.tsx
│ │ │ │ └─ Header.tsx
│ │ │ ├─ Navbar
│ │ │ │ ├─ Navbar.css
│ │ │ │ ├─ Navbar.test.tsx
│ │ │ │ └─ Navbar.tsx
│ │ │ ├─ apiMethods.ts
│ │ │ ├─ features.reducer.ts
│ │ │ └─ features.saga.ts
│ │ ├─ fonts
│ │ │ ├─ Roboto-Regular.ttf
│ │ │ └─ Roboto-Thin.ttf
│ │ ├─ index.css
│ │ ├─ index.tsx
│ │ ├─ logo.svg
│ │ ├─ react-app-env.d.ts
│ │ ├─ reportWebVitals.ts
│ │ ├─ setupTests.ts
│ │ └─ store.ts
│ └─ tsconfig.json
└─ tests
├─ .env
├─ coverage.xml
├─ sliderCollections.tsx
└─ test_routes.py
















