bootcamp icon indicating copy to clipboard operation
bootcamp copied to clipboard

[アンケート機能]アンケートを作成できるようにしたい

Open machida opened this issue 2 years ago • 28 comments

#4472 でアンケートで使う質問を登録する機能が作られています。 このIssueでは、質問をまとめたものを作る、というのをお願いしたいです。

アンケートは surveys でお願いします。

アンケートが持つデータ

  • タイトル
    • 例: 2023年04月のアンケート
  • 質問
    • #4472 で作った質問を複数個持つことができる
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • 回答期限日時
  • WIP or 公開

アクセス権限

index、new、edit は 管理者、メンターだけがアクセスできる。 アンケートフォームは全てのユーザーがアクセスできる。

machida avatar Apr 07 '22 14:04 machida

アンケート一覧

surveys の index

image.png (1.9 MB)

アンケート作成・編集

surveys の new, edit

image.png (2.8 MB)

アンケート個別(アンケートフォーム)

変更になりました。 https://github.com/fjordllc/bootcamp/issues/4586#issuecomment-1257298181 が正しいワイヤになります。


↓変更前

アンケートフォームの view の layout ファイルは、独自のものを用意する予定です。 このページはアンケート個別ページでもあり、アンケートフォームでもあるので、URLについては相談しながら決めましょう。

image.png (1.1 MB)

machida avatar Jul 12 '22 04:07 machida

このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。

github-actions[bot] avatar Sep 11 '22 01:09 github-actions[bot]

@machida こちらのissueなのですが、前回の計画ミーティングの時に「前回に引き続き、これも既存のPRにプッシュするissueですね」と聞いた気がするのですが、どちらのPRか教えていただけないでしょうか🙇‍♀️

また、「アンケート個別(アンケートフォーム)」にURLについては相談しながら決めましょうとありますが、いかがいたしましょうか? 前回のMTGでは「showはなくてよい」とおっしゃっており、全く別のURLになると認識しています。

ご回答よろしくお願いいたします🙇‍♀️

AyakaTakashima avatar Sep 24 '22 02:09 AyakaTakashima

@AyakaTakashima

伝え忘れてました🙇‍♂️

https://github.com/fjordllc/bootcamp/pull/5370

こちらのブランチから新しいブランチを作って作業をお願いしますー

machida avatar Sep 24 '22 06:09 machida

@machida

承知いたしました!ありがとうございます!

AyakaTakashima avatar Sep 24 '22 06:09 AyakaTakashima

@machida 度々申し訳ございません! 下記についてはいかがでしょうか?

また、「アンケート個別(アンケートフォーム)」にURLについては相談しながら決めましょうとありますが、いかがいたしましょうか? 前回のMTGでは「showはなくてよい」とおっしゃっており、全く別のURLになると認識しています。

AyakaTakashima avatar Sep 24 '22 07:09 AyakaTakashima

@AyakaTakashima アンケートフォームは今回のIssueには含めないことにしました。ただ、showの作成はお願いします。showはアンケートフォームのプレビューにしようと思ってます。文章だと分かりづらいのでここはワイヤフレームを作成します。

machida avatar Sep 24 '22 07:09 machida

@machida 承知いたしました!それでは、showの方はそのワイヤーフレームの作成待ちということで問題ありませんでしょうか??

AyakaTakashima avatar Sep 24 '22 16:09 AyakaTakashima

@AyakaTakashima はい、作成待ちでお願いします🙏

machida avatar Sep 25 '22 21:09 machida

@AyakaTakashima お待たせしましたー。 show こんな感じでアンケートのプレビュー画面にしたいと思います。 自分で作ったアンケートの内容が確認できるページをお願いします。

image

このあと、何人が回答したかなども見れるようにしたいですが、それは別Issueにしたいと思います。

machida avatar Sep 25 '22 23:09 machida

@machida 承知いたしました!ありがとうございます!

AyakaTakashima avatar Sep 26 '22 09:09 AyakaTakashima

@machida お疲れ様です! 本件について、ER図を書いてみました。 実は、ER図を書くプラクティスをやった際に、6回も再提出になりました。 自信がないので一度みていただきたいです😭

もし、「ここはnullでもOK」というのがあれば、それもあわせて教えていただけますと助かります!

image

  • タイトル
    • 型:text
    • カラム名:title
    • 制約: limit: 255, null: false(日報のタイトルと同じ制約)
  • 質問
    • 型:references
    • カラム名:questionsurvey_question_idにし、#5370 で作成いただいたquestionsurvey_questionテーブルのidを外部キーとする
    • 制約: foreign_key: true,null: false
  • 作成者
    • 型:references
    • カラム名:creator_id
    • 制約:foreign_key: { to_table: :users }
  • 作成日時
    • 型:datetime
    • カラム名:created_at
    • 制約:null: false
  • 更新者
    • 型:references
    • カラム名:updator_id
    • 制約:foreign_key: { to_table: :users }
  • 更新日時
    • 型:datetime
    • カラム名:updated_at
    • 制約:null: false
  • 回答期限日時
    • 型: datetime
    • カラム名:reply_deadline
    • 制約:null: false
  • WIP or 公開
    • 型:boolean
    • カラム名:wip
    • 制約:default: false, null: false

特に、タイトルは日報と同じく必須でいいのか、回答期限も必須にしようと思いますがこれで良いのか、が気になっています。 よろしくお願いいたします🙇‍♀️

AyakaTakashima avatar Sep 26 '22 14:09 AyakaTakashima

タイトルは日報と同じく必須でいいのか、回答期限も必須にしようと思いますがこれで良いのか、が気になっています。

どちらも必須でOKですー👍 DB設計は komagata さんに見てもらおうと思いますー

@komagata こちら確認お願いします🙏

machida avatar Sep 27 '22 08:09 machida

@machida machidaさん、お返事ありがとうございます!!

@komagata komagataさん、ご確認よろしくお願いいたします🙇‍♀️

AyakaTakashima avatar Sep 27 '22 10:09 AyakaTakashima

@machida かしこまりました。

@AyakaTakashima

creator_id

複数ある場合以外はそのままの名前のuser_idでいいと思います。

更新者 (CC: @machida)

作成者とは別に更新者が必要な感じでしょうか?更新者は複数いると言うことになるので、ちゃんとやるには複雑になりそうです。(個人的には作成者があれば更新者はいらないのではないかと思います)

reply_deadline

railsでは日付はxxxx_on、日時はxxxx_atという命名規約があるので、できればそれに従う形の名前にできるといいなと思います。

komagata avatar Sep 29 '22 18:09 komagata

@komagata ご確認ありがとうございます! 本issueのdescriptionにアンケートが持つデータとして更新者と作成者の項目がありましたので追加しておりました! しかし念の為machidaさんにお伺いしようと思います。

また、理解が及ばず申し訳ないのですが、

複数ある場合以外はそのままの名前のuser_idでいいと思います。

というのは何が複数ある場合でしょうか?🧐

@machida machidaさん、上記の更新者に関してご回答いただけますと幸いです🙇‍♀️

AyakaTakashima avatar Sep 30 '22 10:09 AyakaTakashima

@AyakaTakashima すみません、このDB設計自体は @AyakaTakashima さんが作ったものではなく、既にあるものをER図に起こしただけなんですね。

DB設計に対するコメントは同じものを @daiki0381 さんの方にさせていただき、別のPRで議論を続けていきたいと思います。

というのは何が複数ある場合でしょうか?🧐

すみません、わかりずらい書き方でしたね。

userテーブルと関連するものが一つしかないのであればuser_idという名前が一般的なのでcreator_idではなく、user_idがいいのではないかという意味です。

komagata avatar Oct 02 '22 16:10 komagata

@komagata

このDB設計自体は @AyakaTakashima さんが作ったものではなく、既にあるものをER図に起こしただけなんですね。

いえ、下記の設計図は私が作成したものです! image

daiki0381 さんが担当しているissueと私が担当しているissueは兄弟関係にありますが、全く別のissueです。 machidaさんがdescriptionに書いて下さっている通りなのですが、daiki0381 さんがsurvey_questions(アンケートでどの質問をするか)を作っていて、私がsurveys(その質問がまとまったもの=つまりアンケート)を作成します。

ここでは、私が作成するsurveysについてお伺いしております。

本issueのdescriptionにアンケートが持つデータとして更新者と作成者の項目がありましたので追加しておりました!

こちらの文章の意味は、「本issue(= #4586 )のdescriptionで、machidaさんが更新者と作成者の項目をアンケートのデータとして定めている」という意味でした。 ただ、daiki0381 さんが作成したPR(= #5370 )を確認したら、creater_idupdater_idがDBのカラムに入っていたので揃えた方がいいかなと思ったのは事実です。

#5370 を拝見したところ、machidaさんに確認して下さっているのでこのままお返事を待とうと思います!

ただ、daiki0381さんが作成したものを私が作成したというのは間違えで、このPRで私が作成しようと思っているものをER図に起こしたと認識していただけますと幸いです。 今一度、ご確認よろしくお願いいたします🙇‍♀️

userテーブルと関連するものが一つしかないのであればuser_idという名前が一般的なのでcreator_idではなく、user_idがいいのではないかという意味です。

なるほど!user_idcreator_idupdater_idの両方で参照するER図を作成していたので、その前提で文章を読んでしまっていました。 確かにmachidaさんの要件定義にある「更新者」が不要となれば、updater_idは不要になり、user_idと名付けて良くな理ますね! このままお返事を待ってようと思います😌

AyakaTakashima avatar Oct 03 '22 13:10 AyakaTakashima

@AyakaTakashima

ただ、daiki0381さんが作成したものを私が作成したというのは間違えで、このPRで私が作成しようと思っているものをER図に起こしたと認識していただけますと幸いです。

なるほどです。認識しました。

komagata avatar Oct 04 '22 12:10 komagata

@komagata #5370 の回答を拝見いたしました。 更新者のデータは不要ということで理解しました。

ER図の書き直しをいたしましたので、再度ご確認をお願いしたいです。 image

よろしくお願いいたします🙇‍♀️

AyakaTakashima avatar Oct 17 '22 10:10 AyakaTakashima

@AyakaTakashima surveryが複数のsurvey_questionをもつのだとしたら、surveryのsurvey_question_idだと複数のものを表現できないかもです〜。

komagata avatar Oct 21 '22 15:10 komagata

@komagata 修正してみました!ご確認よろしくお願いいたします🙇‍♀️ image

AyakaTakashima avatar Oct 23 '22 05:10 AyakaTakashima

@AyakaTakashima これだとsurvey_questionは一つのsurveyにしか所属できないように思います〜

komagata avatar Oct 23 '22 18:10 komagata

@komagata 度々申し訳ありません! 自分で第二正規化から考えてみました。 こちらの日報に考えた手順を書きました。 下記のように修正いたしましたので再度ご確認をよろしくお願いいたします。 image

AyakaTakashima avatar Oct 24 '22 12:10 AyakaTakashima

@AyakaTakashima 中間テーブルになった部分はOKです〜。

ただ、reply_deadline_atcreated_atpublished_atのように動詞じゃないと_atが英語的に成り立たないので、名前を検討してみていただきたいです〜

komagata avatar Oct 24 '22 14:10 komagata

@komagata ありがとうございます! deadline_survey_is_replied_atと考えて、deadline_replied_atでいかがでしょうか?

AyakaTakashima avatar Oct 24 '22 14:10 AyakaTakashima

@AyakaTakashima 冗長な表現は避けたいので直訳を避けてexpires_atなどはいかがでしょうか。

komagata avatar Oct 24 '22 21:10 komagata

@komagata なるほど!expires_at にします。ありがとうございます!

AyakaTakashima avatar Oct 24 '22 23:10 AyakaTakashima

テーブル構造は下記で決定 image

AyakaTakashima avatar Oct 25 '22 11:10 AyakaTakashima

@machida お疲れ様です!surveys の indexについて確認したいことがあります! image

上記ページの、下記の部分で不明点があります。 image

下記についてご回答お願いいたします🙇‍♀️ image

AyakaTakashima avatar Oct 27 '22 13:10 AyakaTakashima