スポーツコーチがチームで使える検温アプリをDjangoで作ってみた

#はじめに
初めまして。姫野と申します。
アメリカンフットボールのチーム、[ノジマ相模原ライズ](http://www.sagamihara-rise.com/)でコーチをしています。
非エンジニアですが昨今のスポーツ業界でのデータ利用の盛り上がりに乗じてPythonを勉強中です。
スポーツ界のデータ利用といえば[ラグビーの日本代表がGPSデータを活用して話題](https://www.asahi.com/articles/ASM7C66QRM7CUTQP01M.html)になりましたね。

アメフト界でもデータ活用を進めたい！ラグビーと間違われたくない！__チヤホヤされたい！__という想いで本来のコーチ業とは別にプログラミングの勉強を進めています。
アウトプットの一つとして、Djangoで検温アプリを作ったので、せっかくならオープンにしよう、ということで投稿しました。

#課題
みなさんは会社や所属団体で日々の体調管理をどうやっていますか？
無償アプリであればGoogle Formを使いこなす手もありますし、有償アプリであればグラフ化やリマインダー付きなど様々な機能がありますね。
ただ、__Google Formは使いにくいし、有償アプリは使わない機能がたくさんあるのに高い__(年間100万円のサービスも！)。。。

__「社会情勢に左右されない、地域とファンと共に歩むプロフェッショナルクラブ」__と理念を掲げるわがノジマ相模原ライズにおいて、チーム活動でクラスターを発生させるわけには絶対にいけません。一方で、100万円あれば他のモノに投資したい( ；∀；)
マイナースポーツはツラい。。。

#背景
ノジマ相模原ライズでは、コロナが流行り始めた2020年シーズンは、機能を限定した有償アプリを一年限定で無償提供してもらっていました。
2021年シーズンでは有償アプリの無償提供期間も終了してしまうので、どうしたものかと悩んでいたところ、以下記事を見つけました。
>[武蔵野大学、Slackと連動した検温・体調管理アプリを開発](https://techable.jp/archives/140163)
>"言語は、同学科で主に使うプログラミング言語であるPythonを使用。また、認証系のシステムが実装されていることから、Djangoをバックエンドとして採用したとのこと。"

まさに勉強中のPythonでできるやん！ということでDjangoでの実装を試みました。

#アプリの仕組み
Djangoの基本機能しか使ってないので、細かいコードの説明は先達偉人方にお任せして、簡単な仕組みの説明だけ。（最後にGithubのリンクをつけています。）
[Python Django3超入門](https://www.amazon.co.jp/dp/4798061921/ref=sspa_dk_detail_0?psc=1&pd_rd_i=4798061921p13NParams&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUFOODdVS0owRFBLNFUmZW5jcnlwdGVkSWQ9QTAyMDI0ODZTV0pNOUM2TUpWS0YmZW5jcnlwdGVkQWRJZD1BWFU0QlhDUU00T0hNJndpZGdldE5hbWU9c3BfZGV0YWlsJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ==)⇦参考にしました。

####システム構成図
Herokuでデプロイしました。常時起動のConditionアプリに付随して、Heroku schedulerとwebhookでslackにリマインダーを送る設計にしてあります。
<img width=600 alt="UML_condition.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983155/3365d3b9-882f-b4c7-e803-1e612f3fd0d3.jpeg">

####ユースケース図
チームメンバーはアカウント作成から日々のCondition報告までを受け持ちます。別で、ヘッドマネージャーにConditionアプリの管理者になってもらい、アカウントの管理などを行ってもらっています。
<img width=600 alt="UML_condition2.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983155/e771662d-758f-57e9-0367-838279b2491f.jpeg">

#アプリの画面
実際のアプリ画面を紹介します。

####ログイン画面
初めての方はアカウント作成で新規アカウントを作ります。
<img width=300 alt="スクリーンショット 2021-03-25 21.43.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983155/fcf9fe20-f195-3647-6a65-c0cc43a0d7eb.png">
####トップ画面
自分の過去投稿が並んでいます。過去投稿のEdit/Deleteも可能です。
![スクリーンショット 2021-03-25 21.47.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983155/c250fce9-2ebb-7fdb-ea31-d4fae6101549.png)
####ポスト画面
体温や体調を記入します。チームにはアメリカ人もいるため、英語表記です。（英語怪しい）
![スクリーンショット 2021-03-25 21.49.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983155/ed15ee9e-3391-1078-016d-c5ab0835c290.png)
####一覧画面
体温37.5℃以上の人や体調不良の人は赤字で強調されます。ポジションでソートできます。
![スクリーンショット 2021-03-25 22.20.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983155/ae95044e-3d4d-0103-c831-21ad44648124.png)
未投稿者はさらされます。
![スクリーンショット 2021-009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983155/50dfc432-0c5a-bf3f-c193-c1f0e5639a85.png)
####スラックでのリマインド(Slack画面)
土日の練習前に自動で未投稿者の名前が投稿されます。
<img width=200 alt="スクリーンショット 2021-03-25 22..png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983155/7656f2eb-0c3f-4891-c369-304383eeba92.png">

#最後に
コードです([Githubリンク](https://github.com/kt199671/conditions))。ご参考になれば。

__日本のアメフト界には生きたデータと課題が無数にあるにも関わらず、うまく活用されていないのが現状です。__
嘆いても仕方がないので自分でエンジニアになることにしました。
検温アプリごときで業界のムードを変革できるとは思いませんが、前に進む一歩を踏んでいきたいですね。
検温アプリ以外の最近の取り組みはこちら。随時公開していきます。

* GPS付きスマートウォッチから練習中の選手の動きを定量化
* 試合＆練習ビデオから選手の動きを抽出
* [選手の全身写真と体重から体組成を可視化](https://qiita.com/ryojihimeno/items/6cb013f8b847a4864a87)

他にもこんなことできそう！などアイデアあればコメントにて教えてください。
また、アメフト界をデータ活用で変革したいという想いに賛同して下さる方は、是非一緒に活動しましょう！
スタッフ申し込みは[こちらのフォーム](http://www.sagamihara-rise.com/recruit/recruit_staff.html)からお願いします。(エンジニア希望の方はコーチ・アナライジングスタッフとしてお申し込みください)