FELIPE WINSCHFull Stack Developer
Back to projects

Web application · News and notifications

NewsPulse

A full-stack JavaScript application with a category-based feed, authentication, Web Push notifications and CLI publishing. A Vue interface connects to Express and MongoDB.

Prototype

  • JavaScript
  • Vue 3
  • Node.js
  • Express
  • MongoDB
  • Web Push

My contribution

A project maintained by felpzw, combining frontend, API and administrative CLI. The reviewed history records commits by felpzw and one Copilot contribution; this study does not claim exclusive authorship for the maintainer.

Problem

Deliver a news feed based on each user’s selected categories and notify them of new publications through browser notifications.

Context and scope

The repository organizes three parts: a Vue frontend, an Express backend and an administrative CLI. Registration, login, preferences and feed reading live in the application; the CLI submits news to the API.

Architecture

MongoDB stores users and news through Mongoose. Middleware validates JWTs received in cookies or Bearer tokens. The feed queries news whose categories match user preferences.

On publication, the API saves the news item, finds matching subscriptions and dispatches Web Push. The service worker displays the notification and opens its destination when selected.

  1. Vue · authentication, categories and feed
  2. Express / MongoDB · users, news and subscriptions
  3. Web Push / service worker · browser notification
The CLI publishes through the API; recipient selection uses their interest categories.

Decisions and trade-offs

Separating publishing into a CLI reduces the administrative interface needed. Category preferences enable direct filtering without a recommendation system.

Push dispatch uses Promise.allSettled to process multiple subscriptions. Individual failures are logged, but this flow has no persistent retry queue. The returned count represents selected recipients, not confirmed delivery.

Tests and evidence

No automated suite was found: backend and CLI test scripts are placeholders that exit with an error. Review covered the news controller, middleware, feed and service worker without publishing news or sending notifications.

Limitations

This is a prototype without evidence of production operation. Publishing middleware requires a matching administrative secret only when ADMIN_SECRET is configured; that configuration needs review before any exposure.

Configuration is coupled to the local environment, and documentation contains some old absolute paths. The frontend manifest requires a newer Node version than the README minimum; use package.json as the reference.

Explore the project

Clone the indicated revision and read the MongoDB, JWT, VAPID and ADMIN_SECRET configuration documentation. Use Node compatible with the frontend manifest and configure your own local credentials.

From the repository root, the commands below install all three parts and build the interface. To run, follow the guide using separate terminals for node app.js in backend and npm run dev in frontend. The CLI and push delivery were not executed in this review.

npm --prefix backend install
npm --prefix frontend install
npm --prefix admin-cli install
npm --prefix frontend run build

Sources checked on 2026-09-27 · Content v1 · Revision ec3f469.