8.0 KiB
8.0 KiB
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