# radebeneo/luteal architecture

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

- Interactive diagram: https://gitdiagram.com/radebeneo/luteal
- Repository: https://github.com/radebeneo/luteal

## Overview

Bite is a food-browsing and cart-management mobile app. Its principal workflow is browsing the home offers or searching/filtering the bundled menu, then managing cart contents and reviewing a checkout summary. The sampled cart and search screens show local data and Zustand state; checkout is presented as a button but no payment flow or backend is evidenced. README-described profile and monitoring capabilities are retained, though their internal wiring is not sampled.

Main entry points: [`app/(tabs)/search.tsx`](https://github.com/radebeneo/luteal/blob/main/app/(tabs)/search.tsx) (Search screen), [`app/(tabs)/_layout.tsx`](https://github.com/radebeneo/luteal/blob/main/app/(tabs)/_layout.tsx) (Main tabs), [`app/(tabs)/cart.tsx`](https://github.com/radebeneo/luteal/blob/main/app/(tabs)/cart.tsx) (Cart screen), [`app/(tabs)/index.tsx`](https://github.com/radebeneo/luteal/blob/main/app/(tabs)/index.tsx) (Home offers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["App experience"]
  node_root["Root navigation<br/>[_layout.tsx]"]
  node_tabs["Main tabs<br/>[_layout.tsx]"]
  node_home["Home offers<br/>[index.tsx]"]
  node_profile["Profile<br/>[profile.tsx]"]
  node_cartbutton["Cart shortcut<br/>[CartButton.tsx]"]
end

subgraph group_discovery["Menu discovery"]
  node_search["Search screen<br/>[search.tsx]"]
  node_searchbar["Search input<br/>[SearchBar.tsx]"]
  node_filters["Category filters"]
  node_menu["Menu catalog<br/>[data.ts]"]
  node_menucard["Menu cards<br/>[MenuCard.tsx]"]
end

subgraph group_cart["Cart management"]
  node_cartpage["Cart screen<br/>[cart.tsx]"]
  node_cartitem["Cart line item<br/>[CartItem.tsx]"]
  node_cartstore[("Cart state<br/>[cart.store.ts]")]
  node_checkoutbutton["Checkout action<br/>[CustomButton.tsx]"]
end

subgraph group_platform["App services"]
  node_sentry["Sentry monitoring<br/>[_layout.tsx]"]
  node_uiassets["UI assets<br/>[index.ts]"]
end

node_customer(("Food customer"))
node_sentryservice{{"Sentry service"}}

node_customer -->|"opens app"| node_root
node_root -->|"renders routes"| node_tabs
node_tabs -->|"routes to"| node_home
node_tabs -->|"routes to"| node_search
node_tabs -->|"routes to"| node_cartpage
node_tabs -->|"routes to"| node_profile
node_home -->|"reads offers"| node_menu
node_home -->|"renders"| node_cartbutton
node_search -->|"filters menu"| node_menu
node_search -->|"renders"| node_searchbar
node_search -->|"renders"| node_filters
node_search -->|"renders results"| node_menucard
node_search -->|"renders"| node_cartbutton
node_searchbar -->|"sets query"| node_search
node_filters -->|"sets category"| node_search
node_menucard -->|"adds item"| node_cartstore
node_cartbutton -->|"opens cart"| node_cartpage
node_cartpage -->|"reads totals"| node_cartstore
node_cartpage -->|"renders items"| node_cartitem
node_cartitem -->|"changes quantity"| node_cartstore
node_cartpage -->|"renders action"| node_checkoutbutton
node_root -->|"initializes"| node_sentry
node_sentry -.->|"sends events"| node_sentryservice
node_home -->|"uses imagery"| node_uiassets

click node_root "https://github.com/radebeneo/luteal/blob/main/app/_layout.tsx"
click node_tabs "https://github.com/radebeneo/luteal/blob/main/app/(tabs)/_layout.tsx"
click node_home "https://github.com/radebeneo/luteal/blob/main/app/(tabs)/index.tsx"
click node_profile "https://github.com/radebeneo/luteal/blob/main/app/(tabs)/profile.tsx"
click node_search "https://github.com/radebeneo/luteal/blob/main/app/(tabs)/search.tsx"
click node_searchbar "https://github.com/radebeneo/luteal/blob/main/components/SearchBar.tsx"
click node_filters "https://github.com/radebeneo/luteal/blob/main/components/FilterComponent.tsx"
click node_menu "https://github.com/radebeneo/luteal/blob/main/lib/data.ts"
click node_menucard "https://github.com/radebeneo/luteal/blob/main/components/MenuCard.tsx"
click node_cartbutton "https://github.com/radebeneo/luteal/blob/main/components/CartButton.tsx"
click node_cartpage "https://github.com/radebeneo/luteal/blob/main/app/(tabs)/cart.tsx"
click node_cartitem "https://github.com/radebeneo/luteal/blob/main/components/CartItem.tsx"
click node_cartstore "https://github.com/radebeneo/luteal/blob/main/store/cart.store.ts"
click node_checkoutbutton "https://github.com/radebeneo/luteal/blob/main/components/CustomButton.tsx"
click node_sentry "https://github.com/radebeneo/luteal/blob/main/app/_layout.tsx"
click node_uiassets "https://github.com/radebeneo/luteal/blob/main/constants/index.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_root,node_tabs,node_home,node_profile,node_cartbutton toneBlue
class node_search,node_searchbar,node_filters,node_menu,node_menucard toneAmber
class node_cartpage,node_cartitem,node_cartstore,node_checkoutbutton toneMint
class node_sentry,node_uiassets toneRose
class node_customer,node_sentryservice toneIndigo
```

## Components

### App experience

- [Root navigation](https://github.com/radebeneo/luteal/blob/main/app/_layout.tsx): `app/_layout.tsx`
- [Main tabs](https://github.com/radebeneo/luteal/blob/main/app/(tabs)/_layout.tsx): `app/(tabs)/_layout.tsx`
- [Home offers](https://github.com/radebeneo/luteal/blob/main/app/(tabs)/index.tsx): `app/(tabs)/index.tsx`
- [Profile](https://github.com/radebeneo/luteal/blob/main/app/(tabs)/profile.tsx): `app/(tabs)/profile.tsx`
- [Cart shortcut](https://github.com/radebeneo/luteal/blob/main/components/CartButton.tsx): `components/CartButton.tsx`

### Menu discovery

- [Search screen](https://github.com/radebeneo/luteal/blob/main/app/(tabs)/search.tsx): `app/(tabs)/search.tsx`
- [Search input](https://github.com/radebeneo/luteal/blob/main/components/SearchBar.tsx): `components/SearchBar.tsx`
- [Category filters](https://github.com/radebeneo/luteal/blob/main/components/FilterComponent.tsx): `components/FilterComponent.tsx`
- [Menu catalog](https://github.com/radebeneo/luteal/blob/main/lib/data.ts): `lib/data.ts`
- [Menu cards](https://github.com/radebeneo/luteal/blob/main/components/MenuCard.tsx): `components/MenuCard.tsx`

### Cart management

- [Cart screen](https://github.com/radebeneo/luteal/blob/main/app/(tabs)/cart.tsx): `app/(tabs)/cart.tsx`
- [Cart line item](https://github.com/radebeneo/luteal/blob/main/components/CartItem.tsx): `components/CartItem.tsx`
- [Cart state](https://github.com/radebeneo/luteal/blob/main/store/cart.store.ts): `store/cart.store.ts`
- [Checkout action](https://github.com/radebeneo/luteal/blob/main/components/CustomButton.tsx): `components/CustomButton.tsx`

### App services

- [Sentry monitoring](https://github.com/radebeneo/luteal/blob/main/app/_layout.tsx): `app/_layout.tsx`
- [UI assets](https://github.com/radebeneo/luteal/blob/main/constants/index.ts): `constants/index.ts`

### Other components

- **Food customer**
- **Sentry service**

## Connections

- Food customer → Root navigation: opens app
- Root navigation → Main tabs: renders routes
- Main tabs → Home offers: routes to
- Main tabs → Search screen: routes to
- Main tabs → Cart screen: routes to
- Main tabs → Profile: routes to
- Home offers → Menu catalog: reads offers
- Home offers → Cart shortcut: renders
- Search screen → Menu catalog: filters menu
- Search screen → Search input: renders
- Search screen → Category filters: renders
- Search screen → Menu cards: renders results
- Search screen → Cart shortcut: renders
- Search input → Search screen: sets query
- Category filters → Search screen: sets category
- Menu cards → Cart state: adds item
- Cart shortcut → Cart screen: opens cart
- Cart screen → Cart state: reads totals
- Cart screen → Cart line item: renders items
- Cart line item → Cart state: changes quantity
- Cart screen → Checkout action: renders action
- Root navigation → Sentry monitoring: initializes
- Sentry monitoring → Sentry service: sends events
- Home offers → UI assets: uses imagery
