# sahasawat-boss/stich-aistudio-easy-recipe architecture

> Architecture diagram of the GitHub repository sahasawat-boss/stich-aistudio-easy-recipe, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sahasawat-boss/stich-aistudio-easy-recipe
- Repository: https://github.com/sahasawat-boss/stich-aistudio-easy-recipe

## Overview

This is a client-side recipe discovery and guided-cooking app. Users browse or search a local recipe catalog, inspect a recipe and serving-scaled ingredients, then follow timed cooking steps; they can also save favorites and adjust profile preferences. App.tsx coordinates screen selection and shared state, including favorites, theme, and the selected recipe. The README is empty, and excerpts are partial, so links for unsampled UI behavior are limited to wiring visible in the supplied source.

Main entry points: [`src/App.tsx`](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/App.tsx) (App Coordinator), [`src/components/HomeScreen.tsx`](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/HomeScreen.tsx) (Home), [`src/components/FavoritesScreen.tsx`](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/FavoritesScreen.tsx) (Saved Recipes), [`src/data/recipes.ts`](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/data/recipes.ts) (Recipe Catalog)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App Shell"]
  node_entry["React Entry<br/>[main.tsx]"]
  node_app["App Coordinator<br/>[App.tsx]"]
  node_header["Header<br/>[Header.tsx]"]
  node_navigation["Bottom Navigation<br/>[BottomNav.tsx]"]
end

subgraph group_discovery["Recipe Discovery"]
  node_catalog["Recipe Catalog<br/>[recipes.ts]"]
  node_home["Home<br/>[HomeScreen.tsx]"]
  node_search["Search and Filters<br/>[SearchScreen.tsx]"]
  node_detail["Recipe Detail"]
end

subgraph group_cooking["Recipe Cooking"]
  node_cooking["Cooking Mode"]
  node_chime["Timer Chime<br/>[sound.ts]"]
end

subgraph group_personal["Personalization"]
  node_favorites["Saved Recipes"]
  node_profile["Profile<br/>[ProfileScreen.tsx]"]
end

node_user(("Cook"))

node_user -->|"opens app"| node_entry
node_entry -->|"renders"| node_app
node_app -->|"renders"| node_header
node_app -->|"renders"| node_navigation
node_app -->|"renders"| node_home
node_app -->|"renders"| node_search
node_app -->|"renders"| node_detail
node_app -->|"renders"| node_cooking
node_app -->|"renders"| node_favorites
node_app -->|"renders"| node_profile
node_home -->|"reads recipes"| node_catalog
node_search -->|"filters recipes"| node_catalog
node_favorites -->|"resolves saved IDs"| node_catalog
node_app -->|"looks up recipe"| node_catalog
node_home -->|"submits search"| node_app
node_search -->|"selects recipe"| node_app
node_home -->|"selects recipe"| node_app
node_favorites -->|"selects or cooks"| node_app
node_detail -->|"starts cooking"| node_app
node_app -->|"passes recipe"| node_detail
node_app -->|"passes recipe"| node_cooking
node_app -->|"passes saved IDs"| node_favorites
node_app -->|"passes saved count"| node_profile
node_cooking -->|"plays on timer"| node_chime

click node_entry "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/main.tsx"
click node_app "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/App.tsx"
click node_header "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/Header.tsx"
click node_navigation "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/BottomNav.tsx"
click node_catalog "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/data/recipes.ts"
click node_home "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/HomeScreen.tsx"
click node_search "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/SearchScreen.tsx"
click node_detail "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/RecipeDetailScreen.tsx"
click node_favorites "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/FavoritesScreen.tsx"
click node_profile "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/ProfileScreen.tsx"
click node_cooking "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/CookingModeScreen.tsx"
click node_chime "https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/utils/sound.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_app,node_header,node_navigation toneBlue
class node_catalog,node_home,node_search,node_detail toneAmber
class node_cooking,node_chime toneMint
class node_favorites,node_profile toneRose
class node_user toneIndigo
```

## Components

### App Shell

- [React Entry](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/main.tsx): `src/main.tsx`
- [App Coordinator](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/App.tsx): `src/App.tsx`
- [Header](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/Header.tsx): `src/components/Header.tsx`
- [Bottom Navigation](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/BottomNav.tsx): `src/components/BottomNav.tsx`

### Recipe Discovery

- [Recipe Catalog](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/data/recipes.ts): `src/data/recipes.ts`
- [Home](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/HomeScreen.tsx): `src/components/HomeScreen.tsx`
- [Search and Filters](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/SearchScreen.tsx): `src/components/SearchScreen.tsx`
- [Recipe Detail](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/RecipeDetailScreen.tsx): `src/components/RecipeDetailScreen.tsx`

### Recipe Cooking

- [Cooking Mode](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/CookingModeScreen.tsx): `src/components/CookingModeScreen.tsx`
- [Timer Chime](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/utils/sound.ts): `src/utils/sound.ts`

### Personalization

- [Saved Recipes](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/FavoritesScreen.tsx): `src/components/FavoritesScreen.tsx`
- [Profile](https://github.com/sahasawat-boss/stich-aistudio-easy-recipe/blob/main/src/components/ProfileScreen.tsx): `src/components/ProfileScreen.tsx`

### Other components

- **Cook**

## Connections

- Cook → React Entry: opens app
- React Entry → App Coordinator: renders
- App Coordinator → Header: renders
- App Coordinator → Bottom Navigation: renders
- App Coordinator → Home: renders
- App Coordinator → Search and Filters: renders
- App Coordinator → Recipe Detail: renders
- App Coordinator → Cooking Mode: renders
- App Coordinator → Saved Recipes: renders
- App Coordinator → Profile: renders
- Home → Recipe Catalog: reads recipes
- Search and Filters → Recipe Catalog: filters recipes
- Saved Recipes → Recipe Catalog: resolves saved IDs
- App Coordinator → Recipe Catalog: looks up recipe
- Home → App Coordinator: submits search
- Search and Filters → App Coordinator: selects recipe
- Home → App Coordinator: selects recipe
- Saved Recipes → App Coordinator: selects or cooks
- Recipe Detail → App Coordinator: starts cooking
- App Coordinator → Recipe Detail: passes recipe
- App Coordinator → Cooking Mode: passes recipe
- App Coordinator → Saved Recipes: passes saved IDs
- App Coordinator → Profile: passes saved count
- Cooking Mode → Timer Chime: plays on timer
