LINE botを使ってLINEトークでトレーニングを記録・管理する

tl;dr

入力がめんどくさい人のために、LINE Messaging API を使ってLINEトークでメッセージを送るとトレーニングを記録してくれるbotを作りました。

f:id:cola119:20190228172617j:plain

部内のトレーニング管理システム(既存)

東工大OLTでは、不定期でトレキャンと呼ばれるトレーニンコンペティションが開催されます。トレキャン期間では、走行距離や筋トレ回数を記録してポイント化し、総ポイント数を競います。上位3名には賞金がでるので、良いモチベーションとなっています。

ランニングは1pt/km、オリエンテーリングは3pt/km、筋トレは100回/ptなど種目ごとに得られるポイントが異なり、水曜練や金曜練には参加ポイントが付与されます。

このように、独自のポイントシステムでトレを管理するには専用のサイトが必要です。代々引き継がれてきた管理サイトはCGIで構成されており、良くも悪くも時代を感じる構成となっています。

f:id:cola119:20190228004354p:plain
トレキャンサイト

それっぽく改良

これはこれで味があって悪くないと思いますが、他人の記録を編集できてしまうなど微妙な点がありました(部内で使うだけなら問題ないけど)。あとは任意の期間でのトレーニング記録を参照したかったりグラフで表示したかったりしたので、それっぽく改良することにしました。

f:id:cola119:20190228005628p:plain
PHPフレームワークにはLaravel、グラフ表示にはD3.jsをを採用しました。

任意の期間で集計したり、種目ごとのポイントでランキング付けできるようになっています。トレキャン期間だけでなく、日々のトレーニング記録サイトとして部内で使ってもらっています。

トレガチ部

さらに2018年度から、部員・OBの競技派から構成されるトレーニング推進グループ(通称トレガチ部)が発足しました(させました)。ある程度の強制力をもって継続的にトレを続けられるように、3週間に1週40km走るというルールが設けられています。みんな頑張ってトレーニングしようね。

f:id:cola119:20190228010827p:plain
40km/週は簡単・・?

みんな入力してくれない

こんな感じでユーザー登録して管理できるシステムを作ったわけですが、いざ運用してみると皆入力してくれないんですよね。ブラウザ起動→ログイン→入力画面→日付・走行距離・種目など入力→submitの手順をめんどくさいと感じてしまうらしいです。(気持ちはわかる)

トレガチ部のグループLINEが存在し、トークでトレ募集したり今週の走行距離の報告をしていました。LINEは気軽に開くものなので、LINEグループで発言したら自動でサイトに記録されると便利だなと思い、LINE botの開発にとりかかりました。

LINE Messaging API で発言を取得し文字列を解析し、ポイントを計算してデータベースに保存します。この方式ならわざわざブラウザを立ち上げてログインして入力する手間がなくなり、またトークで皆が走っていることを把握できるためモチベーションの維持にも繋がります。

f:id:cola119:20190228180303j:plain:w300
ラン・オリエン・トレランに対応

f:id:cola119:20190228172617j:plain

現状では当日のデータの挿入しかできないので、走ったらすぐトークで発言する必要があります。これはこれで入力漏れがなくなっていいと思っています。

さいごに

  • 頻繁に開くLINEを使って気軽に成績を記録できるのでハードルが下がる
  • グループトークで皆が走ってるのを確認できてモチベーションに繋がる
  • 個人でもLINE botを使えるのは便利
  • ジョグノートもLINEで登録できれば楽

参考

developers.line.biz

www.islog.jp