79 lines
8.0 KiB
Markdown
79 lines
8.0 KiB
Markdown
# Arquitetura - DuOrigin v2
|
|
|
|
## Visão Geral
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
│ CLIENTE (Browser) │
|
|
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
|
│ │ Next.js Frontend (React) │ │
|
|
│ │ Port: 3000 │ │
|
|
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
|
|
│ │ │ Dashboard │ │ Producers │ │Declarations │ │ Maps │ │ │
|
|
│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │
|
|
│ └─────────────────────────────────────────────────────────────────────┘ │
|
|
└────────────────────────────────────┬────────────────────────────────────────┘
|
|
│ REST API
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
│ NestJS Backend │
|
|
│ Port: 3001 │
|
|
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
|
│ │ MODULES │ │
|
|
│ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │
|
|
│ │ │ Auth │ │ Producers │ │Declarations│ │ Geo │ │ │
|
|
│ │ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │ │
|
|
│ │ ┌───────────┐ ┌───────────┐ │ │
|
|
│ │ │ EUDR │ │ Reports │ │ │
|
|
│ │ │ API │ │ │ │ │
|
|
│ │ └───────────┘ └───────────┘ │ │
|
|
│ └─────────────────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
└──────────────────────────────┼──────────────────────────────────────────────┘
|
|
│
|
|
┌────────────────────┼────────────────────┐
|
|
│ │ │
|
|
▼ ▼ ▼
|
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
│ PostgreSQL │ │ API EUDR UE │ │ Map Services │
|
|
│ (Prisma) │ │ (SOAP/WSDL) │ │ (Leaflet) │
|
|
│ │ │ │ │ │
|
|
│ • Users │ │ • Submit DDS │ │ • Tile layers │
|
|
│ • Producers │ │ • Check status │ │ • Geo validate │
|
|
│ • Declarations │ │ • Get feedback │ │ │
|
|
│ • Parcels │ │ │ │ │
|
|
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
```
|
|
|
|
## Fluxo EUDR
|
|
```
|
|
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
│ Cadastro │────▶│ Georrefe- │────▶│ Gerar │────▶│ Submeter │
|
|
│ Produtor │ │ renciamento │ │ Declaração │ │ à UE │
|
|
└─────────────┘ └─────────────┘ └─────────────┘ └──────┬──────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ Compliance │
|
|
│ ✓ │
|
|
└─────────────┘
|
|
```
|
|
|
|
## Stack
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ STACK TECNOLÓGICO │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
|
|
│ │ Next.js │ │ NestJS │ │ Prisma │ │PostgreSQL │ │
|
|
│ │ (Frontend)│ │ (Backend) │ │ (ORM) │ │ (DB) │ │
|
|
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
|
|
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
|
|
│ │ Leaflet │ │ JWT │ │ Tailwind │ │TypeScript │ │
|
|
│ │ (Maps) │ │ (Auth) │ │ (CSS) │ │ │ │
|
|
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
*Diagrama gerado em 2026-02-09*
|