はじめに
いきなりですが、普段の生活の中で悩みや不安を抱えていませんか?
金銭的な悩みや友人などとの人間関係の悩み、将来のことなど、悩みは人様々だと思います。
そんな悩みや不安を解消したい、または少しでも軽くしたい思ったことはありませんか?
そこで、悩みや不安の解決方法を提示するアプリ**MUKINATOR(ムキネイター)**を作りました。
アプリの概要
悩みのカテゴリー→悩みの順に選択すると、その悩みの解決方法とその理由を提示します。
機能
解決策の提示
悩みを選択するとその悩みに対する解決方法と、その解決方法である理由が出てくるようになっています。
筋トレ名言の表示
結果ページの前のローディングページではランダムで筋トレ名言を表示させています。
YouTube動画の表示
rakeタスクの中でYouTube Data APIを使ってYouTubeから動画を取得し、結果ページで表示しています。
Twitterシェア
悩みの解決方法が分かったら他の人にシェアできるようにtwitterシェアもつけています。
使用技術
バックエンド
- Ruby 2.6.6
- Rails 6.0.3
フロントエンド
- HTML
- CSS
- jQuery
- BULMA
主要なgem
- rubocop
- seed_fu
- google-api-client
- meta_tags
- better_errors
- pry-byebug
デプロイ
Heroku
データベース
MySQL 8.0.26
工夫した点
世界観
ユーザーに**「筋トレ」**のインパクトを与えるための工夫をしました。
背景を暗くして、画像もイラストではなく実物のものを使い迫力が出るようにしました。
フォントはGoogle Fontsを使っています。
悩み選択ページの実装
悩み選択ページでは、カテゴリー選択ページで選択したカテゴリーの悩みが表示されます。
(例:カテゴリーがキャリアならキャリアの悩み)
このページは選択肢を1つずつ書くことはせず、またカテゴリーごとにファイルを作らずに1つのviewファイルで表示させています。
選択肢はseed_fuを使って初期データとしてDBに格納しています。また、悩みはそれぞれどのカテゴリーに属するかの情報を持っています。
def trouble_select
# params[:kind]にはユーザーが選択した悩みのカテゴリーのデータが入っている
if params[:kind].present?
# 渡ってきたパラメータを使いDBからそのカテゴリーの悩みを取得
@troubles = Trouble.where(kind: params[:kind])
else
略
end
end
<%= form_with url: results_path, local: true do |f| %>
<!-- @troublesに特定の毛テゴりーの悩みが入っていて、1つずつ取り出して表示 -->
<% @troubles.each do |trouble| %>
<%= f.radio_button :trouble_id, trouble.id %>
<%= f.label :trouble_id, trouble.name, value: trouble.id %>
<% end %>
<% end %>
選択されたカテゴリーの悩みを全て取得してviewに渡しています。
それらをeach文で表示させています。
こうしておけば、viewファイルのコード量が減るのと、悩みを追加するときにseedにデータに追記して読み込ませるだけで済みます。
最後に
開発する過程で多くの方からフィードバックをいただき、このアプリを作り終えることができました。
アプリを最初から作るのは今回が初めてでしたが、楽しみながら作れたこと、たくさんの方に使っていただけたことを大変嬉しく思います。
日常生活の中で何かに取り組めば必ずと言っていいほど悩みや不安が生まれてくると思います。
そんなときは考え込まず、「MUKINATOR」と「筋トレ」を活用してみてください。
悩みや不安が少しでも軽減され、みなさんの日々がより良いものになることを願っています。
最後まで読んでいただきありがとうございました。
それでは、素敵な筋肉ライフを!💪
Twitter
https://twitter.com/takemuu_pote