【個人開発】Railsで挫折しない目標達成アプリ「tumiki」を作りました。

## はじめに
webエンジニアとして働き始めてはや1年たちました。
土日にちまちま作ったwebアプリが完成したので、紹介します。

Youtubeに動画も載せていますので、文字読むのめんどいよ...!ってかたはこちらでも。

https://www.youtube.com/watch?v=5mTQ-uLXqCY&t=15s


## サービスの概要
![E5DF37CF-C17C-4150-B72A-32386EE18F25.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380952/e99eaaff-98e3-7a9d-32da-adc2cfa17733.jpeg)
https://www.tumiki.work
ほとんどの人が挫折する、目標達成を手助けるアプリです。
自分も含め、目標達成ができなくて悩んでいる人が多いと感じ、
その課題を解決できるような工夫を詰め込みました。

## 使い方
### 1.目標を登録する
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380952/97e4ecb3-eb5e-0a4f-b722-40ef76fce0f6.jpeg" width=50%>

- 達成したい目標
- 達成に必要な行動
- その目標を達成したいとおもった理由(価値観)
- 目標のカテゴリ
を入力します。

## 2.積み上げ記録をつける
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380952/30f79113-c9c6-cd98-9882-5e0e756427db.jpeg" width=50%>

目標を達成するために必要な行動(先程登録したもの)をしたら、
記録をつけます。

## 3.ランクを上げて目標達成

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380952/10e85d72-3d6c-6db1-189d-949e4083e834.jpeg" width=50%>

積み上げ記録を付けるとランクが上がります。
ランクがlv.10まで上がると、目標達成できます。

## 他の目標達成アプリにない強み

### 1.海外大学の目標達成フレームワークを使用

https://studyhacker.net/columns/mac-housoku

目標達成率が上がると証明されている、目標達成フレームワークMACの法則を使用しました。

>Measurable（メジャラブル：測定可能性）
Actionable（アクショナブル：行動可能性）
Competent（コンピテント：適格性）

以上の3つのポイントを目標作成画面に取り入れて、ユーザーが目標を立てる段階で、
目標達成率を上げられるように工夫しました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380952/abb6b14e-bb0f-ef46-46bf-fd605e9d6d23.png" width=50%>

### 2.モチベーションが上がるランクUP機能
積み上げ記録が増えるとランクが上がるようになっています。
普段目標に向けてなにかしても、目標が叶うまでは、達成感を味わえないため、
途中で挫折してしまう人が多いかと思います。

そこで、ランクUP機能をつけることで、**目標に向けて進んでいる感**をユーザーがもてるように工夫しました。

### 3.みんなの目標が見れる
tumikiでは登録している方の目標、行動記録が見えるようになっています。
目標の途中で

- 次何をしたらいいかわからない
- そもそもどんな目標を立てたらいいのかわからない。

そんな人は他の方の目標をみて参考にできますし、
一緒に頑張る仲間を見つけることもできます。

## 使用技術
![C6F5A6D4-BDA1-4F89-B75A-5EFA9CD93985.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380952/41a3b008-8f74-48bd-9829-afcafe1d58b6.png)

### 使用言語
- Ruby on Rails
- HTML CSS (bootstrap)

### 開発環境
- Docker

### デプロイ
- AWSのEC2

## 完成までにかかった道のり
土日にちまちま作って、**約4ヶ月**かかりました。

### 1月 アプリの設計作業とDockerで開発環境を整える
冬休みからアプリの作成を開始しました。
どうせ作るなら、誰かに使ってもらえるサービスにしたい...!と思い設計作業にかなり時間がかかってしまった。。。

いろんなツールを使ったのですが、個人サービスのようなものだったら、
紙にモックを作るだけで良かったかも。

とはいえ、

- 絶対につけたい機能とそうでない機能の洗い出し
- モデルの設計

は、早く完成させるためにも、ちゃんとやっておいてよかったなぁと思いました。

下記に私がやった設計作業について書いてあるので、きになる方はぜひ。

https://note.com/kcatyo/n/nf254e627536d

Dockerは初めて使ったのですが、便利ですが、Docker特有の部分で結構躓くところが多かった。

本当に初心者のかたは、ローカルではじめに開発したほうがいいのかなと思いました!


### 2月、3月 開発作業
最初にバックエンドの機能を大体終わらせて、それからフロントを整えるという形にしました。
バックエンドは特に難しいこともせず、フロントもbootstrapを使っていたので、
とくに詰まることなくスムーズにいきました。

### 2月
開発し始めはバックエンドから

https://twitter.com/munchkayo1025/status/1359750222243524610

### 3月
フロントやり始めた

https://twitter.com/munchkayo1025/status/1367463570246492166

### 4月 デプロイ
4月は1ヶ月ぐらいデプロイの作業をしていました。
**これが本当にしんどかったです。笑**

いままでは、ローカル環境にHerokuでデプロイすることしかしてませんでしたが、

- Dockerを環境構築に使う
- NGINXをサーバーで使う
- AWSでデプロイする

という3つの初めての挑戦にかなり苦戦しました。

ここで学んだことは、**わかったふりしてすすめると最後に痛い目にあうということです笑**

Dockerや、AWSはコピペでやればなんとかなるかーと思っていましたが、
詰まったとき、なんで動かないんだろう?がわからず、デバッグとかもできないので、
なんの知識もないと終わってしまいます。

実際私もこれが起き、基礎からDockerや、AWSについてYoutubeや本で学びなおしました。

そして、なんとかデプロイすることができました...!!!

## 最後に
大変なこともありましたが、何よりも個人開発を通してプログラミングが好きになりました。
tumikiについては、自分も使うし、今後も改善したり、新たな機能をつけていきたいと思いますので、
ぜひ楽しみにしていてください!!

制作過程を載せた

- Youtube

https://www.youtube.com/watch?v=5mTQ-uLXqCY&t=15s

- note

https://note.com/kcatyo/n/nf254e627536d

- Twitter

https://twitter.com/munchkayo1025

もよろしければ見ていただけると幸いです。
読んでいただきありがとうございました!