How shanksoff/sentimentdash works
This is a full-stack S&P 500 sentiment and market-analysis dashboard. Users select a ticker in the React dashboard, which requests market, sentiment, fundamentals and analytical results from FastAPI; the API reads PostgreSQL and invokes analytics or AI generation as needed, then the dashboard presents signals, charts and briefings. A separate scheduled workflow gathers news and market data, scores headlines and refreshes stored data. The README documents the major capabilities and high-level wiring; some backend implementation details were not sampled, so uncertain internal calls are omitted.
Main entry points: main.py FastAPI endpoints · scheduler.py Daily scheduler · sentiment_engine.py Headline scoring · Dashboard.jsx Dashboard
Components 18
Dashboard
- Dashboard
frontend/src/components/Dashboard.jsx - Ticker search
frontend/src/components/TickerSearch.jsx - Analysis panels
frontend/src/components/ForecastPanel.jsx - Price and sentiment chart
frontend/src/components/SentimentPriceChart.jsx - Briefing and Q&A
frontend/src/components/AnalysisPanel.jsx
API and analytics
- FastAPI endpoints
main.py - Time-series analytics
analytics.py - AI briefing generator
analysis_engine.py - DB connection pool
database.py
Scheduled data
- Daily scheduler
scheduler.py - RSS news fetch
fetch_news.py - Market data refresh
fetch_market_data.py - Headline scoring
sentiment_engine.py
Persistence
- PostgreSQL
Other components
- Ticker user
- RSS feeds
- Yahoo Finance
- Gemini AI
Connections 20
- Ticker user → Ticker search: selects ticker
- Ticker search → Dashboard: submits selection
- Dashboard → FastAPI endpoints: requests data
- FastAPI endpoints → DB connection pool: opens connections
- DB connection pool → PostgreSQL: reads and writes
- FastAPI endpoints → Time-series analytics: computes analysis
- FastAPI endpoints → AI briefing generator: generates briefing
- AI briefing generator → Gemini AI: prompts model
- FastAPI endpoints → Yahoo Finance: refreshes live data
- FastAPI endpoints → Analysis panels: returns analytics
- FastAPI endpoints → Price and sentiment chart: returns chart data
- FastAPI endpoints → Briefing and Q&A: returns briefing
- Daily scheduler → RSS news fetch: runs fetch
- RSS news fetch → RSS feeds: reads feeds
- Daily scheduler → Market data refresh: refreshes prices
- Market data refresh → Yahoo Finance: fetches market data
- Daily scheduler → Headline scoring: runs scoring
- Headline scoring → PostgreSQL: reads articles; writes scores
- Daily scheduler → PostgreSQL: refreshes stored data
- Headline scoring → Gemini AI: scores headlines