Aplicação web · Notícias e notificações
NewsPulse
Aplicação full stack em JavaScript com feed por categorias, autenticação, notificações Web Push e publicação por CLI. Interface Vue conectada a Express e MongoDB.
Protótipo
- JavaScript
- Vue 3
- Node.js
- Express
- MongoDB
- Web Push
Minha contribuição
Projeto mantido por felpzw, reunindo frontend, API e CLI administrativa. O histórico consultado registra commits de felpzw e uma contribuição de Copilot; o estudo não atribui exclusividade de autoria ao mantenedor.
Problema
Entregar um feed de notícias conforme as categorias escolhidas por cada usuário e avisar sobre novas publicações por notificações do navegador.
Contexto e escopo
O repositório organiza três partes: frontend Vue, backend Express e uma CLI administrativa. Cadastro, login, preferências e leitura do feed ficam na aplicação; a CLI envia novas notícias à API.
Arquitetura
MongoDB armazena usuários e notícias por meio do Mongoose. O middleware valida JWT recebido em cookie ou Bearer token. O feed consulta notícias cujas categorias correspondem às preferências do usuário.
Ao publicar, a API salva a notícia, busca assinaturas compatíveis e dispara Web Push. O service worker mostra a notificação e abre o destino quando ela é selecionada.
- Vue · autenticação, categorias e feed
- Express / MongoDB · usuários, notícias e assinaturas
- Web Push / service worker · notificação no navegador
Decisões e trade-offs
Separar a publicação em uma CLI reduz a interface administrativa necessária. Preferências por categoria permitem filtragem direta, sem um sistema de recomendação.
O envio de push usa Promise.allSettled para processar múltiplas assinaturas. As falhas individuais são registradas, mas não há fila persistente de retentativas nesse fluxo. O contador retornado representa destinatários selecionados, não confirmação de entrega.
Testes e evidências
Não foi encontrada uma suíte automatizada: os scripts test do backend e da CLI são placeholders que encerram com erro. Foram conferidos controller de notícias, middleware, feed e service worker, sem executar publicação ou envio de notificações.
Limitações
É um protótipo sem evidências de operação em produção. O middleware de publicação só exige correspondência do segredo administrativo quando ADMIN_SECRET está configurado; essa configuração precisa ser revisada antes de qualquer exposição.
Há configuração acoplada ao ambiente local e a documentação usa alguns caminhos absolutos antigos. O manifesto do frontend exige uma versão de Node mais recente que o mínimo indicado no README; use o package.json como referência.
Explorar o projeto
Clone a revisão indicada e leia a documentação de configuração do MongoDB, JWT, VAPID e ADMIN_SECRET. Use Node compatível com o manifesto do frontend e configure credenciais locais próprias.
A partir da raiz, os comandos abaixo instalam as três partes e compilam a interface. Para executar, siga o guia com terminais separados para node app.js em backend e npm run dev em frontend. A CLI e o envio de push não foram executados nesta revisão.
npm --prefix backend install
npm --prefix frontend install
npm --prefix admin-cli install
npm --prefix frontend run build- Código revisado
- Feed e envio de notificações
- Interface de preferências
- Service worker
- Documentação da aplicação
Fontes conferidas em 2026-09-27 · Conteúdo v1 · Revisão ec3f469.