【個人開発】家庭の問題に特化した情報共有アプリ「katekate」を作りました

# はじめに

こんにちは、@seshiruff4214と申します。
日々色々なニュースがある中で家庭環境や家庭の問題から大きな事件に発展してしまうようなことが連日のように報道され、核家族世帯も増加している中で悩みなどを人に相談できていないのではないか？と考えました。
自分の家庭でも子育てを行う中で、体調が悪かったり、落ち着きがなかったり、幼稚園で困っていると先生に言われたり…日々色々な子育ての悩みがあり、他の人たちはどうしているのだろう？と考えることも多く、悩みを解決できた人、今悩んでいる人がつながって互いに問題解決をすることができないだろうかと考えこのアプリを作成しました。


katekate〜家庭の過程〜：http://www.katekate.blog
GitHub：https://github.com/shota4214/Graduation_exam_katekate.git
katekateは親や子供が抱える問題や知識を他者と共有しユーザー同士で繋がることができるアプリです。 あなたの悩みは誰かの悩みでもあり、あなたの経験が誰かの希望になります。
![スクリーンショット 2022-09-02 10.41.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2666919/217eb670-20df-5a60-9f80-c529984c0442.png)

# 使用環境
- ruby 3.0.1
- Ruby on Rails 6.0.3
- PostgreSQL 14.4
- CSSフレームワークbulma
- AWS EC2
- AWS S3

# アプリ制作時のポイント
以下の6点を中心にアプリの設計を考えました。

### 1.スマホでの利用を想定
メインで使用されるユーザーを未成年の子を持つ親や学生がメインの利用者と想定し、スマートフォンで使用した際に使いやすいUIを意識し、レスポンシブデザインを取り入れました。
### 2.気軽に情報発信できる
ユーザー登録をしていない、未登録のユーザーであっても記事やユーザーの詳細、記事ランキングなどアプリの一部を体験することができるようにすることで利用してもらいやすいようにしました。
### 3.匿名性を確保できる
ユーザー登録に必須の項目を名前（本名非推奨）・メールアドレス・パスワードに限定し生年月日や住まい（都道府県）なども登録できますが後に追加できる形とし任意の項目としました。また、生年月日を登録するとマイページに年齢が表示されますが、『10代』のように直接の年齢が表示されないようにしています。
### 4.同じ悩みを探せる
検索機能を実装し、「記事タイトル・記事内容・ユーザー名」での検索ができるようにし、またどのページからでも検索ができるようにしています。PC版の場合はヘッダー、スマホ表示の場合はメニュータブ下に検索フォームを設置しています。
### 5.他者との交流が持てる
投稿した記事にはイイねやお気に入り、コメントを残すことができ、ユーザーフォロー、ダイレクトメッセージなどユーザー同士の繋がりを持ちやすい機能をつけました。また、利便性向上のためイイね、フォロー、お気に入り、コメントはAjaxを使い非同期通信としました。
### 6.記事を書くモチベーションが上がる
ランキングが見れるページを用意し、イイね数、お気に入り数、記事投稿数をTOP10でランキング化し、また、記事のPV数のカウントもつけたことで、自分の書いた記事を誰かが見てくれたという認識を持ちやすく、記事や質問を投稿するモチベーションに繋がるように意識しました。

# アプリの機能と使い方
### 記事か質問を写真付きで投稿
ユーザー登録をしていただき、ログインすると記事or質問を投稿することができます。また、記事には写真を添付することも可能です。![スクリーンショット 2022-09-02 10.49.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2666919/7a428f80-cc90-d842-ee80-09d2bff20563.png)
### 記事の下書きが可能
記事・質問の下書き保存が可能です。下書き保存の場合は記事の一覧ページには表示されずマイページから確認や編集ができます。
### 記事に対してコメント投稿
記事に対してコメントをすることができるので質問で投稿した際に、コメントで回答をもらうことができ、記事に対してもメッセージを投稿することができます。
### 記事にイイねとブックマーク機能
各記事に対してイイね！やブックマークをすることができます。ブックマークをした記事はマイページの『お気に入り記事』より一覧で確認することができます。イイね！やブックマークの数はランキングに反映されます。
### ユーザーフォロー機能
各ユーザー名やよりユーザーページに飛ぶことができます。ユーザーページにて『ユーザーをフォローする』ボタンを押すとユーザーをフォローすることができます。フォローしている人、されている人はマイページの『フォロー・フォロワー』より一覧で確認ができます。
### ダイレクトメッセージ機能
お互いにフォローをしているユーザー同士は直接ダイレクトメッセージを送ることができます。ページ上部ヘッダーの『メッセージ』よりメッセージ送信可能なユーザー一覧を確認することができ、メッセージを送信することができます。
### メール通知機能
新規ユーザー登録時・自分の記事に誰かからコメントをもらった時・ダイレクトメッセージが届いた時に登録したメールアドレスにメールでお知らせをいたします。メールが来たらサイトにアクセスして確認してみましょう。

# 今後改善したいこと
### 1.全体のリファクタリング
とにかく開発を進めていたためコードのリファクタリングができていません。コントローラーがファットになってしまっている箇所があるのでモデルにコードを移すなどのリファクタリングを行っていきます。
### 2.サイトのhttps化
現在AWS EC2を使用し本番環境としていますがhttpのままとなっているため通信を安全に行うためにもhttps化をしていきたいと思います。
### 3.レスポンシブデザインのブラッシュアップ
スマートフォンでの対応をもっとしやすいように一部表示の乱れや段違い、画面のはみ出しや表示文字が小さい等あるため使いやすいように改善していきたいと思います。
### 4.ウィザード形式の入力フォーム改善
ユーザープロフィール編集にウィザード形式の入力フォームを取り入れていますが、戻る際に情報の保持ができておらず、一部エラーになる箇所があるため早急に改善をしていきます。
### 5.誹謗中傷などへの対応
デリケートな内容を含んだ投稿になると思われるため誹謗中傷などの書き込みなどが防止できるような対策（通報機能や特定の文字を含めないなど）を構築していきたい。

# 終わりに
最後までご覧いただきありがとうございました。
自分も含め日々家庭の悩みや学校の悩み、子育ての悩み、親や子供への悩みなどいろんな悩みを抱えていると思います。でも、それを解決できた人もいるし、同じ悩みを抱えている人もたくさんいると思います。そういった人たちをつなぐ架け橋になるアプリになればと思い製作しましたし、至らぬところが多いので使いやすいアプリになるよう改善を続けていきたいと思います。ぜひ皆さまからのご意見を頂戴し、真摯に受け止め対応していきたいと思っています。よろしくお願いいたします。

# 追記
2022.09.12
今後改善したいことであげていた【サイトのhttps化】・【レスポンシブデザインのブラッシュアップ】・【ウィザード形式の入力フォーム改善】の実装を行いました。今後も改善を続けていきたいと思いますし、新たなアプリへの着手もしていきたいと思います。