DevWeb

Stock Monitor

Aplicação de monitoramento de estoque em tempo real que demonstra três diferentes abordagens para atualizações ao vivo: HTTP Polling, WebSocket e Server-Sent Events (SSE).

🚀 Funcionalidades

Monitoramento em Tempo Real

A aplicação fornece três formas simultâneas de monitorar atualizações:

  1. HTTP Polling
    • Busca dados do estoque a cada 5 segundos
    • Compatível com todos os navegadores
    • Usa requisições HTTP GET padrão para /api/products
  2. WebSocket
    • Fornece atualizações instantâneas através de conexão persistente
    • Comunicação bidirecional
    • Reconexão automática em caso de perda (intervalo de 5 segundos)
  3. Server-Sent Events (SSE)
    • Atualizações enviadas pelo servidor em tempo real
    • Comunicação eficiente unidirecional
    • Reconexão automática em caso de perda
    • Inclui tipos de mensagem para conexão inicial e atualizações

Gestão de Produtos

🛠 Stack Técnica

Frontend

Backend

⚙️ Configuração

```javascript Frontend:

Backend:

📡 Endpoints da API

📦 Dados de Exemplo

O sistema vem com produtos de exemplo: ```javascript { notebook: { id: 1, name: ‘Notebook Dell’, stock: 10 }, monitor: { id: 2, name: ‘Monitor LG’, stock: 5 }, keyboard: { id: 3, name: ‘Teclado HyperX’, stock: 15 } } ```

🚀 Instalação e Execução

  1. Instalar dependências: ```bash cd server npm install ```

  2. Iniciar o servidor: ```bash node server.js ```

  3. Acessar a aplicação:

    • Abrir `http://localhost:3000` no navegador
    • Os arquivos estáticos são servidos automaticamente pelo Express

💻 Uso

Visualizando Níveis de Estoque

Simulando Atualizações de Estoque

  1. Use o painel de controle para simular atualizações
  2. Selecione um produto do dropdown
  3. Digite a quantidade a ser deduzida
  4. Envie para ver atualizações em tempo real em todos os três métodos

Tratamento de Erros

🌐 Compatibilidade com Navegadores

📁 Estrutura do Projeto

``` stock-monitor/ ├── public/ │ ├── index.html # Interface do usuário │ ├── style.css # Estilos da aplicação │ ├── reset.css # Reset de estilos CSS │ └── script.js # Lógica do cliente └── server/ ├── package.json # Dependências do projeto └── server.js # Servidor Node.js ```