# 仕様について確認したいこと ## 仕様に関する確認 ### ペアの下限に抵触するので、参加者を削除できない? - 削除する参加者が2人組のペアに所属している場合は、「参加者を削除する前にペアを解散してください」的な感じで促す - 合併はしない。実際のアプリで考えると、勝手に合併するのは使い勝手が悪そう ### チームの合併処理は別処理に切り出した方が良いのでは? - あえて自動的にしたのは課題として複雑さを持たせたかったから? - 実際のアプリで考えると、勝手に合併されるのは使い勝手が悪そう - 参加者の削除やペアの変更などによって下限を割る場合、先にチームを解散するよう促すのはどうか? ### 以下の仕様を勝手に追加したので、良さそうなものがあれば追記してください - ペア名、チーム名は1文字限定 - 参加者の登録と同時に登録されている課題が全て割り当てられる - 同じチームに同じペア名は許容しない - 課題名は重複を許容しない - 課題を削除したら割り当てられている課題も削除される - 課題を追加したときは全ての参加者に自動的に割り当てる - 課題グループ名は重複を許容しない - メールアドレスの重複は許容しない ### ちょっとした改善要望 - 成果物の仕様にテストに関する記載があると嬉しいかも - 「テストの課題をクリアした君たちなら、言わなくてもテスト書くよね?」という暗黙の...? - ペアの仕様に記載ミス?別のペアに分割する必要がある、、、とか? > 上限は3名まで。4名以上のペアは存続できない(他のペアに合併する必要がある) ## 以下検討用 **** ## ペアの下限に抵触し、参加者を削除できない 下記のような状態でペアが存在していて、 Aさんを削除するケース ```json= { "pair-a": ["Aさん", "Bさん"] "pair-b": ["Cさん", "Dさん"] "pair-c": ["Eさん", "Fさん"] } ``` ### 問題点 pair-aの参加者が1人になってしまい、下限を割ってしまう。 ### 対応方法 1. エラーとする - 参加者が削除できなくなるため、いまいち 2. 残った1人をどこかの2人組のペアに追加する - 他に2人組のペアがなければ1人組のペアが残ってしまう - その場合は残った1人組は無所属状態にして良いか? - 一時的にペアAが1人なってしまう - ペアの更新ではなく、一旦ペアを削除することで回避可能 3. 先にペアを削除してもらうように促す - 実際のサービスならこれ ## プラハチャレンジ全体の参加者が1名になった場合の扱い ### 問題点 ペアには最低2名必要。 一度ペアに所属した場合、2名→1名に減らすことができない。 ### 対応方法 1. エラーとする - 参加者を削除できなくなるため、いまいち 2. 残った1人は強制的に無所属となる - これなら良さそう 3. 先にペアを削除してもらうように促す - 実際のサービスならこれ ### 参加者を削除する場合 イメージ ```typescript= if (!チームから1名脱退できますか?) { 他のチームと合併 (チームを削除、ペアを他のチームに入れる) } if (!ペアから1名脱退できますか?) { 他のペアと合併 (ペアを削除、参加者を他のペアに入れる) (2人組がなければどこかのトリオを分割) } 参加者を削除する ``` ### ペアのメンバーを減らす場合(参加者の削除と同じ) イメージ ```typescript= if (!チームから1名脱退できますか?) { 他のチームと合併 (チームを削除、ペアを他のチームに入れる) } if (!ペアから1名脱退できますか?) { 他のペアと合併 (ペアを削除、参加者を他のペアに入れる) (2人組がなければどこかのトリオを分割) } ペアから1人減らす ``` ### ペアを削除する場合 イメージ ```typescript= if (!チームからペアを脱退できますか?) { 他のチームと合併 (チームを削除、ペアを他のチームに入れる) } ペアを削除する ```