はじめに
はじめまして。
現在就職活動中でポートフォリオを作成したのでそれの説明をしたいと思います。
ポートフォリオのURL
email: tester@gmail.com
password: 111111
主な機能
○ deviseを用いたユーザー管理機能
・ 新規ユーザー登録機能
・ ユーザーログイン機能
・ ユーザー詳細機能
・ ユーザー編集機能
・ deviseの日本語化
○ 問題管理機能
・ 問題投稿機能
・ 問題編集機能
・ 問題削除機能
・ 問題検索機能(部分検索)
・ 問題詳細機能
・ 問題一覧機能
○ 問題集機能
・ 問題集作成機能
・ 問題集の中の問題タイトルをクリックすると問題、答えが見れる
○ 問題へのコメント機能
・ 問題へのコメント(訂正要望)機能
○ 問題へのいいね機能
・ Ajaxを使ったいいね機能
○ その他
・ ページネーション機能(kaminari)
・ fontawesome
ポートフォリオ概要
新しい技術を学ぶエンジニアが繰り返し復習をして、知識の定着を図るアプリです。
何ができるのか
・自分が学んでいることをタイトル、問題、答え、カテゴリーを付けて問題形式で投稿出来る。
・問題詳細では「答えを見る」ボタンを押すと答えが表示される。
好きな問題を集めて問題集を作成することが出来る。
カテゴリーで問題を探すことが出来る。
ユーザーページでは投稿した問題やいいねした問題、問題集を見ることが出来る。
どうやって作成したのか
-
必要な機能を洗い出す。
-
その機能を実現するために必要なテーブル、カラムを洗い出す。
-
ER図を作成
-
各リソースを追加
UserやPostといった核となるリソースから順に追加。 -
デバッグの繰り返し
binding.pryやrails cを何回も繰り返し、値が取れていなかったらなぜ取れていないのか仮説と検証を行った。
工夫したところ
問題集機能
複数の問題を1つの問題集にまとめる作業に苦戦したので,Railsドキュメントでselectやcollection_selectについて調べました。
また、ある問題集に入っている問題を引っ張って来たかったので中間テーブルを作成し、そこから該当する問題を引っ張ることに成功しました。
カテゴリー機能
ローカル環境、本番環境にカテゴリーを反映する方法に悩んでいたのでdb/category.csvを作成し、rails db:seedとすることで反映させることに成功しました。
リファクタリング
コードの重複を少しでも無くすために、部分テンプレートを用いて複数箇所で使用することを意識していました。
このアプリの課題
・ 問題集に問題を後から追加出来るようにする
・ コメント機能のAjax化
・ RSpecで対象リソースをテスト
・ レスポンシブ対応にしているものの少しPCとスマホでは挙動がおかしい箇所があるのでそこの訂正
スペック
・Rails 5.2.3
・Ruby 2.5.1
DB
・ローカル環境 mysql 5.6
・本番環境 pg
サーバー
heroku
最後に
Github: https://github.com/katsu-2
twitter: https://twitter.com/k19911848
もう1つのアプリ: https://teachme-original.herokuapp.com/