情報をスタック&可視化するサービスを作りたい


定期的に更新される情報。

数字だけで小難しかったり、単体で見てもわかりにくかったり。

そういうのをDBにスタックしてわかりやすく表示する機能を作ってみたい。

次の要素があると作りやすい。

  1.  1日1回定期更新
  2.  フォーマットが変わらない
  3.  意味のある数値が毎日変化する

今回は練習作としてFXのスワップ金利を対象に作ってみた。

LionFXのスワップ可視化 | Narumium Portal
ヒロセ通商のLionFX。そのスワップ金額をチャートにして見えるようにしました。お試しテスト機能なので急に変更したり停止したりします。

※スワップ金利とは2国間の金利差を日割りにして付与するものです。

 

仕組み

基本的にAWSで収まる設計にする。

概要 : CloudWatch -> Lambda -> DynamoDB <- Lambda <- API  <- S3

  • 入力
    1. CloudWatch Events – Schedule: daily  で1日1回Lambda関数を起動する
    2. Lambda関数でスクレイピング+DB格納
  • 出力
    1. S3に置いたHTMLファイルからAPI呼び出し
      • 普通にHTTP POST(GETしたかったがうまく設計できなかった)
    2. APIからLambdaを起動
      • Lambda関数と統合する
    3. DBから検索結果を返す
      • JSON形式でパススルー

 

可視化

次に持ってきたJSONをグラフ化する。

グラフ作成系のJavascriptは結構あるけど、どれも面倒な感じ。

今回は比較的簡単そうでデザインと名前が好みのChart.jsを使ってみる。

これは基本機能は簡単ではあったけど、ちょっと変えようとすると難しい。

頻繁に仕様が変わっているのか、ブログや紹介記事なんかはまったく当てにならなかったので公式ドキュメント以外は信用しない方がいい(Update関連は公式通りではうまくいかなかったけど)。

出来上がったチャートはこんな感じ。アニメーションが心地良い。

swap

 

さて何をつくろうかな。

 


コメントを残す

メールアドレスが公開されることはありません。