【個人開発】筋トレ初心者に向けてトレーニングメニュー提案アプリを作成したお話

# はじめに
はじめまして、こんにちは情報系の大学に通っている現在二年生の大学生です。
今回はPHPを使って筋トレに関するWebアプリを作成し、実際にデプロイをしたのでその経験を振り返って、記事を書こうと思いました。

よかったら最後まで見てください。そして実際に使っていただけると幸いです。

# 開発背景
私は大学に入ってすぐフィットネスジムでアルバイトをし始めまた。理由はジム利用料がタダになるからです。高校部活を引退し主権を経て私の体重は+20kgほど太ってしまい、痩せようと思い、このバイトを始めたのです。
アルバイトをしながら、トレーニングに励み20kgの減量に成功。そして今ではトレーニング歴2年になりますが今年はフィジーク大会に出場しようと考えています。

そんなトレーニング経歴をもつ私に、周囲の友人から「筋トレ始めたいんだけど、なにやればいいの？」そんな質問をされることが多くありました。それに対してうまく答えられなかったり、一人ではトレーニングのモチベーションが保てなくて辞めてしまう友人を多く見てきました。
そこで、今回のWebアプリ __「Work-Out-Provider」__ の開発を決めました。

鍛えたい部位を選択するとランダムでトレーニングメニューを提案してくれて、トレーニングした日にち、メニューを記録してくれるアプリです。さらには、もっと深く筋トレを知りたい方には私への質問箱を設置しました。

## 開発物
リンク：http://yura0418.php.xdomain.jp/index.php

上記リンクから実際にアプリを利用すること可能ですので、良かったら覗いてみてください。

### ログインページ
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964925/f7fac1ad-fb35-b1b1-01f5-66aa7353ddab.jpeg" width=300><br>
初めての方はこちらではユーザー作成画面になります。ユーザー作成では、もうすでに使われているニックネームは使用できないような仕様にしました。

### ホーム画面
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964925/88a412f6-ce2a-08fa-8668-0f72b15f18aa.jpeg" width=300><br>

ホーム画面です。ホーム画面には「トレーニング」「記録」「Q&A」の3つの機能があります。
「トレーニング」・・・鍛えたい部位を選択するとランダムでメニューを組んでくれる機能。選択可能部位は、胸・背中・腕・脚・肩
　　「記録」　　・・・今までトレーニングしてきた部位と日にちが記録されているページです。
　　「Q&A」　　・・・よくある疑問に答えています。筋トレのことから食事のことまで疑問を解消しています。また、わからないことが合ったら、制作者に質問することができます。

### トレーニング選択画面
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964925/506aee35-8716-60d8-5d5b-05cef8aead4d.jpeg" width=300><br>

トレーニング選択画面です。上の写真はモバイル版ですのでトレーニング選択の部分のみ横スクロールを可能にしてあります。

### トレーニング提案画面
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964925/c89e8635-b692-7c94-bca7-5a50fa361d38.jpeg" width=300><br>
トレーニング提案画面では指定された部位を鍛えることができるメニューをランダムで3つ指定してくれます。各トレーニングに対して説明や注意点も記載されています。
このページの一番下には「トレーニング完了ボタン」が配置してあり、トレーニングが終了したらそれを押していただけると本日のトレーニングが記録されます。

### 記録画面
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964925/e7ffd295-28fc-6e29-c4e6-b20aacc822f8.jpeg" width=300><br>
トレーニング完了ボタンを押したときのトレーニングの内容が記録されていきます。
筋トレ初心者の方は何より継続・習慣化をしてほしいため何回・何セットトレーニングしたかよりも、自分がどれだけの日数がんばったかを簡単に可視化できるようなデザインにしました。

### Q&A画面
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964925/32f4e40b-89d6-3466-c802-5f2045f42131.jpeg" width=300><br>
Q&A画面では、筋トレ初心者の方が疑問に思うことについていくつか解答しています。
また、記載されていない内容で、疑問に思ったことがあれば写真にあるフォームから質問することが可能で、随時更新していく予定です。

## 使用技術
* HTML/CSS
  * Webアプリなので当然必要になります。
  * レスポンシブデザインを適用するのが少し大変でした。
* PHP
  * webアプリ作成に当たって、AI等を用いないことから、作成が簡単なPHPを利用
  * mySQLの利用が簡単であったため。
* MySQL
  * 同上
* SourceTree/Github
  * 個人開発でもバージョン管理は大切なため使用。 
 
大した技術周りではないかもしれませんが、PHPを学習し始めて1か月ほどでこのアプリを完成させリリースまでできたことは一つ大きな自信となりました。

## リリースしてみて
周囲の友人や知人に幸いにも使っていただき、何点もフィードバックをいただきました。
* 各トレーニングの画像or動画が欲しい！
* 記録する際に自分が何回何セットやったか、記入できたらいいかも！
* 記録画面に自分の体の変化の写真を投稿できたら変化がわかって継続しやすいかも！
などなど...

各ユーザーの性別や、トレーニング状況によって求めることが様々なのですべては反映させることができませんが、フィードバックを基に改良を重ねていこうと思います。

## おわりに
大学入学後さまざまなシステム構築や、アプリの開発を行ってきましたが、リリースに至ったのは今回が初めてだったため、非常に貴重な経験となりました。リリースとなるとユーザーのことを考えて、どんなUIだと使いやすいか？このアプリはどの層に向けてのものなのか？などプログラム以外のことを考えることも多く楽しくも大変でもありました。<br>
今回自身の身の回りの課題をWebアプリ(IT)を通じて解決することができて(?)非常にやりがいを感じることができました。自身のスキルアップに大きくつながったと感じています。
作成にあたって、アドバイスをくれた友人やフィードバックをくれた方々には感謝の気持ちでいっぱいです。
今後も課題解決に向けて様々な取り組みをしていけるように精進していこうと思います。