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.

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