I've always wondered how big events—like a new Marvel trailer, a Bitcoin surge, or a random internet meme—instantly change what the world is reading about on Wikipedia. I built WikiPulse because I wanted to see if I could use math to "catch" those viral spikes as they happen.
As a student, this was my first time combining Machine Learning with a React dashboard, and it was a massive learning curve!
How do we separate "normal" daily interest from a true Viral Spike? Static traffic analysis often misses the "why" behind the numbers. For researchers and companies, spotting a surge in real-time is the key to identifying emerging trends before they peak.
- Data Science: Meta's Prophet (Time-Series Forecasting), Pandas, NumPy
- Backend API: FastAPI (Python 3.11)
- Frontend: React, Recharts (SVG visualization), Lucide-React
- Environment: Docker (Ubuntu-based build)
- Dynamic Article Search: Type in literally any Wikipedia topic and instantly get a complete 2-year traffic analysis.
- Anomaly Engine: Uses Meta's Prophet model to figure out if today's traffic spike is a true viral moment or just normal weekend behavior.
- The "Why" Context: Automatically fetches Wikipedia revision history for the exact dates of the spike to figure out why it happened (e.g., "Heavy editing focused on Nvidia Blackwell GPU launch").
I didn't just look for high numbers. I built a model that actually understands context:
- Dealing with Seasonality: Tech topics often drop on weekends. My model accounts for this so it doesn't accidentally flag a normal Monday recovery as a "spike".
- The 3σ Rule: Any day where traffic exceeded three standard deviations mathematically from the forecasted baseline was officially flagged as a "Viral Moment."
- Deployment & CORS Nightmares: Getting the React frontend on Vercel to perfectly talk to the FastAPI backend on Railway taught me everything I never wanted to know about CORS securely. I eventually wrote custom middleware to allow secure wildcard fetching.
- Package Hassles: Installing Meta's Prophet on a lean Linux server was brutally hard because it requires very specific C++ build tools. I spent hours writing a custom Dockerfile to build it completely from scratch without crashing.
- Responsive Layouts: Getting the Recharts dashboard to smoothly shrink on mobile without flickering took a deep dive into CSS
min-heightrules!
1. Start the Backend API (Terminal 1)
pip install -r requirements.txt
python main.py2. Start the React Website (Terminal 2)
cd frontend
npm install
npm run dev
