Fake News Detector

Python and Flask backend pipeline that flags untrustworthy content with a RoBERTa model for real-time credibility analysis, deployed as a containerized Docker Compose stack.

Fake News Detector
PythonFlaskTensorFlowRoBERTaDockerTextBlobReact

The Challenge

Misinformation spreads quickly, and flagging it takes more than a keyword list. The backend had to:

  • Detect harmful content: Flag untrustworthy articles with a machine learning model, not just heuristics
  • Answer in real time: Score an article while the user waits
  • Stay reliable: Keep working when a model or an input misbehaves
  • Deploy anywhere: Run the same way in development and production

The Approach

I engineered a backend pipeline in Python and Flask that detects and flags harmful or untrustworthy content, with an ML model at its core.

ML-Backed Credibility Analysis

  • Integrated a RoBERTa model (TensorFlow) for real-time credibility analysis of each article
  • Combined it with TextBlob sentiment analysis across 5 weighted scoring factors
  • Added heuristic-based fallbacks so the pipeline still returns a score when the model can't

Backend Performance

  • Loaded the ML model once with the Singleton pattern, cutting per-request overhead while keeping detection reliable

Containerized Deployment

  • Architected a containerized stack with Docker Compose and multi-stage builds
  • Hot-reload containers for development, production-ready images for deployment

Dashboard

  • A React dashboard shows each article's credibility score and the factors behind it

Technical Highlights

  • Python and Flask detection pipeline
  • RoBERTa (TensorFlow) model for credibility analysis
  • TextBlob sentiment as one of 5 weighted factors, with heuristic fallbacks
  • Singleton model loading for lower per-request overhead
  • Docker Compose with multi-stage builds