Personal project · Data pipeline · May — June 2025
WarStock
A scheduled Python pipeline that turns market data and news feeds into an inspectable, experimental signal.
- Role
- Project creator
- Timeline
- May — June 2025
- Stack
- Python · React + Vite · GitHub Actions · RSS · Recharts · Vercel
- Project at a glance
- 5 tickers · 3 RSS searches · Hourly automation
View full image Overview
WarStock runs a scheduled Python model, persists timestamped score history, and serves it to a React dashboard through a serverless API with a direct-data fallback.
Composite indicators can look authoritative while hiding fragile inputs. This project treats the result as an experimental signal and makes its data sources, weighting, history, and limitations inspectable.
How it works
Follow the data from input to interface.
- Feeds
Read five market tickers and three news RSS searches each hour.
- Python
Score inputs, reuse valid values on source failure, and save timestamped history.
- Dashboard
Serve the history through an API with a raw-data fallback and CSV export.
What I built
Built the Python ingestion and scoring pipeline, persisted history, serverless API, and terminal-style React dashboard.
Integrated five Yahoo Finance tickers and three Google News RSS searches without requiring application secrets.
Added browser-side JSON and CSV exports, manual refresh controls, and continuous integration for backend checks and the production frontend build.
Key choices
Kept the model deliberately simple: an 80% stock signal and 20% keyword-weighted news signal, normalized to 100.
Logged source errors and reused the previous valid component when an upstream feed failed.
Made component scores, history, and exports visible so the output can be audited instead of treated as a prediction.
Outcomes
Runs the complete ingestion-to-visualization loop every hour through GitHub Actions.
Continues serving score history through a raw GitHub fallback if the Vercel API route is unavailable.
Demonstrates scheduled data processing, error handling, persistence, API delivery, visualization, and export in one small system.