# heros919/flash_view architecture

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

- Interactive diagram: https://gitdiagram.com/heros919/flash_view
- Repository: https://github.com/heros919/flash_view

## Overview

Flash View is a NestJS API for granite inventory and B2B sales. Employees and Financeiro users authenticate, then manage blocks and slabs; Financeiro and Administrators also manage customers, catalog items, and sales. The README describes dashboard summaries, but the tree has no dedicated dashboard module, so it is shown only as a documented capability. Edges reflect sampled calls, indexed references, or README statements; unsampled implementation details are not inferred.

Main entry points: [`back/src/prisma/prisma.service.ts`](https://github.com/heros919/flash_view/blob/main/back/src/prisma/prisma.service.ts) (Application Database), [`back/src/auth/auth.controller.ts`](https://github.com/heros919/flash_view/blob/main/back/src/auth/auth.controller.ts) (Authentication API), [`back/src/auth/auth.service.ts`](https://github.com/heros919/flash_view/blob/main/back/src/auth/auth.service.ts) (Authentication), [`back/src/auth/strategies/jwt.strategy.ts`](https://github.com/heros919/flash_view/blob/main/back/src/auth/strategies/jwt.strategy.ts) (Token Validation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and Access"]
  node_auth_api["Authentication API<br/>[auth.controller.ts]"]
  node_auth_logic["Authentication<br/>[auth.service.ts]"]
  node_jwt_strategy["Token Validation<br/>[jwt.strategy.ts]"]
  node_jwt_guard["JWT Guard<br/>[jwt-auth.guard.ts]"]
  node_role_guard["Role Guard<br/>[roles.guard.ts]"]
  node_user_api["Account API"]
  node_user_logic["Account Management<br/>[usuario.service.ts]"]
end

subgraph group_inventory["Stone Inventory"]
  node_block_api["Block API"]
  node_block_logic["Block Management<br/>[blocos.service.ts]"]
  node_slab_api["Slab API"]
  node_slab_logic["Slab Management<br/>[chapas.service.ts]"]
end

subgraph group_commerce["Sales Operations"]
  node_customer_api["Customer API"]
  node_customer_logic["Customer Management<br/>[cliente.service.ts]"]
  node_sales_api["Catalog and Sales API"]
  node_sales_logic["Catalog and Sales<br/>[vendas.service.ts]"]
  node_finance_api["Finance Accounts API"]
  node_finance_logic["Finance Accounts"]
end

subgraph group_platform["Persistence and Overview"]
  node_dashboard["Dashboard Summary"]
  node_database[("Application Database<br/>[prisma.service.ts]")]
end

node_employee(("Employee"))
node_finance_user(("Financeiro / Admin"))

node_employee -->|"registers or logs in"| node_auth_api
node_finance_user -->|"logs in"| node_auth_api
node_auth_api -->|"calls"| node_auth_logic
node_auth_logic -->|"reads and writes"| node_database
node_auth_api -.->|"protects routes"| node_jwt_guard
node_jwt_guard -->|"validates token"| node_jwt_strategy
node_jwt_strategy -->|"loads account"| node_database
node_user_api -->|"calls"| node_user_logic
node_role_guard -->|"uses account roles"| node_user_logic
node_block_api -->|"calls"| node_block_logic
node_block_logic -->|"reads and writes"| node_database
node_slab_api -->|"calls"| node_slab_logic
node_slab_logic -->|"reads and writes"| node_database
node_customer_api -->|"calls"| node_customer_logic
node_customer_logic -->|"reads and writes"| node_database
node_sales_api -->|"calls"| node_sales_logic
node_sales_logic -->|"reads and writes"| node_database
node_finance_api -->|"calls"| node_finance_logic
node_finance_logic -->|"reads and writes"| node_database
node_employee -->|"manages blocks"| node_block_api
node_employee -->|"manages slabs"| node_slab_api
node_finance_user -->|"manages customers"| node_customer_api
node_finance_user -->|"manages sales"| node_sales_api
node_finance_user -->|"manages accounts"| node_finance_api
node_dashboard -.->|"summarizes inventory"| node_database

click node_auth_api "https://github.com/heros919/flash_view/blob/main/back/src/auth/auth.controller.ts"
click node_auth_logic "https://github.com/heros919/flash_view/blob/main/back/src/auth/auth.service.ts"
click node_jwt_strategy "https://github.com/heros919/flash_view/blob/main/back/src/auth/strategies/jwt.strategy.ts"
click node_jwt_guard "https://github.com/heros919/flash_view/blob/main/back/src/auth/guard/jwt-auth.guard.ts"
click node_role_guard "https://github.com/heros919/flash_view/blob/main/back/src/auth/guard/roles.guard.ts"
click node_user_api "https://github.com/heros919/flash_view/blob/main/back/src/usuario/usuario.controller.ts"
click node_user_logic "https://github.com/heros919/flash_view/blob/main/back/src/usuario/usuario.service.ts"
click node_block_api "https://github.com/heros919/flash_view/blob/main/back/src/Bloco/blocos.controller.ts"
click node_block_logic "https://github.com/heros919/flash_view/blob/main/back/src/Bloco/blocos.service.ts"
click node_slab_api "https://github.com/heros919/flash_view/blob/main/back/src/chapas/chapas.controller.ts"
click node_slab_logic "https://github.com/heros919/flash_view/blob/main/back/src/chapas/chapas.service.ts"
click node_customer_api "https://github.com/heros919/flash_view/blob/main/back/src/Cliente/cliente.controller.ts"
click node_customer_logic "https://github.com/heros919/flash_view/blob/main/back/src/Cliente/cliente.service.ts"
click node_sales_api "https://github.com/heros919/flash_view/blob/main/back/src/vendas/vendas.controller.ts"
click node_sales_logic "https://github.com/heros919/flash_view/blob/main/back/src/vendas/vendas.service.ts"
click node_finance_api "https://github.com/heros919/flash_view/blob/main/back/src/financeiro/financeiro.controller.ts"
click node_finance_logic "https://github.com/heros919/flash_view/blob/main/back/src/financeiro/financeiro.service.ts"
click node_dashboard "https://github.com/heros919/flash_view/tree/main/back/src"
click node_database "https://github.com/heros919/flash_view/blob/main/back/src/prisma/prisma.service.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_auth_api,node_auth_logic,node_jwt_strategy,node_jwt_guard,node_role_guard,node_user_api,node_user_logic toneBlue
class node_block_api,node_block_logic,node_slab_api,node_slab_logic toneAmber
class node_customer_api,node_customer_logic,node_sales_api,node_sales_logic,node_finance_api,node_finance_logic toneMint
class node_dashboard,node_database toneRose
class node_employee,node_finance_user toneIndigo
```

## Components

### Identity and Access

- [Authentication API](https://github.com/heros919/flash_view/blob/main/back/src/auth/auth.controller.ts): `back/src/auth/auth.controller.ts`
- [Authentication](https://github.com/heros919/flash_view/blob/main/back/src/auth/auth.service.ts): `back/src/auth/auth.service.ts`
- [Token Validation](https://github.com/heros919/flash_view/blob/main/back/src/auth/strategies/jwt.strategy.ts): `back/src/auth/strategies/jwt.strategy.ts`
- [JWT Guard](https://github.com/heros919/flash_view/blob/main/back/src/auth/guard/jwt-auth.guard.ts): `back/src/auth/guard/jwt-auth.guard.ts`
- [Role Guard](https://github.com/heros919/flash_view/blob/main/back/src/auth/guard/roles.guard.ts): `back/src/auth/guard/roles.guard.ts`
- [Account API](https://github.com/heros919/flash_view/blob/main/back/src/usuario/usuario.controller.ts): `back/src/usuario/usuario.controller.ts`
- [Account Management](https://github.com/heros919/flash_view/blob/main/back/src/usuario/usuario.service.ts): `back/src/usuario/usuario.service.ts`

### Stone Inventory

- [Block API](https://github.com/heros919/flash_view/blob/main/back/src/Bloco/blocos.controller.ts): `back/src/Bloco/blocos.controller.ts`
- [Block Management](https://github.com/heros919/flash_view/blob/main/back/src/Bloco/blocos.service.ts): `back/src/Bloco/blocos.service.ts`
- [Slab API](https://github.com/heros919/flash_view/blob/main/back/src/chapas/chapas.controller.ts): `back/src/chapas/chapas.controller.ts`
- [Slab Management](https://github.com/heros919/flash_view/blob/main/back/src/chapas/chapas.service.ts): `back/src/chapas/chapas.service.ts`

### Sales Operations

- [Customer API](https://github.com/heros919/flash_view/blob/main/back/src/Cliente/cliente.controller.ts): `back/src/Cliente/cliente.controller.ts`
- [Customer Management](https://github.com/heros919/flash_view/blob/main/back/src/Cliente/cliente.service.ts): `back/src/Cliente/cliente.service.ts`
- [Catalog and Sales API](https://github.com/heros919/flash_view/blob/main/back/src/vendas/vendas.controller.ts): `back/src/vendas/vendas.controller.ts`
- [Catalog and Sales](https://github.com/heros919/flash_view/blob/main/back/src/vendas/vendas.service.ts): `back/src/vendas/vendas.service.ts`
- [Finance Accounts API](https://github.com/heros919/flash_view/blob/main/back/src/financeiro/financeiro.controller.ts): `back/src/financeiro/financeiro.controller.ts`
- [Finance Accounts](https://github.com/heros919/flash_view/blob/main/back/src/financeiro/financeiro.service.ts): `back/src/financeiro/financeiro.service.ts`

### Persistence and Overview

- [Dashboard Summary](https://github.com/heros919/flash_view/tree/main/back/src): `back/src`
- [Application Database](https://github.com/heros919/flash_view/blob/main/back/src/prisma/prisma.service.ts): `back/src/prisma/prisma.service.ts`

### Other components

- **Employee**
- **Financeiro / Admin**

## Connections

- Employee → Authentication API: registers or logs in
- Financeiro / Admin → Authentication API: logs in
- Authentication API → Authentication: calls (evidence: `back/src/auth/auth.controller.ts`)
- Authentication → Application Database: reads and writes (evidence: `back/src/auth/auth.service.ts`)
- Authentication API → JWT Guard: protects routes
- JWT Guard → Token Validation: validates token (evidence: `back/src/auth/guard/jwt-auth.guard.ts`)
- Token Validation → Application Database: loads account (evidence: `back/src/auth/strategies/jwt.strategy.ts`)
- Account API → Account Management: calls (evidence: `back/src/usuario/usuario.controller.ts`)
- Role Guard → Account Management: uses account roles (evidence: `back/src/auth/guard/roles.guard.ts`)
- Block API → Block Management: calls (evidence: `back/src/Bloco/blocos.controller.ts`)
- Block Management → Application Database: reads and writes (evidence: `back/src/Bloco/blocos.service.ts`)
- Slab API → Slab Management: calls (evidence: `back/src/chapas/chapas.controller.ts`)
- Slab Management → Application Database: reads and writes (evidence: `back/src/chapas/chapas.service.ts`)
- Customer API → Customer Management: calls (evidence: `back/src/Cliente/cliente.controller.ts`)
- Customer Management → Application Database: reads and writes (evidence: `back/src/Cliente/cliente.service.ts`)
- Catalog and Sales API → Catalog and Sales: calls (evidence: `back/src/vendas/vendas.controller.ts`)
- Catalog and Sales → Application Database: reads and writes (evidence: `back/src/vendas/vendas.service.ts`)
- Finance Accounts API → Finance Accounts: calls (evidence: `back/src/financeiro/financeiro.controller.ts`)
- Finance Accounts → Application Database: reads and writes (evidence: `back/src/financeiro/financeiro.service.ts`)
- Employee → Block API: manages blocks
- Employee → Slab API: manages slabs
- Financeiro / Admin → Customer API: manages customers
- Financeiro / Admin → Catalog and Sales API: manages sales
- Financeiro / Admin → Finance Accounts API: manages accounts
- Dashboard Summary → Application Database: summarizes inventory (evidence: `back/src/auth/auth.service.ts`)
