How sunaiworld/siddegowda-portfolio works
This repository is a stock-portfolio auto-updater: the documented product is a portfolio updater, and the sampled runtime shows a daily pipeline that builds portfolio results and writes them to Google Sheets. The tree also exposes mutual-fund, dividend, screening, snapshot, and morning-brief capabilities. Arrows are limited to relationships visible in excerpts or SOURCE INDEX references; unsampled feature internals are represented without speculative call chains.
Main entry points: main.py Daily update · portfolio_builder.py Portfolio builder · telegram_bot.py Telegram bot · classifier.py News classifier
Components 25
Portfolio pipeline
- Daily update
src/main.py - Trade imports
data/imports - Portfolio builder
src/portfolio_builder.py - Mutual fund pipeline
src/mutual_fund_builder.py
Investment analysis
- Market data
src/data_fetcher.py - Scoring engine
src/score_engine.py - Portfolio analytics
src/portfolio_analytics.py - Fundamental cache
src/fund_cache.py - Google News RSS
src/news_engine/sources/google_news_rss.py - News classifier
src/news_engine/classifier.py - News cache
src/news_engine/news_cache.py - Dividend pipeline
src/dividend_builder.py - Future buy builder
src/future_buy_builder.py - Growth screener
src/growth_screener_builder.py
Sheets and reporting
- Monthly snapshots
src/monthly_snapshot.py - Morning brief
src/morning_brief_builder.py - Portfolio sheet data
src/github_data_builder.py - Sheet writer
src/sheet_writer.py - Sheet formatter
src/sheet_formatter.py
Bot and alerts
- Telegram bot
telegram_bot.py - Bot handlers
handlers.py - Cached sheet state
services/sheets_state.py
Other components
- Operator / schedule
- Google Sheets
- Telegram service
Connections 27
- Operator / schedule → Daily update: starts
- Daily update → Portfolio builder: builds holdings
src/main.py - Portfolio builder → Trade imports: loads trades
- Daily update → Market data: fetches prices
src/main.py - Daily update → Scoring engine: scores stocks
src/main.py - Daily update → Portfolio analytics: computes dashboard
src/main.py - Portfolio builder → Portfolio analytics: uses analytics
src/portfolio_builder.py - Portfolio builder → Fundamental cache: uses cache
src/portfolio_builder.py - Daily update → Google News RSS: fetches headlines
src/main.py - Daily update → News classifier: classifies news
src/main.py - News classifier → News cache: stores digest
- Daily update → Mutual fund pipeline: builds fund data
src/main.py - Daily update → Dividend pipeline: builds dividends
src/main.py - Daily update → Future buy builder: builds buy ideas
src/main.py - Daily update → Growth screener: builds screener
src/main.py - Operator / schedule → Monthly snapshots: runs snapshot
- Operator / schedule → Morning brief: runs briefing
- Daily update → Portfolio sheet data: builds sheet data
src/main.py - Daily update → Sheet writer: writes results
src/main.py - Daily update → Sheet formatter: formats sheets
src/main.py - Sheet writer → Google Sheets: writes cells
- Sheet formatter → Google Sheets: formats cells
- Telegram service → Telegram bot: sends commands
telegram_bot.py - Telegram bot → Bot handlers: dispatches commands
telegram_bot.py - Bot handlers → Cached sheet state: reads cached rows
handlers.py - Cached sheet state → Google Sheets: reads state and data
services/sheets_state.py - Telegram bot → Daily update: runs refresh
telegram_bot.py