{"id":31768944,"url":"https://github.com/leeocoder/live-talk-chat","last_synced_at":"2026-04-27T16:32:34.848Z","repository":{"id":313941554,"uuid":"1053483105","full_name":"leeocoder/live-talk-chat","owner":"leeocoder","description":"Chat em tempo real com Node.js e Socket.IO — mensagens instantâneas e lista de usuários","archived":false,"fork":false,"pushed_at":"2025-09-09T21:25:14.000Z","size":1032,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-10T02:24:54.506Z","etag":null,"topics":["chat","express","nodejs","realtime","socket-io"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leeocoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-09T14:07:18.000Z","updated_at":"2025-09-09T21:25:17.000Z","dependencies_parsed_at":"2025-09-10T00:59:51.964Z","dependency_job_id":null,"html_url":"https://github.com/leeocoder/live-talk-chat","commit_stats":null,"previous_names":["leeocoder/chat-socket-node","leeocoder/live-talk-chat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/leeocoder/live-talk-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeocoder%2Flive-talk-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeocoder%2Flive-talk-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeocoder%2Flive-talk-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeocoder%2Flive-talk-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leeocoder","download_url":"https://codeload.github.com/leeocoder/live-talk-chat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeocoder%2Flive-talk-chat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32345802,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","express","nodejs","realtime","socket-io"],"created_at":"2025-10-10T02:23:42.556Z","updated_at":"2026-04-27T16:32:34.843Z","avatar_url":"https://github.com/leeocoder.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LiveTalk\n\n![Banner do Projeto](./assets/banner.png)\n\n## 🔹 Descrição do Projeto\n\nEste é um **chat em tempo real** construído com **Node.js, Express e Socket.IO**, pensado para ser simples, funcional e moderno.\n\nO objetivo do projeto é **proporcionar uma experiência de chat fluida**, onde os usuários podem se conectar, enviar mensagens instantâneas e acompanhar em tempo real a entrada e saída de participantes.\n\nO projeto serve como estudo prático de **Socket.IO** e comunicação **cliente-servidor em tempo real**, além de reforçar conceitos de **Clean Code**, separação de responsabilidades no frontend e backend, e boas práticas de desenvolvimento.\n\n---\n\n## 🔹 Funcionalidades\n\n- Login rápido apenas com nome de usuário\n- Lista de usuários conectados atualizada em tempo real\n- Envio de mensagens instantâneas\n- Mensagens de status ao entrar ou sair do chat\n- Reconexão automática em caso de queda de conexão\n\n---\n\n## 🔹 Prints do Projeto\n\n### Tela de Login\n\n![Login](./assets/login.png) \u003c!-- Substitua pelo print do login --\u003e\n\n### Tela do Chat\n\n![Chat](./assets/chat.png) \u003c!-- Substitua pelo print do chat em branco ou vazio --\u003e\n\n### Mensagens em tempo real\n\n![Mensagens](./assets/messages.png) \u003c!-- Substitua pelo print do chat com mensagens --\u003e\n\n---\n\n## 🔹 Tecnologias Utilizadas\n\n- **Node.js** - para o servidor\n- **Express** - para servir arquivos estáticos e rotas\n- **Socket.IO** - para comunicação em tempo real\n- **HTML, CSS e JavaScript** - frontend\n- **Nodemon** - hot reload no desenvolvimento\n\n---\n\n## 🔹 Aprendizados\n\nDurante o desenvolvimento deste projeto, foi possível aprender e reforçar:\n\n- Como **Socket.IO** permite comunicação bidirecional entre servidor e cliente em tempo real\n- Como **emitir e ouvir eventos personalizados** (`joined`, `user-connected`, `user-disconnected`, `message`, `update-user-list`)\n- Como **manter a lista de usuários sincronizada** entre vários clientes\n- Separação de responsabilidades no frontend, criando **funções pequenas e significativas**\n- Boas práticas de **Clean Code**: nomes claros, funções pequenas, eventos bem organizados\n\n---\n\n## 🔹 Como Rodar o Projeto\n\n### Pré-requisitos\n\n- Node.js \u003e= 18\n- NPM ou Yarn\n\n### Passos\n\n1. Clonar o repositório\n\n```bash\ngit clone https://github.com/leeocoder/chat-socket-node.git\ncd chat-socket-node\n```\n\n2. Instalar dependências\n\n```bash\nnpm install\n# ou\nyarn\n```\n\n3. Rodar em modo desenvolvimento\n\n```bash\nnpm run dev\n# ou\nyarn dev\n```\n\n4. Acessar no navegador\n\n```\nhttp://localhost:3000\n```\n\n---\n\n## 🔹 Estrutura do Projeto\n\n```\nchat-socket-node/\n├── src/\n│   └── server.js       # Servidor Node.js com Socket.IO\n├── public/\n│   ├── index.html      # Frontend do chat\n│   ├── main.js         # Lógica do chat, socket e UI\n│   └── style.css       # Estilos do chat\n├── package.json\n└── README.md\n```\n\n---\n\n## 🔹 Próximos Passos / Evoluções\n\n- Criar salas privadas\n- Adicionar emojis e formatação de mensagens\n- Sistema de notificações para usuários offline\n- Armazenar histórico de mensagens em banco de dados\n\n---\n\n## 🔹 Conclusão\n\nEste projeto não é apenas um chat funcional — ele é **uma demonstração prática de como aplicações em tempo real funcionam com Node.js e Socket.IO**, além de mostrar a importância de **código limpo, organizado e de fácil manutenção**.\n\nCada detalhe do frontend e backend foi pensado para que **qualquer desenvolvedor júnior consiga entender a lógica** sem esforço, e que ao mesmo tempo **refletisse boas práticas de um desenvolvedor sênior**.\n\nSocket.IO trouxe uma experiência muito rica, mostrando o poder dos **eventos customizados e comunicação em tempo real**, e como pequenas decisões no backend impactam diretamente na UX do usuário.\n\n---\n\n## 🔹 Autor\n\nLeonardo Albuquerque\n\n[GitHub](https://github.com/leeocoder)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleeocoder%2Flive-talk-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleeocoder%2Flive-talk-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleeocoder%2Flive-talk-chat/lists"}