Venom's Chat é um sistema de chat em tempo real construído usando TypeScript e WebSocket, projetado para demonstrar a dinâmica de código, tipagem forte e estrutura modular.
Ele serve como um exemplo de projeto limpo e organizado, ideal para portfólio ou estudo de comunicação em tempo real.
Este projeto não possui autenticação de produção nem persistência de dados — o foco é mostrar habilidades de programação, tipagem e organização de módulos.
- Conexão de múltiplos clientes via WebSocket
- Autenticação simples por username
- Envio de mensagens em tempo real para todos os clientes conectados
- Diferenciação visual entre mensagens próprias e de outros usuários (via client HTML)
- Estrutura modular de requests para fácil expansão de funcionalidades
- Tipagem TypeScript rigorosa para payloads e clientes autenticados
- TypeScript — para tipagem forte e código limpo
- Node.js — runtime para o servidor
- ws — biblioteca de WebSocket para Node.js
- HTML/CSS/JS — client simples para teste visual do chat
-
Clone o repositório:
git clone -
Instale as dependências:
npm install ws -
Execute o servidor:
ts-node index.ts -
Abra o client (
client/index.html) no navegador e entre com um username. -
Envie mensagens e veja-as aparecer para todos os clientes conectados em tempo real.
Autenticação de usuário:
ws.send(JSON.stringify({ __request: "auth", __username: "Venom" }));Enviar mensagem:
ws.send(JSON.stringify({ __request: "message", __message: "Olá, mundo!" }));Mensagem recebida (JSON):
{
"__request": "message",
"__from": "Venom",
"__message": "Olá, mundo!"
}Este projeto foi desenvolvido para demonstrar minhas habilidades com TypeScript e WebSocket, incluindo:
- Tipagem avançada e modularização
- Criação de payloads tipados
- Gerenciamento de múltiplos clientes em tempo real
- Estrutura limpa e escalável para futuras funcionalidades
Ele faz parte do meu portfólio de programação, servindo como exemplo da dinâmica de código e boas práticas.
- Não possui persistência de mensagens ou banco de dados
- Focado em demonstração de lógica de programação
- Pode ser facilmente expandido com novas funcionalidades (ex: salas privadas, emojis, logs)
Feito com ❤️ por Venom