# diegosilva20/projeto-calculadora-matrizes architecture

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

- Interactive diagram: https://gitdiagram.com/diegosilva20/projeto-calculadora-matrizes
- Repository: https://github.com/diegosilva20/projeto-calculadora-matrizes

## Overview

Matriz Calculator is an educational matrix and linear-algebra web app. A visitor enters matrices on the home calculator, chooses an operation, and receives a result with explanatory steps that can be shared or exported; saved calculator state can persist in local storage. Tutorials and informational pages are available through routed navigation, with tutorial metadata also supplying SEO routes. The graph highlights the calculator path and documented tutorial/SEO capabilities. Connections to unsampled math operation internals and tutorial components are limited to explicit README or source-index evidence.

Main entry points: [`src/pages/Home.jsx`](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/pages/Home.jsx) (Calculator page), [`src/App.jsx`](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/App.jsx) (App routes), [`src/pages/TutorialPage.jsx`](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/pages/TutorialPage.jsx) (Tutorial renderer), [`src/utils/matrixCalculations.js`](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/utils/matrixCalculations.js) (Operations engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_presentation["Web experience"]
  node_app["App routes<br/>[App.jsx]"]
  node_home["Calculator page<br/>[Home.jsx]"]
  node_other_pages["Site pages"]
  node_shell["Shared shell<br/>[App.jsx]"]
end

subgraph group_calculator["Matrix calculator"]
  node_matrix_input["Matrix input<br/>[MatrixInput.jsx]"]
  node_calculator_state["Calculator state"]
  node_matrix_display["Matrix display<br/>[MatrixDisplay.jsx]"]
  node_result_display["Result display<br/>[ResultDisplay.jsx]"]
end

subgraph group_math["Math engine"]
  node_calculator_engine["Operations engine"]
  node_gauss["Gauss elimination"]
  node_step_builders["Step builders<br/>[stepBuilders.js]"]
  node_matrix_utils["Matrix utilities<br/>[matrixUtils.js]"]
end

subgraph group_content["Learning content"]
  node_tutorial_index["Tutorial catalog<br/>[tutorialsInfo.js]"]
  node_tutorial_content["Tutorial content map<br/>[tutorialsData.jsx]"]
  node_tutorial_page["Tutorial renderer<br/>[TutorialPage.jsx]"]
end

subgraph group_seo["SEO routes"]
  node_seo_routes["SEO routes<br/>[seoRoutes.js]"]
end

node_visitor(("Visitor"))
node_browser_storage[("Local storage")]
node_pdf_export["PDF export"]

node_visitor -->|"opens"| node_app
node_app -->|"routes to"| node_home
node_app -->|"routes to"| node_other_pages
node_app -->|"renders"| node_shell
node_visitor -->|"enters matrices"| node_matrix_input
node_home -->|"renders"| node_matrix_input
node_home -->|"uses state"| node_calculator_state
node_calculator_state -->|"reads and writes"| node_browser_storage
node_calculator_state -->|"calls"| node_calculator_engine
node_home -->|"renders"| node_matrix_display
node_home -->|"renders"| node_result_display
node_calculator_engine -->|"calls"| node_gauss
node_calculator_engine -->|"uses"| node_matrix_utils
node_gauss -->|"uses"| node_matrix_utils
node_step_builders -->|"uses"| node_matrix_utils
node_home -->|"exports result"| node_pdf_export
node_tutorial_page -->|"renders"| node_tutorial_content
node_tutorial_content -->|"maps metadata"| node_tutorial_index
node_seo_routes -->|"builds routes"| node_tutorial_index
node_app -->|"routes to"| node_tutorial_page
node_tutorial_page -->|"links calculator"| node_home
node_tutorial_page -.->|"connects operations"| node_calculator_engine

click node_app "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/App.jsx"
click node_home "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/pages/Home.jsx"
click node_other_pages "https://github.com/diegosilva20/projeto-calculadora-matrizes/tree/main/src/pages"
click node_shell "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/App.jsx"
click node_matrix_input "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/components/common/MatrixInput.jsx"
click node_calculator_state "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/hooks/useMatrixCalculator.js"
click node_matrix_display "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/components/common/MatrixDisplay.jsx"
click node_result_display "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/components/ui/ResultDisplay.jsx"
click node_calculator_engine "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/utils/matrixCalculations.js"
click node_gauss "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/algorithms/gaussianElimination.js"
click node_step_builders "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/utils/stepBuilders.js"
click node_matrix_utils "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/utils/matrixUtils.js"
click node_tutorial_index "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/data/tutorialsInfo.js"
click node_tutorial_content "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/data/tutorialsData.jsx"
click node_tutorial_page "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/pages/TutorialPage.jsx"
click node_seo_routes "https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/data/seoRoutes.js"

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_app,node_home,node_other_pages,node_shell toneBlue
class node_matrix_input,node_calculator_state,node_matrix_display,node_result_display,node_browser_storage toneAmber
class node_calculator_engine,node_gauss,node_step_builders,node_matrix_utils toneMint
class node_tutorial_index,node_tutorial_content,node_tutorial_page toneRose
class node_seo_routes,node_visitor,node_pdf_export toneIndigo
```

## Components

### Web experience

- [App routes](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/App.jsx): `src/App.jsx`
- [Calculator page](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/pages/Home.jsx): `src/pages/Home.jsx`
- [Site pages](https://github.com/diegosilva20/projeto-calculadora-matrizes/tree/main/src/pages): `src/pages`
- [Shared shell](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/App.jsx): `src/App.jsx`

### Matrix calculator

- [Matrix input](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/components/common/MatrixInput.jsx): `src/components/common/MatrixInput.jsx`
- [Calculator state](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/hooks/useMatrixCalculator.js): `src/hooks/useMatrixCalculator.js`
- [Matrix display](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/components/common/MatrixDisplay.jsx): `src/components/common/MatrixDisplay.jsx`
- [Result display](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/components/ui/ResultDisplay.jsx): `src/components/ui/ResultDisplay.jsx`

### Math engine

- [Operations engine](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/utils/matrixCalculations.js): `src/utils/matrixCalculations.js`
- [Gauss elimination](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/algorithms/gaussianElimination.js): `src/algorithms/gaussianElimination.js`
- [Step builders](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/utils/stepBuilders.js): `src/utils/stepBuilders.js`
- [Matrix utilities](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/utils/matrixUtils.js): `src/utils/matrixUtils.js`

### Learning content

- [Tutorial catalog](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/data/tutorialsInfo.js): `src/data/tutorialsInfo.js`
- [Tutorial content map](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/data/tutorialsData.jsx): `src/data/tutorialsData.jsx`
- [Tutorial renderer](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/pages/TutorialPage.jsx): `src/pages/TutorialPage.jsx`

### SEO routes

- [SEO routes](https://github.com/diegosilva20/projeto-calculadora-matrizes/blob/main/src/data/seoRoutes.js): `src/data/seoRoutes.js`

### Other components

- **Visitor**
- **Local storage**
- **PDF export**

## Connections

- Visitor → App routes: opens (evidence: `src/App.jsx`)
- App routes → Calculator page: routes to (evidence: `src/App.jsx`)
- App routes → Site pages: routes to (evidence: `src/App.jsx`)
- App routes → Shared shell: renders (evidence: `src/App.jsx`)
- Visitor → Matrix input: enters matrices (evidence: `src/components/common/MatrixInput.jsx`)
- Calculator page → Matrix input: renders (evidence: `src/pages/Home.jsx`)
- Calculator page → Calculator state: uses state (evidence: `src/pages/Home.jsx`)
- Calculator state → Local storage: reads and writes (evidence: `src/hooks/useMatrixCalculator.js`)
- Calculator state → Operations engine: calls (evidence: `src/hooks/useMatrixCalculator.js`)
- Calculator page → Matrix display: renders (evidence: `src/pages/Home.jsx`)
- Calculator page → Result display: renders (evidence: `src/pages/Home.jsx`)
- Operations engine → Gauss elimination: calls (evidence: `src/utils/matrixCalculations.js`)
- Operations engine → Matrix utilities: uses (evidence: `src/utils/matrixCalculations.js`)
- Gauss elimination → Matrix utilities: uses (evidence: `src/algorithms/gaussianElimination.js`)
- Step builders → Matrix utilities: uses (evidence: `src/utils/stepBuilders.js`)
- Calculator page → PDF export: exports result (evidence: `src/pages/Home.jsx`)
- Tutorial renderer → Tutorial content map: renders (evidence: `src/pages/TutorialPage.jsx`)
- Tutorial content map → Tutorial catalog: maps metadata (evidence: `src/data/tutorialsData.jsx`)
- SEO routes → Tutorial catalog: builds routes (evidence: `src/data/seoRoutes.js`)
- App routes → Tutorial renderer: routes to (evidence: `src/App.jsx`)
- Tutorial renderer → Calculator page: links calculator (evidence: `src/pages/TutorialPage.jsx`)
- Tutorial renderer → Operations engine: connects operations (evidence: `README.md`)
