Skip to main content

Arquitetura do Ecossistema Ekonavi

Documentação técnica da arquitetura do ecossistema Ekonavi, incluindo microserviços, integrações blockchain e fluxos de dados.

Visão Geral da Arquitetura

Arquitetura de Microserviços

┌─────────────────────────────────────────────────────────────────┐
│ Ekosis Ecosystem │
├─────────────────────────────────────────────────────────────────┤
│ Frontend Layer (React + TypeScript + Vite) │
├──────────────────────┬──────────────────────┬───────────────────┤
│ ekonavi.com │ admin.ekonavi.com │ ekonavi.com │
│ Main Platform │ Admin Interface │ Public Dashboard │
├──────────────────────┴──────────────────────┴───────────────────┤
│ Backend Layer │
├──────────────────────┬──────────────────────┬───────────────────┤
│ api.ekonavi.com │ docs.ekonavi.com │ Shared Libraries │
│ Core API │ Docusaurus Docs │ lib/* │
└──────────────────────┴──────────────────────┴───────────────────┘
│ Infrastructure Layer │
├─────────────────────────────────────────────────────────────────┤
│ Database │ Blockchain │ Storage │
│ PostgreSQL/Hasura │ ERC1155 Contracts │ IPFS/Pinata │
│ GraphQL API │ Multi-chain Support │ Cloudflare R2 │
└─────────────────────────────────────────────────────────────────┘

Tecnologias Principais

Frontend Stack

TecnologiaUso
React 18Framework UI
TypeScriptLinguagem
ViteBundler
TailwindCSS + shadcn/uiEstilização
Zustand + React QueryGerenciamento de estado
React RouterRoteamento
React Hook Form + ZodFormulários e validação

Backend Stack

TecnologiaUso
Cloudflare WorkersRuntime
TypeScriptLinguagem
Hono.jsFramework
PostgreSQLBanco de dados
Hasura GraphQL EngineCamada GraphQL
JWT + Wallet SignaturesAutenticação
Cloudflare R2 + IPFSArmazenamento
Ethereum/Polygon (ERC1155)Blockchain

Infrastructure Stack

TecnologiaUso
Cloudflare Pages + WorkersDeploy
Neon PostgreSQL (Serverless)Banco de dados
Cloudflare R2 + Pinata IPFSArmazenamento
Cloudflare DNSDNS
GitHub ActionsCI/CD

Detalhamento dos Microserviços

1. ekonavi.com — Plataforma Principal

Interface principal para todos os usuários (Produtores, Verificadores, Avaliadores, Certificadores).

Rotas principais organizadas por papel:

  • Públicas: Landing page, login, registro
  • Autenticadas: Dashboard, perfil, carteira, notificações
  • Produtor: Projetos, relatórios, certificados
  • Verificador: Verificações, atribuições, ferramentas de campo
  • Avaliador: Avaliações, metodologias, analytics
  • Certificador: Certificações, templates, gestão de NFTs

2. admin.ekonavi.com - Interface Administrativa

Gestão administrativa do ecossistema, aprovação de papéis e monitoramento.

Funcionalidades:

  • Gestão de usuários e aprovação de papéis
  • Gestão de workflows e metodologias
  • Integração blockchain (minting de tokens)
  • Analytics e métricas da plataforma

3. data.ekonavi.com - Dashboard Público

Transparência pública através de métricas agregadas ESG sem PII.

Seções:

  • Estatísticas gerais e impacto ambiental
  • Status das redes blockchain e tokens
  • Distribuição geográfica e por bioma
  • Séries temporais de impacto

4. api.ekonavi.com - API Central

API REST centralizada para todas as operações do ecossistema.

Estrutura da API:

# Autenticação
/v1/auth/*: login, register, refresh, logout

# Gestão de usuários
/v1/users/*: profile, role-request, notifications

# Workflows por papel
/v1/producers/*: projects, reports, certificates
/v1/verifiers/*: assignments, verifications
/v1/valuators/*: valuations, methodologies
/v1/certifiers/*: certificates, templates

# Administração
/v1/admin/*: role-requests, users, system-config

# Blockchain (ABCI)
/abci/contracts/*: mint-role-token, mint-entity-token

# Dados públicos
/v1/public/*: counts, impact, blockchain stats

Fluxos de Dados

Fluxo de Autenticação

sequenceDiagram
participant U as User
participant F as Frontend
participant API as API
participant DB as Database
participant BC as Blockchain

U->>F: Login (email/wallet)
F->>API: POST /v1/auth/login
API->>DB: Validate credentials
DB->>API: User data + roles
API->>BC: Verify wallet tokens (if wallet login)
BC->>API: Token ownership confirmation
API->>F: JWT + user data
F->>U: Authenticated session

Fluxo de Criação de Projeto ESG

sequenceDiagram
participant P as Producer
participant F as ekonavi.com
participant API as api.ekonavi.com
participant DB as PostgreSQL
participant IPFS as IPFS/Pinata

P->>F: Create new project
F->>API: POST /v1/producers/projects
API->>DB: Save project data
API->>IPFS: Store project documents
IPFS->>API: Return IPFS hash
API->>DB: Update project with IPFS hash
DB->>API: Project created
API->>F: Project data + ID
F->>P: Project created successfully

Fluxo de Aprovação de Papel

sequenceDiagram
participant U as User
participant F as ekonavi.com
participant A as admin.ekonavi.com
participant API as api.ekonavi.com
participant BC as Blockchain

U->>F: Request role (Producer)
F->>API: POST /v1/users/role-request
API->>API: Store role request

Note over A: Admin reviews request
A->>API: PUT /v1/admin/role-requests/{id}/approve
API->>BC: POST /abci/contracts/mint-role-token
BC->>BC: Mint Producer token to user wallet
API->>U: Notification: Role approved
U->>F: Can now access Producer features

Segurança e Autenticação

Autenticação Multi-Modal

  1. Email/Password + 2FA - Login tradicional com autenticação de dois fatores
  2. OAuth (Google) - Login social via Google
  3. Web3 Wallet - Autenticação via MetaMask/WalletConnect com assinatura de mensagem

Role-Based Access Control (RBAC)

Hierarquia de papéis:

  • Admin: Todas as permissões
  • Certificador: Herda de Avaliador + certificações, NFTs
  • Avaliador: Herda de Verificador + avaliações, metodologias
  • Verificador: Herda de Produtor + verificações, coleta de dados
  • Produtor: Projetos, relatórios, certificados (leitura)

Ambientes de Deploy

AmbienteDomínioDatabaseBlockchain
DevelopmentlocalhostLocal PostgreSQLHardhat local
Stagingstaging.ekonavi.comNeon PostgreSQL (branch)Ethereum Sepolia
Productionekonavi.comNeon PostgreSQL (main)Ethereum + Polygon