Como criar um rastreador e visualizador de surtos de doenças globais em tempo real
Crie um poderoso aplicativo web que visualize dados de surtos de doenças em tempo real em mapas interativos. Este projeto combina dados de várias organizações de saúde, fornecendo aos usuários informações atualizadas sobre ameaças, tendências e focos de saúde global. Perfeito para pesquisadores, profissionais de saúde e cidadãos preocupados.
Learn2Vibe AI
Online
What do you want to build?
Riassunto Semplice
Um visualizador de surtos de doenças em tempo real que fornece mapas interativos e análises de dados para rastrear e monitorar ameaças globais de saúde, empoderar os usuários com informações e insights oportunos.
Documento dei Requisiti del Prodotto (PRD)
Objetivos:
- Fornecer visualização em tempo real de surtos de doenças em todo o mundo
- Oferecer mapas interativos com informações detalhadas sobre surtos específicos
- Permitir que os usuários rastreiem múltiplas doenças e comparem dados de surtos
- Fornecer notificações oportunas sobre novos surtos ou atualizações significativas
Público-alvo:
- Autoridades de saúde pública
- Pesquisadores e epidemiologistas
- Profissionais de saúde
- Jornalistas e organizações de mídia
- Público em geral interessado na saúde global
Recursos-chave:
- Mapa global interativo com marcadores de surtos de doenças
- Visualização detalhada de surtos específicos com estatísticas e tendências
- Ferramentas de rastreamento e comparação de múltiplas doenças
- Atualizações de dados em tempo real de organizações de saúde confiáveis
- Alertas e notificações personalizáveis
- Recursos de exportação e compartilhamento de dados
- Design responsivo para acesso móvel
Requisitos do usuário:
- Interface intuitiva para fácil navegação e exploração de dados
- Informações precisas e atualizadas de fontes confiáveis
- Capacidade de filtrar e pesquisar doenças ou regiões específicas
- Dashboard personalizável para rastreamento personalizado
- Contas de usuário seguras para salvar preferências e receber alertas
Flussi Utente
-
Registro e Integração de Novos Usuários:
- O usuário visita o site e clica em "Cadastrar"
- Insere e-mail, senha e informações básicas do perfil
- Completa um breve processo de integração para selecionar doenças de interesse e regiões a serem monitoradas
- É direcionado para o painel personalizado com informações relevantes sobre surtos
-
Explorando Dados de Surtos de Doenças:
- O usuário navega até a exibição do mapa global
- Aplica zoom em uma região ou país específico
- Clica nos marcadores de surto para visualizar informações detalhadas
- Alterna entre diferentes doenças ou períodos
- Usa filtros para refinar os dados exibidos
-
Configurando Alertas e Notificações:
- O usuário acessa a página de configurações de notificação
- Seleciona doenças, regiões ou critérios de limite para alertas
- Escolhe os métodos de notificação preferidos (e-mail, push, in-app)
- Salva as configurações e recebe atualizações em tempo real com base nas preferências
Specifiche Tecniche
Front-end:
- React para construir a interface do usuário
- Mapbox GL JS ou Leaflet para mapas interativos
- D3.js para visualizações de dados avançadas
- Redux para gerenciamento de estado
- Axios para solicitações de API
Back-end:
- Node.js com Express para o servidor
- PostgreSQL para o banco de dados principal
- Redis para cache e atualizações em tempo real
- Bull para enfileiramento de tarefas (busca e processamento de dados)
APIs e Serviços:
- APIs da OMS, CDC e outras organizações de saúde para dados de surtos
- API do Mapbox ou Google Maps para geocodificação e ladrilhos de mapa
- SendGrid ou Mailgun para notificações por e-mail
- Firebase Cloud Messaging para notificações push
DevOps:
- Docker para containerização
- GitHub Actions para CI/CD
- AWS ou Google Cloud Platform para hospedagem
Endpoint API
- POST /api/auth/register
- POST /api/auth/login
- GET /api/outbreaks
- GET /api/outbreaks/:id
- GET /api/diseases
- POST /api/alerts
- GET /api/user/dashboard
- PUT /api/user/preferences
- GET /api/stats/global
- GET /api/stats/regional/:region
Schema del Database
Usuários:
- id (PK)
- hash_da_senha
- nome
- criado_em
- último_login
Surtos:
- id (PK)
- doença_id (FK)
- localização
- data_de_início
- status
- contagem_de_casos
- contagem_de_mortes
- última_atualização
Doenças:
- id (PK)
- nome
- descrição
- sintomas
Alertas de Usuário:
- id (PK)
- id_do_usuário (FK)
- doença_id (FK)
- região
- limite
- tipo_de_notificação
Struttura dei File
/src
/components
Map.js
OutbreakDetails.js
AlertSettings.js
Dashboard.js
/pages
Home.js
Login.js
Register.js
Profile.js
/api
outbreakService.js
userService.js
alertService.js
/utils
dataProcessing.js
mapHelpers.js
/styles
global.css
components.css
/redux
store.js
actions/
reducers/
/public
index.html
assets/
/server
/routes
/controllers
/models
/services
/config
/scripts
dataScraper.js
dataProcessor.js
README.md
package.json
Dockerfile
.env.example
Piano di Implementazione
-
Configuração do Projeto (1-2 dias)
- Inicializar o aplicativo React e o servidor Node.js
- Configurar controle de versão e estrutura do projeto
-
Integração de Dados (3-4 dias)
- Implementar a busca de dados das APIs de organizações de saúde
- Criar scripts de processamento e armazenamento de dados
-
Desenvolvimento do Back-end (5-7 dias)
- Desenvolver endpoints de API
- Configurar banco de dados e modelos
- Implementar sistema de autenticação
-
Estrutura Básica do Front-end (3-4 dias)
- Criar componentes React básicos
- Implementar roteamento e gerenciamento de estado
-
Integração de Mapas (4-5 dias)
- Integrar biblioteca de mapas
- Desenvolver marcadores de mapa e interatividade
-
Visualização de Dados (5-6 dias)
- Criar gráficos e gráficos para dados de surtos
- Implementar recursos de filtragem e comparação
-
Recursos do Usuário (3-4 dias)
- Desenvolver painel do usuário
- Implementar sistema de alerta e notificação
-
Testes e Refinamento (4-5 dias)
- Conduzir testes abrangentes de todos os recursos
- Otimizar o desempenho e corrigir bugs
-
Preparação para Implantação (2-3 dias)
- Configurar ambiente de hospedagem
- Configurar pipeline de CI/CD
-
Lançamento e Monitoramento (Contínuo)
- Implantar a aplicação
- Monitorar o desempenho e o feedback do usuário
- Iterar e melhorar com base nos dados de uso
Strategia di Distribuzione
- Containerize a aplicação usando Docker para consistência entre ambientes
- Use AWS Elastic Beanstalk ou Google App Engine para escalabilidade fácil
- Configure um banco de dados PostgreSQL gerenciado (ex.: AWS RDS ou Google Cloud SQL)
- Implemente uma camada de cache Redis para melhorar o desempenho
- Use uma rede de distribuição de conteúdo (CDN) para ativos estáticos
- Implemente procedimentos de backup e recuperação de desastres
- Implemente ferramentas de registro e monitoramento (ex.: ELK stack, Prometheus, Grafana)
- Use implantação azul-verde para atualizações sem tempo de inatividade
- Implemente dimensionamento automático com base nos padrões de tráfego
- Atualize e corrija regularmente todos os sistemas para segurança
Motivazione del Design
O design se concentra em criar um aplicativo intuitivo, de alto desempenho e escalável para visualizar dados de surtos de doenças. O React foi escolhido por sua arquitetura baseada em componentes e grande ecossistema, enquanto o Node.js fornece um back-end baseado em JavaScript para consistência. O uso de mapas interativos e bibliotecas de visualização de dados garante uma experiência envolvente para o usuário. Atualizações e notificações em tempo real mantêm os usuários informados sobre mudanças críticas. A arquitetura modular e o uso de contêineres permitem fácil escalabilidade e manutenção à medida que o aplicativo cresce. Medidas de segurança, incluindo autenticação de usuário e criptografia de dados, protegem informações de saúde confidenciais.