Files
duorigin-v2/docs/ARQUITETURA.md

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