vivekprojectsnews for u
← projects
AIFull-StackCapstone

news for u

A news platform that rewrites articles to a reader's familiarity level, defines jargon on the fly, and recommends what to read next, built as a two-semester capstone.

Tech
React, Node.js, Express, PostgreSQL, pgvector, Google Gemini, Hugging Face
Date
Sept 2025 to Apr 2026
Status
Complete — Capstone Project
Links
RepositoryDemo Video

News coverage of an unfamiliar domain assumes background the reader doesn't have, and jargon-heavy writing keeps people from engaging with topics outside their expertise. As part of a four-person capstone team for Western's Software Engineering Design II course, I helped build news for u, a full-stack news platform that rewrites articles to a reader's actual familiarity level, generates plain-language definitions for jargon on the fly, and recommends what to read next, over a two-semester build with a faculty advisor.

Architecture

Personalized Rewriting

Articles pulled from The Guardian's API get embedded (Google Gemini, 3072-dimension vectors) and stored in Postgres with pgvector, enabling real semantic search rather than keyword matching alone. A reader can request any article rewritten at a different tone or complexity level, backed by an ML readability classifier that labels each piece beginner, intermediate, or advanced, and by an on-demand glossary generator that produces plain-language definitions for jargon terms as the reader encounters them.

Resilience

The complexity classifier calls a Hugging Face model first and falls back, automatically and silently, to a hand-implemented Flesch-Kincaid readability formula if the API is unavailable, so a core feature never hard-fails because of a third-party outage. AI outputs, term definitions and complexity scores alike, are cached in Postgres and deduplicated against in-flight requests, so the same article never triggers a redundant model call.

Technical Challenges

The embedding pipeline's vector dimensionality changed mid-project after a model switch, which meant migrating already-stored article embeddings rather than starting over, and the auth schema went through a dedicated later migration as the design matured past its first pass. Getting consistent output out of Hugging Face's inference API took a real normalization layer: different models and endpoints return meaningfully different JSON shapes, including LLM text with JSON embedded inside markdown fencing, all handled before a result is ever trusted downstream.

Other

  • Shipped across 185 commits and 51 merged pull requests over a two-semester build with a 4-person team and a faculty advisor.
  • Presented at the program's Design Day showcase, with a recorded project demo.
  • Feature set includes weekly topic-based email digests, an AI-generated 'learning roadmap' across related articles, and full accessibility settings (high-contrast mode, adjustable font size, screen-reader flag) built into every user profile.