Skip to content

halissontorres/hm-correlation-visualizer

Repository files navigation

HM Correlation Visualizer

NextJS TypeScript Tailwind CSS Docker

Cliente para visualização de correlações corrigidas pelo Método Hindemburg.

img.png

📋 Sobre o Projeto

Esta aplicação oferece uma interface amigável para o serviço Ajuste de Correlação Hindemburg, que implementa a fórmula proposta por Hindemburg Melão Jr. para corrigir correlações estatísticas com restrição de faixa.

💡 Tecnologias empregadas

  • NextJS (Framework React)
  • TypeScript
  • Tailwind CSS
  • Docker

Funcionalidades

  • ✅ Upload de arquivos CSV (até 5MB)
  • ✅ Seleção de colunas X e Y para análise
  • ✅ Aplicação opcional de filtros por faixa
  • ✅ Personalização de rótulos e dimensões do gráfico
  • ✅ Visualização em tempo real dos resultados

🔍 Método de Correção HM

O método implementa um ajuste matemático para correlações de Pearson em conjuntos de dados com restrição de faixa, proporcionando uma medida mais precisa da correlação real entre variáveis.

Saiba mais: Para entender a base teórica e acessar a API REST por trás deste projeto, visite o repositório do serviço principal.

🚀 Como Usar

Pré-requisitos

  • Node.js (versão recomendada: LTS)
  • Docker (opcional, para implantação em contêiner)

Instalação

Opção 1: Desenvolvimento Local

Clone o repositório e instale as dependências:

# Clone este repositório
git clone https://github.com/halissontorres/hm-correlation-visualizer.git
cd hm-correlation-visualizer

# Instale as dependências
npm install
# ou
yarn install

Opção 2: Usando Docker

O projeto inclui configurações Docker para facilitar a implantação em diferentes ambientes:

# Produção
docker-compose up app

# Desenvolvimento com hot-reload
docker-compose up app-dev

Execução

# Inicie o servidor de desenvolvimento local
npm start
# ou
yarn start

A aplicação estará disponível em http://localhost:9002

🔧 Configuração Docker

O projeto possui configurações Docker para ambientes de produção e desenvolvimento:

Estrutura Docker

Dockerfile Multi-estágio

O projeto utiliza um Dockerfile multi-estágio para otimizar o tamanho da imagem final:

  1. Base: Imagem Node.js Alpine para ambiente leve
  2. Dependencies: Instala apenas as dependências necessárias
  3. Builder: Compila a aplicação Next.js com modo standalone
  4. Runner: Imagem final, contendo apenas arquivos essenciais para produção
# Resumo do Dockerfile
FROM node:20-alpine AS base
# ... configurações de base

FROM base AS deps
# ... instalação de dependências

FROM base AS builder
# ... build da aplicação Next.js

FROM node:20-alpine AS runner
# ... configuração final para produção com usuário não-root

Docker Compose

O arquivo docker-compose.yml define dois serviços:

  1. app: Ambiente de produção otimizado

    # Produção
    docker-compose up app
  2. app-dev: Ambiente de desenvolvimento com hot-reloading

    # Desenvolvimento
    docker-compose up app-dev

Variáveis de Ambiente

As configurações Docker suportam a seguinte variável de ambiente principal:

Variável Descrição Valor Padrão
NEXT_PUBLIC_API_ENDPOINT URL do serviço de API http://127.0.0.1:5000

Você pode sobrescrever esta variável de três maneiras:

  • No arquivo .env local
  • Na linha de comando ao executar docker-compose
  • Nas definições de ambiente do seu sistema de orquestração

Exemplo de Uso com Docker

# Executar com API personalizada
NEXT_PUBLIC_API_ENDPOINT=http://127.0.0.1:5000 docker-compose up app

# Construir imagem com endpoints personalizados
docker-compose build --build-arg NEXT_PUBLIC_API_ENDPOINT=http://127.0.0.1:5000

Nota: A aplicação é configurada para executar na porta 9002 por padrão, tanto localmente quanto nos contêineres Docker.

🔌 Integração com API

Esta interface consome o serviço REST disponível em:

github.com/halissontorres/ajuste-correlacao-hindemburg

O fluxo de funcionamento é:

  1. Upload do arquivo CSV pela interface
  2. Configuração dos parâmetros
  3. Processamento pelo serviço REST
  4. Retorno e exibição do gráfico de correlação (formato PNG)

Por padrão, a aplicação está configurada para usar o endpoint:

http://127.0.0.1:5000

Para usar um servidor API diferente, configure a variável de ambiente NEXT_PUBLIC_API_ENDPOINT.

📄 Licença

Este projeto está licenciado sob os termos da licença MIT. Veja o arquivo LICENSE para mais detalhes.


Desenvolvido para fins educacionais, científicos e aplicação prática da correção de correlação com restrição de faixa (método HM).

About

Cliente para visualização de correlações corrigidas pelo Método Hindemburg.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors