Blockfront 履歴可視化 (py_bf_historical)

Web

概要

py_bf_historical は、Blockfront の状態やプレイヤー統計を長期間にわたって追跡・可視化することを目的とした小規模なリポジトリです。プロジェクトは外部の vuis API を利用して Blockfront の内部 API にアクセスし、定期ジョブでクラウド統計を取得してデータベース(または内部テーブル)に保存、ウェブページ上でテーブル表示とグラフ表示を行います。現状では「クラウド統計の取得とグラフ化」が実装済みで、プレイヤー別の上位表示やログ対象プレイヤー指定、セッション統計といった機能が今後の課題として残っています。コンテナ化を想定した Dockerfile やデバッグユーティリティが含まれており、ローカルでの立ち上げや開発がしやすい構成です。

GitHub

リポジトリの統計情報

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

主な特徴

  • クラウド統計を定期的に取得して時系列データを蓄積・表示
  • 取得済みデータをテーブルとグラフで可視化するウェブ UI
  • 外部 API(vuis)を介した Blockfront 内部 API との連携
  • Dockerfile を備え、コンテナとしてデプロイ可能

技術的なポイント

このプロジェクトのコアは「外部 API を通じて定期的にデータを収集し、可視化する」という典型的な時系列データ収集アプリの構成です。リポジトリにはデータ取得ジョブ(README の TODO にある「Create job to fetch cloud stats」が既に実装済み)と、取得したデータを表示するページ用のロジックが含まれているため、バックエンド側では定期実行の仕組み(cron、APScheduler、あるいは簡易的なループ+sleep)と、取得後のデータ永続化(テーブル作成の記述があることから SQLite 等の軽量 DB またはファイルベースの保存を想定)が実装されていると推測できます。

フロントエンド側は「ページにクラウド統計のグラフとテーブルを表示する」ことが目的なので、JSON API を通じてデータを渡し、Chart.js や類似のライブラリで時系列グラフを描画する実装が自然です。Dockerfile の存在は、環境依存を排して簡単に立ち上げられる利点を与えます。debugUtils.py のようなユーティリティは開発時のログ出力やデバッグヘルパーをまとめていると考えられ、ロギングや例外ハンドリングの整備に役立ちます。

拡張面の注意点としては、外部 API との通信におけるレート制限やエラーリトライ、重複データの防止(idempotency)、長期保管時のデータ削除ポリシー、及びデータスキーマのマイグレーション(Alembic 等)が挙げられます。また、多数のプレイヤーや高頻度取得を扱う場合は、非同期処理(async/await)やキュー(Celery / RQ)を導入してスケーラビリティを確保することが望ましいです。現状は「クラウド統計周りの機能が先に揃っており、プレイヤー別集計やトップ表示は未実装」という状態なので、機能拡張の余地が大きく、設計次第で監視用途やレポート作成ツールへ発展させることが可能です。

推奨される改善点:

  • API 呼び出しの再試行・指数バックオフ実装
  • 永続化に対するマイグレーション戦略の導入
  • 単体テストと CI の追加(品質維持)
  • フロントエンドのインタラクティブ化(フィルタ・期間選択)
  • 認証・アクセス制御(プライベートな統計閲覧を想定する場合)

プロジェクトの構成

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

  • .dockerignore: file
  • .gitignore: file
  • Dockerfile: file
  • README.md: file
  • debugUtils.py: file

…他 7 ファイル

(上記はリポジトリに含まれる主要ファイルの抜粋です。README にジョブ実装やテーブル作成の記述があるため、バックエンドロジックや静的ファイル、テンプレート類が含まれていることが推測されます。)

まとめ

クラウド統計の定期取得と可視化に特化した軽量な開発中プロジェクトです。

リポジトリ情報:

READMEの抜粋:

Blockfront Historical

Website for viewing Blockfront stats overtime. This utilzes vuis’s API for interacting with blockfronts internal API.

Contributors

@Seth-the-cat, @xeovis

TODO

Main goals:

  • Fetch cloud stats and graph
  • Top 10 players by score
  • Make a way to specify players to log
  • Session stats

Cloud stats

  • Create table for cloud stats
  • Create job to fetch cloud stats
  • Make page with cloud stats graph and table

Player stats

  • Create…