Destino Dev

Cursos

App de Chat em Tempo Real com Socket.io + React

Construa um app de chat completo em tempo real do zero. Aprenda Socket.io, WebSockets, salas de chat, autenticação JWT, histórico de mensagens com MongoDB e deploy profissional. Projeto hands-on do backend Node.js ao frontend React.

Conteúdo do curso

Módulo 1: Módulo 1 — Introdução e Setup

Visão geral do projeto, arquitetura de um chat em tempo real, configuração do ambiente de desenvolvimento e estrutura do monorepo.

  1. O que vamos construir: arquitetura do chat em tempo real (8 min)
  2. Configurando o ambiente de desenvolvimento (2 min)
  3. Estrutura do projeto monorepo (backend + frontend) (3 min)

Módulo 2: Módulo 2 — Backend: Servidor Socket.io com Node.js

Criação do servidor Express com Socket.io, gerenciamento de eventos, namespaces, salas e integração com Redis Adapter para escalabilidade.

  1. Configurando Express + Socket.io: primeiro servidor WebSocket (3 min)
  2. Gerenciando salas e usuários conectados (4 min)
  3. Rotas REST de autenticação (register e login) (3 min)
  4. Redis Adapter para escalabilidade e múltiplas instâncias (3 min)

Módulo 3: Módulo 3 — Frontend: Interface React do Chat

Setup do projeto React com Vite e Tailwind CSS, conexão com Socket.io, componentes de chat e listagem de usuários online em tempo real.

  1. Hook useSocket e conexão com o servidor (3 min)
  2. Componentes ChatRoom, MessageList e MessageInput (3 min)
  3. UserList, TypingIndicator e página de Login (2 min)
  4. Seletor de salas e múltiplos canais de chat (3 min)

Módulo 4: Módulo 4 — Funcionalidades Avançadas

Histórico de mensagens com MongoDB, upload de imagens, indicador de digitação, emojis e notificações do sistema.

  1. Upload de imagens no chat com Multer (3 min)
  2. Mensagens diretas (DM) e salas privadas (3 min)
  3. Notificações, emojis e formatação de mensagens (5 min)
  4. Histórico de mensagens com MongoDB e busca (6 min)

Módulo 5: Módulo 5 — Autenticação e Segurança

Autenticação JWT no handshake do WebSocket, salas privadas, mensagens diretas (DM), rate limiting e proteção contra abusos.

  1. JWT e middleware de autenticação no Socket.io (6 min)
  2. Rate limiting e proteção contra spam no chat (5 min)
  3. Sanitização XSS e validação de inputs com class-validator (5 min)
  4. Refresh token e reconexão automática do WebSocket (6 min)

Módulo 6: Módulo 6 — Testes e Qualidade

Testes unitários do servidor Socket.io com Jest, testes de integração usando socket.io-client e ferramentas de debugging.

  1. Testes unitários do backend com Jest e mocks (5 min)
  2. Testes de integração do WebSocket Gateway (5 min)
  3. Testes do frontend com React Testing Library (5 min)
  4. CI/CD pipeline e qualidade de código com ESLint e Prettier (4 min)

Módulo 7: Módulo 7 — Deploy e Conclusão

Deploy do backend no Railway com Redis, deploy do frontend no Vercel, variáveis de ambiente em produção e próximos passos.

  1. Deploy do backend no Railway com MongoDB Atlas e Redis (4 min)
  2. Deploy do frontend no Vercel e variáveis de ambiente (4 min)
  3. Próximos passos: melhorias, monitoramento e escalabilidade (5 min)