FELIPE WINSCHDesenvolvedor Full Stack
Voltar aos projetos

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.

  1. Vue · autenticação, categorias e feed
  2. Express / MongoDB · usuários, notícias e assinaturas
  3. Web Push / service worker · notificação no navegador
A CLI publica pela API; a seleção dos destinatários usa suas categorias de interesse.

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

Fontes conferidas em 2026-09-27 · Conteúdo v1 · Revisão ec3f469.