Market Dashboard(マーケットダッシュボード)

Web

概要

Market Dashboardは、Yahoo Financeなどから取得した市場データを元に静的な株式ダッシュボードを生成・公開するプロジェクトです。GitHub Actionsを用いて日次でデータを取得・処理し、JSONとチャート画像を生成、生成物をGitHub Pagesでホストするワークフローを備えています。ローカル環境ではrequirements.txtで依存をインストールし、scripts/build_data.pyを実行することでdataディレクトリ配下にsnapshotやevents、meta、チャート画像を生成できます。静的サイトとして配布できるため、サーバー運用の手間が少なく、データの自動更新と可視化を手軽に組み合わせられる点が特徴です。

GitHub

リポジトリの統計情報

  • スター数: 33
  • フォーク数: 7
  • ウォッチャー数: 33
  • コミット数: 7
  • ファイル数: 7
  • メインの言語: HTML

主な特徴

  • GitHub Actionsで日次自動取得・ビルドを実行し、常に最新の静的ダッシュボードを生成
  • Yahoo Financeをデータソースとして使用(スクリプト経由で取得)
  • 生成物はJSONとPNGのチャート、静的HTMLで構成され、GitHub Pagesで公開可能
  • ローカルでもPythonスクリプトにより再現可能で、静的サーバーでのプレビューに対応

技術的なポイント

Market Dashboardは「静的サイト + 自動化ワークフロー」に重点を置いた設計になっています。データ取得と可視化の処理はPythonスクリプト(scripts/build_data.py)で行われ、requirements.txtに記載されたライブラリ群(例: データ取得やプロット用のパッケージ想定)を使ってデータを整形・チャート生成します。ビルド結果として data/snapshot.json、data/events.json、data/meta.json および data/charts/*.png を出力する構成で、これらはフロントエンド(index.html)が直接参照して描画するため、サーバーサイドの動的処理を必要としません。

CI側ではGitHub Actionsを用いて定期実行(日次)するワークフローが設定されていると読み取れ、これにより取得・加工・コミット・Pages公開まで自動化される運用が可能です。データソースにはYahoo Financeが明記されており、外部APIのラップやスクレイピングの実装がスクリプト内に含まれている想定です。チャートはPNGとして生成されるため、ブラウザ互換性やロード速度の面で安定しており、静的ホスティングでも視覚的に豊かなダッシュボードを提供できます。

フロントエンドは単一の index.html を中心に据えたシンプルな構成で、生成済みのJSONをfetchして表示するアプローチと考えられます。これにより開発者はデータ処理ロジックをPythonに集中させ、UI/UXは軽量なHTML/JSで実装することで保守性を高めています。GitHub Pagesでの公開はCIからの自動デプロイにより、運用負荷を下げつつ透明性の高い更新履歴(コミット履歴)を確保できる点もメリットです。

注意点として、Yahoo Finance等の外部データ利用には利用規約やレート制限があるため、データ取得の頻度や方法(公式APIの使用、スクレイピングの可否)を確認する必要があります。また、生成されるPNGチャートはインタラクティブ性に欠けるため、将来的にインタラクティブな可視化(e.g. D3.jsやPlotly)を導入する選択肢も考えられます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • .gitignore: file
  • README.md: file
  • data: dir
  • index.html: file

…他 2 ファイル

まとめ

静的で運用が楽、CI自動化された実用的な株式ダッシュボードです。

リポジトリ情報:

READMEの抜粋:

Market Dashboard

Static stock dashboard with daily auto-refresh via GitHub Actions (Yahoo Finance), hosted on GitHub Pages.

Build data locally

cd market-dashboard
pip install -r requirements.txt
python scripts/build_data.py --out-dir data

This generates: data/snapshot.json, data/events.json, data/meta.json, and data/charts/*.png.

To preview locally: open index.html in a browser, or serve the project root with a static server (e.g. python -m http.server 8000) and…