Como criar um painel de visualização de dados geográficos interativo com Python e React
Desenvolva um painel baseado na web que visualize dados geográficos em vários condados e estados, permitindo que os usuários interajam com o mapa, filtrem os dados e analisem oportunidades com base em vários atributos.
Learn2Vibe AI
Online
What do you want to build?
Resumo Simples
Este plano de codificação descreve o desenvolvimento de um painel interativo de visualização de dados usando Python, React e Mapbox para exibir e analisar dados geográficos em vários condados e estados.
Documento de Requisitos do Produto (PRD)
Objetivos:
- Criar um painel interativo baseado em mapa para visualizar dados em mais de 20 condados em diferentes estados
- Permitir que os usuários filtrem e analisem dados para identificar oportunidades
- Fornecer a capacidade de selecionar áreas e visualizar dados detalhados em tabelas e gráficos
- Implementar recursos de manipulação de dados usando Python
Público-alvo:
- Membros da equipe interna que analisam dados geográficos e oportunidades
Recursos-chave:
- Mapa interativo com contornos de estado/condado e pontos de dados
- Capacidade de clicar em condados ou usar menus suspensos para selecionar áreas
- Seleção de região personalizada (retangular) no mapa
- Funcionalidade de filtragem e classificação de dados
- Visualização detalhada dos dados em tabelas e gráficos para as áreas selecionadas
- Recursos de manipulação de dados baseados em Python
- Integração de múltiplas fontes de dados
Requisitos do usuário:
- Mapa simples com contornos de estado/condado e pontos de dados
- Capacidade de delinear uma área e ver dados detalhados para essa região
- Gráficos e gráficos para representar dados (valor $, tempo desde x, etc.)
- Tratamento de milhares de pontos de dados por condado em mais de 20 condados
- Atualizações mensais de dados, com alguns dados anuais
- Modo noturno (ótimo a ter)
Fluxos de Usuário
-
Fluxo de exploração de dados:
- O usuário abre o painel
- Visualiza o mapa inicial com todos os pontos de dados exibidos
- Usa filtros para destacar oportunidades potenciais
- Clica em condados específicos ou usa menus suspensos para selecionar áreas de interesse
- Visualiza dados detalhados em tabelas e gráficos para a região selecionada
-
Fluxo de análise de região personalizada:
- O usuário navega até a visualização do mapa
- Desenha uma região retangular personalizada no mapa
- O sistema exibe dados específicos da região selecionada
- O usuário analisa os dados por meio de tabelas e gráficos
-
Fluxo de manipulação de dados:
- O usuário acessa a interface de manipulação de dados baseada em Python
- Realiza operações ou análises de dados personalizadas
- Visualiza os resultados atualizados no painel
Especificações Técnicas
Frontend:
- React para construir a interface do usuário
- Mapbox para visualização de mapas (plano gratuito)
Backend:
- Python com pandas para processamento e manipulação de dados
- Flask ou FastAPI para criar uma API de backend
Armazenamento de dados:
- Supabase para autenticação e armazenamento
Integração:
- API de backend baseada em Python para conectar o processamento de dados com o frontend React
Considerações futuras:
- Possível integração da API Claude
- Exploração do Dash by Plotly para aplicativos web interativos
Abordagem de Desenvolvimento:
- Metodologia ágil com sprints curtos
- Codificação assistida por IA usando Cursor, Gemini, GPT e Claude
Endpoints da API
N/A
Esquema do Banco de Dados
N/A
Estrutura de Arquivos
project-root/
├── frontend/
│ ├── public/
│ └── src/
│ ├── components/
│ │ ├── Map.js
│ │ ├── DataTable.js
│ │ ├── Charts.js
│ │ └── Filters.js
│ ├── pages/
│ ├── utils/
│ ├── App.js
│ └── index.js
├── backend/
│ ├── api/
│ ├── data_processing/
│ ├── models/
│ └── main.py
├── data/
├── tests/
└── README.md
Plano de Implementação
- Configurar a estrutura do projeto e o controle de versão
- Implementar o frontend básico do React com a integração do Mapbox
- Desenvolver o backend Python com pandas para processamento de dados
- Criar endpoints de API para recuperação e manipulação de dados
- Implementar recursos de interação com o mapa (clicar, menus suspensos)
- Adicionar funcionalidade de seleção de região personalizada
- Desenvolver recursos de filtragem e classificação de dados
- Criar visualização detalhada de dados com tabelas e gráficos
- Integrar várias fontes de dados
- Implementar autenticação de usuário com Supabase
- Adicionar recurso de modo noturno
- Realizar testes abrangentes e correção de bugs
- Implantar o MVP para comentários iniciais dos usuários
- Iterar e adicionar recursos adicionais com base nos comentários
Estratégia de Implantação
Informação não disponível na conversa.
Justificativa do Design
As decisões de design foram tomadas com base nos seguintes fatores:
- A necessidade de uma solução de mapeamento econômica e de fácil implementação levou à escolha do Mapbox (plano gratuito).
- O requisito de recursos de manipulação de dados e familiaridade com pandas levou à seleção do Python para o processamento de backend.
- O desejo de um frontend moderno e interativo levou à escolha do React.
- A necessidade de autenticação e armazenamento levou à incorporação do Supabase.
- A abordagem de desenvolvimento ágil com sprints curtos foi escolhida para desenvolver rapidamente um MVP e iterar com base nos comentários.
- O recurso principal de combinar atributos sobrepostos e visualizar oportunidades com base em atributos atípicos motivou o foco inicial do plano de implementação.