# 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*