# p3drovmarques/door-calculator architecture

> Architecture diagram of the GitHub repository p3drovmarques/door-calculator, 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/p3drovmarques/door-calculator
- Repository: https://github.com/p3drovmarques/door-calculator

## Overview

Door Calculator is a small React Native app for estimating steel-door dimensions and material requirements. The user selects sheet type, thickness, and door operation, enters width and height, and taps Calculate. The Home screen validates the dimensions, computes final height, sheet count, area, and weight, then displays the result; the reusable Input component supplies the dimension fields. The calculation logic and UI are combined in the Home screen, so the graph does not imply a separate calculation service. README capability details are included; no external services or persistent storage are documented.

Main entry points: [`src/screens/home/index.tsx`](https://github.com/p3drovmarques/door-calculator/blob/main/src/screens/home/index.tsx) (Door Calculator Screen), [`App.tsx`](https://github.com/p3drovmarques/door-calculator/blob/main/App.tsx) (App Shell), [`index.ts`](https://github.com/p3drovmarques/door-calculator/blob/main/index.ts) (App Entry), [`src/components/input/index.tsx`](https://github.com/p3drovmarques/door-calculator/blob/main/src/components/input/index.tsx) (Dimension Input)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Door Calculator"]
  node_entry["App Entry<br/>[index.ts]"]
  node_app_shell["App Shell<br/>[App.tsx]"]
  node_calculator["Door Calculator Screen<br/>[index.tsx]"]
  node_dimension_input["Dimension Input<br/>[index.tsx]"]
  node_estimate["Estimate Results<br/>[index.tsx]"]
end

node_user(("User"))

node_entry -->|"registers"| node_app_shell
node_app_shell -->|"renders"| node_calculator
node_calculator -->|"renders fields"| node_dimension_input
node_user -->|"selects and submits"| node_calculator
node_calculator -->|"calculates and displays"| node_estimate

click node_entry "https://github.com/p3drovmarques/door-calculator/blob/main/index.ts"
click node_app_shell "https://github.com/p3drovmarques/door-calculator/blob/main/App.tsx"
click node_calculator "https://github.com/p3drovmarques/door-calculator/blob/main/src/screens/home/index.tsx"
click node_dimension_input "https://github.com/p3drovmarques/door-calculator/blob/main/src/components/input/index.tsx"
click node_estimate "https://github.com/p3drovmarques/door-calculator/blob/main/src/screens/home/index.tsx"

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_shell,node_calculator,node_dimension_input,node_estimate,node_user toneBlue
```

## Components

### Door Calculator

- [App Entry](https://github.com/p3drovmarques/door-calculator/blob/main/index.ts): `index.ts`
- [App Shell](https://github.com/p3drovmarques/door-calculator/blob/main/App.tsx): `App.tsx`
- [Door Calculator Screen](https://github.com/p3drovmarques/door-calculator/blob/main/src/screens/home/index.tsx): `src/screens/home/index.tsx`
- [Dimension Input](https://github.com/p3drovmarques/door-calculator/blob/main/src/components/input/index.tsx): `src/components/input/index.tsx`
- [Estimate Results](https://github.com/p3drovmarques/door-calculator/blob/main/src/screens/home/index.tsx): `src/screens/home/index.tsx`

### Other components

- **User**

## Connections

- App Entry → App Shell: registers
- App Shell → Door Calculator Screen: renders
- Door Calculator Screen → Dimension Input: renders fields
- User → Door Calculator Screen: selects and submits
- Door Calculator Screen → Estimate Results: calculates and displays
