From a8154ef97c16f58a814f67014c9fc712b8b70c9b Mon Sep 17 00:00:00 2001 From: Arihant Tiwari Date: Wed, 14 May 2025 19:46:26 -0400 Subject: [PATCH 1/2] fiat lux --- ChefIT_Architecture.md | 10 ++++++++++ component.png | Bin 0 -> 17758 bytes entity_relation.png | Bin 0 -> 27965 bytes sequence_diagram.png | Bin 0 -> 93892 bytes 4 files changed, 10 insertions(+) create mode 100644 ChefIT_Architecture.md create mode 100644 component.png create mode 100644 entity_relation.png create mode 100644 sequence_diagram.png diff --git a/ChefIT_Architecture.md b/ChefIT_Architecture.md new file mode 100644 index 0000000..5d4295b --- /dev/null +++ b/ChefIT_Architecture.md @@ -0,0 +1,10 @@ +# ChefIT Architecture + +![Component Diagram](component.png) +This is the system infrastructure diagram of ChefIT. Frontend is a React single‑page application that runs in the user’s browser and, over the HTTPS protocol, exchanges JSON payloads with a Python FastAPI backend that exposes REST endpoints. Whenever a user searches for recipes, FastAPI fans out to the external Spoonacular API also via HTTPS to retrieve recipe data. Supabase (postgres) is used for storing user profiles and each user's list of favorite recipes. + +![Entity Relation Diagram](entity_relation.png) +This is Entity Relation Diagram of ChefIT. `Users` table stores the apps users, mainly an assigned user_id, email (String), password(hashed string). `favorite_recipes` table is linked to Users table through `user_id` storing recipe_id for each user. `recpies` table is linked with `favorite_recipes` through `recipe_id` storing info with attributes such as vegetarian, vegan, glutenFree, dairyFree, servings and readyInMinutes. Because `favorite_recipes` points back to both parent tables, one user can save many recipes and one recipe can be saved by many users—together forming the expected many‑to‑many relationship between users and recipes. each recipe can have many ingredient rows (one‑to‑many) which holds its different ingredients. + +![Sequence diagram](sequence_diagram.png) +This is search by ingredients feature sequence diagram of ChefIT. This feature allows users to search recipes based on different ingredients. When a ChefIT user submits an ingredient list in the browser, the React web client sends an HTTPS GET request to the FastAPI backend via the search‑by‑ingredients route, passing the ingredients as query parameters. The backend translates that request into a call to Spoonacular’s GET /recipes/findByIngredients endpoint. Spoonacular returns a JSON array of matching recipes, which the FastAPI server then forwards to the web client. Finally, the client renders the recieved data, presenting users with the list of recipes that match their provided ingredients \ No newline at end of file diff --git a/component.png b/component.png new file mode 100644 index 0000000000000000000000000000000000000000..729f8ca467cc5d430a1840f5c66433e6d55ec64e GIT binary patch literal 17758 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 literal 0 HcmV?d00001 diff --git a/entity_relation.png b/entity_relation.png new file mode 100644 index 0000000000000000000000000000000000000000..babbca1f4e49d16ecedb13e49c3a10fd2ba2b3c7 GIT binary patch literal 27965 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 literal 0 HcmV?d00001 diff --git a/sequence_diagram.png b/sequence_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9c35ec46b0a1ae3a946e34bc1bf98ff798b16c02 GIT binary patch literal 93892 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

k0gOjW(^GiaDfJ#q(eDpRSGZVu#H^Z``-=!(}+ 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%0Dlwr_-hDw+MU;@Cb_qy-~NX@iT{u%u7i)M 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 N{abf$mTNmb`yX$25A^^5 literal 0 HcmV?d00001 From b5d8578c66e5d5a53eebd205e1c410cf688e807a Mon Sep 17 00:00:00 2001 From: Arihant Tiwari Date: Wed, 14 May 2025 19:47:53 -0400 Subject: [PATCH 2/2] fiat lux --- ChefIT_Architecture.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChefIT_Architecture.md b/ChefIT_Architecture.md index 5d4295b..66c8588 100644 --- a/ChefIT_Architecture.md +++ b/ChefIT_Architecture.md @@ -1,10 +1,13 @@ # ChefIT Architecture ![Component Diagram](component.png) + This is the system infrastructure diagram of ChefIT. Frontend is a React single‑page application that runs in the user’s browser and, over the HTTPS protocol, exchanges JSON payloads with a Python FastAPI backend that exposes REST endpoints. Whenever a user searches for recipes, FastAPI fans out to the external Spoonacular API also via HTTPS to retrieve recipe data. Supabase (postgres) is used for storing user profiles and each user's list of favorite recipes. ![Entity Relation Diagram](entity_relation.png) + This is Entity Relation Diagram of ChefIT. `Users` table stores the apps users, mainly an assigned user_id, email (String), password(hashed string). `favorite_recipes` table is linked to Users table through `user_id` storing recipe_id for each user. `recpies` table is linked with `favorite_recipes` through `recipe_id` storing info with attributes such as vegetarian, vegan, glutenFree, dairyFree, servings and readyInMinutes. Because `favorite_recipes` points back to both parent tables, one user can save many recipes and one recipe can be saved by many users—together forming the expected many‑to‑many relationship between users and recipes. each recipe can have many ingredient rows (one‑to‑many) which holds its different ingredients. ![Sequence diagram](sequence_diagram.png) + This is search by ingredients feature sequence diagram of ChefIT. This feature allows users to search recipes based on different ingredients. When a ChefIT user submits an ingredient list in the browser, the React web client sends an HTTPS GET request to the FastAPI backend via the search‑by‑ingredients route, passing the ingredients as query parameters. The backend translates that request into a call to Spoonacular’s GET /recipes/findByIngredients endpoint. Spoonacular returns a JSON array of matching recipes, which the FastAPI server then forwards to the web client. Finally, the client renders the recieved data, presenting users with the list of recipes that match their provided ingredients \ No newline at end of file