yutokashiwagi / ukarimi Goto Github PK
View Code? Open in Web Editor NEWポートフォリオ:大学受験用のQ&Aサイト 随時アップデート!
ポートフォリオ:大学受験用のQ&Aサイト 随時アップデート!
https://github.com/YutoKashiwagi/Questin_box/blob/dev/app/controllers/answers_controller.rb#L4
https://github.com/YutoKashiwagi/Questin_box/blob/dev/app/controllers/questions_controller.rb#L26
https://github.com/YutoKashiwagi/Questin_box/blob/dev/app/controllers/questions_controller.rb#L36
https://github.com/YutoKashiwagi/Questin_box/blob/dev/app/controllers/answers_controller.rb#L30
@answer = Answer.find(params[:id])
このように書くと誰でもいじれてしまうので、
@answer = current_user.answers.find(params[:id])
このようにユーザーから取得する
https://github.com/YutoKashiwagi/Questin_box/blob/dev/app/controllers/users_controller.rb#L3
この場合、ID指定で別のユーザーの名前が取得できることになる
マイページ用に別のコントローラを作り、パラメータでユーザIDを使用せず、current_userを使用する
bulletを導入して、N+1が発生している箇所をしっかり直す
#92
実際に使ってもらっての意見まとめ
質問に対してただ一つのベストアンサー機能をつける
like, comment部分のfeature specがコピペでテストしてしまっているので、別ファイルにshared_examplesを用意する形で対応したい
ページネーションを非同期でできるようにする
特にpost, questionのindexページなど複数のタブを使用している部分は非同期にしないとかなり不便
回答者のランキング機能を追加する
どういったランキングを作るのが適切なのかいまいちわからないので、とりあえず現状は質問数と回答数のランキングのみ
今後需要に合わせてランキングを追加していきたい
各モデルのuser_id等にバリデーションを施していなかったので、全体的に施す
質問、回答に対していいね機能を付ける
ベストアンサーはその質問に対しての最適解となるが、いいね機能であればその質問のベストアンサーとならなくても、似たような状況になってその質問にたどり着いた人の参考になったということがわかる
コメントにいいねをする必要はなさそうだから、
ポリモーフィックを使って回答と質問にいいねできるようにする
ここではcommentable.try(:question)
で一旦対応したけど、moduleでメソッドを書いて親モデルを取得できる形にしたい
学習の進捗をツイートできる機能があったら便利かもしれない
滞在時間を増やせそう
readmeを整備する
投稿周りのルーティング、ページ設計等が色々と問題が多いので大幅に変更する
questionモデルに解決済みかどうかを0, 1で判定するためのsolvedカラムを追加
検索時やソート時に解決済み、未解決の判定を容易にするため
questions#showページで、質問と回答のidが同じ場合、どちらかにいいねを押すとどちらもいいねされてしまう
質問、コメントのタブ部分をクリックすると、両方のフォームが出てきてしまう
questionモデルのcontentの型がstringになってしまっていること
以前書いたコードの中で、直したい部分
flash[:xxx] = 'xxx'
redirect_to xxx_path
と二行で書かれてる部分と、
redirect_to xxx_path, flash: { xxx: 'xxx' }
と一行で書かれてる部分があり、統一されてないのでどちらかに統一したい
以前書いたコードの中で無駄にデータを作ってたりする部分がいくつかあるので、直したい
deviseのテストユーザーログイン機能を実装する
テストユーザーには既存のデータの編集、削除制限をかけておく
エラーメッセージ が表示されるように修正する
現状はquestionモデルのカラムの中にベストアンサーを入れる形だが、これではユーザー側でベストアンサー数を集計するのが大変
中間テーブルを作る形に変更したい
controller, request specを初期に自動生成オフにしてから今までその存在を忘れてたので、今更既存のコントローラのテストを追加
コントローラの抜けや処理の甘い部分、余計なルーティングもついでに直した
テストを書いたことでコントローラに対する理解が深まり、非常に良い勉強になった。
今度からは初めからしっかり書くべし
デモデータ作成
サイトの使用方法がわかるような、具体的なデモデータを作成する
知恵袋とかから引っ張ってくる?
full_titleメソッド追加
表示がダサい部分を直す
こんな理由から、レスポンシブ対応はやるべき
質問やユーザーにタグを付けられるようにする
twitter, google, FBログインあたりまでやりたい
現在は質問に対するレスポンスが回答しかないので、他の手段として回答と質問に紐づいたコメントモデルを作成する
ポリモーフィック使えばいけそう
サイトのデザインを良くしたい
タブ
通知画面
フォーム画面
カテゴリー選択部分
ベストアンサーに選ばれた段階で解決済みとし、質問一覧画面、質問個別画面で解決済みかどうかわかるようにする
system_specの導入
ローカル環境では問題なく動くけど、CircleCIが落ちる
もう少し機能付けたらこの問題と向き合う
ユーザー登録時に利用規約を表示し、規約に同意しなければ登録できない仕様にする
ユーザー同士のフォロー機能をつける
一般的なSNSではないのでフォローを使うメリットを考えなければならない
通知機能との紐付けぐらいかな?
Qiitaを参考に、質問のストック機能を導入したい
ストックはajaxで行う
質問個別ページがスレッドのようになってるので、そのリンクをため込む感じで行けそう
質問一覧ページの個々の質問を表示するパーシャルを作って、それを使いまわして表示したい
一覧の状態から、解決済みかどうかをわかるようにする
なんらかのアクションがあったとき、通知される機能が欲しい
機能数が多くなってしまったため、どんな時に通知されるか、それが本当に必要なものであるのか厳選しておきたい
credentials周りの操作がだいぶ異なるため、今後のことを考えて5.2系へ移行する
https://gekkado.com/archives/624
https://qiita.com/NaokiIshimura/items/2a179f2ab910992c4d39
ユーザーページのフォロー中のタグの下に、何もタグをフォローしていない場合はまだカテゴリーをフォローしていません的な文言を加える。text-muted、link_toでカテゴリーページへのリンクにしておくといいかも?
question, answerのいいね数の表示が縦になってしまっているので、横並びに直す
テキスト表示部分をスマートにする
simple_format()
メソッドを使って改行を有効化し、表示部分を整える
サインアップ時にメール認証を行う
就活中は採用担当者さんの手間になるので実装しない
ユーザー情報をもっと追加する
など
現状デザインにほとんど手を付けてないので、多少なりともマシなデザインにしたい
期間を決めてしっかり作る
今週中はフロントしかいじらないぐらいの勢いでやる
ユーザー画面の回答した質問のところで、同じ質問に複数回回答していると、その回数だけ同じ質問が表示されている
投稿ページのユーザー写真が本人のがログインしている場合でないと表示されない
question_boxからukarimiへアプリ名を完全に変更する
railsのgemでそういうものがあったはず
今現在は大学受験質問箱(仮)だけど、もっとキャッチーなものに変えたい
わかりみ + 受かる => 「うかりみ」
別ファイルでshared_examplesとして切り出し、各Likableモデル内で呼び出してテストする形にしたい
現状はsupportディレクトリに記述しても呼び出せないため、spec/models/like_spec.rb内でshared_exampleを定義して、そのファイル内で各モデルをテストする形で対応
科目や参考書ごとにユーザーが自由にコミュニティを作れる機能が欲しい
科目、参考書、志望校ごとにコミュニティを作れたら便利そう
dockerfileにベストプラクティスを反映させる
同じタグとかで関連付けて、ランダムで表示する
これはコミュニティ一覧表示でも採用できそう
LPを作る
LPを見るだけで使用方法が直感的にわかるような感じが理想
ransackを使って検索機能を実施する
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.