# PRO 応用知識学習フェーズ 設計書変更・修正 ## 詳細設計穴埋め化 <details> <summary>大方処理済みなので展開式</summary> <div> ### 資料等 - [Repsona](https://infratop-ls-productmentor.repsona.com/project/xkNL/task/Ad8Z9) - [解説(現行版)](https://infratop.docbase.io/posts/1369367) - [:green_book: **テストシート**](https://drive.google.com/file/d/1Djr8mhpLkB84zFnJ-il3QAboCalKKmdd/view?usp=sharing) ### 要点=穴開けるポイント #### 会員側 - cart_items#destroy, destroy_all - ~~退会確認画面・退会処理~~ end_users全部(一部アクション名与え) - 注文確認画面・注文作成処理 - addresses全部 - resourcesのルーティングの復習①: namespaceなし #### 管理者 - items全部 - resourcesのルーティングの復習②: namespaceあり - ~~注文ステータス・製作ステータス~~ orders, order_details全部 - 注意書きで「コントローラは1種類、あるいは2種類」と記載した ### 他調整ポイント #### 未 - public/end_users#editのルーティングがregistrations#editと被っている - updateも被っているような - 模範解答内に「記載順に気を付けるよう」注意書きを記載 - パスワード変更のルーティングがない - → ぶっちゃけ要件外なので、ワイヤー・UI Flowから消してしまった方が良いと思う - 10/27 UI Flowから削除はdone </div> </details> <br> --- ## ワイヤーフレーム調整 ### 資料等 - [要件定義書](https://s3-ap-northeast-1.amazonaws.com/wals/uploads/1147/rdd.pdf) - [機能一覧](https://s3-ap-northeast-1.amazonaws.com/wals/uploads/1147/functions_list.pdf) - UI Flow [admin](https://s3-ap-northeast-1.amazonaws.com/wals/uploads/1138/uiflows_admin.png) / [ec](https://s3-ap-northeast-1.amazonaws.com/wals/uploads/1138/uiflows_ec.png) - ワイヤーフレーム(プレビュー) [admin](https://app.diagrams.net/?lightbox=1&highlight=0000ff&edit=_blank&layers=1&nav=1#G1uzpYG3k1FW2QdHtawqfTngSZJ3C-izx5) / [ec](https://app.diagrams.net/?lightbox=1&highlight=0000ff&edit=_blank&layers=1&nav=1#G1SfREyklN1xCc4K3vId2e7DaXRtyu8rZR) - [資料まとめ](https://docbase.io/posts/982233/sharing/ef6cf9b0-07d5-41d2-ba78-3ee12805d1cb)(※完全にブラックボックス。私の方では一切中身確認できず) #### 修正版 - 元ファイル [admin-fixed](https://drive.google.com/file/d/1oU74f9ekeTzDBdHvFtPrvlPgTF5J-lrm/view?usp=sharing) / [ec-fixed](https://drive.google.com/file/d/1y6kdJv0hHsOrGaz32A04BkN8cildTnB0/view?usp=sharing) - PDF化する場合、現状○○一覧画面がサイズオーバーして2ページになってしまっています - あとなぜか中国語化するんですが...(diagramsのページ自体が中国語判定受けています) - プレビュー [admin-fixed](https://viewer.diagrams.net/?highlight=0000ff&edit=_blank&layers=1&nav=1#G1oU74f9ekeTzDBdHvFtPrvlPgTF5J-lrm) / [ec-fixed](https://viewer.diagrams.net/?highlight=0000ff&edit=_blank&layers=1&nav=1#G1y6kdJv0hHsOrGaz32A04BkN8cildTnB0) ### 要検討 <span style="color: red;">**10/25 追加**</span> #### (1) 管理者トップページにおける「本日の注文数」、およびこれをクリックした際に本日分の注文履歴のみを表示する機能 - <span style="color: #e80;">**前提として、要件定義書に記載がない。**</span> - スキルアップ研修ではスルーしている - 細かい話をすると、DBではUSTだがサイトではJSTの方がいいため、本日分ソートをする際はUST 9:00~翌8:59を絞り込む必要があり、割とだるい - なくても良いのではという佐野さんのご意見はごもっとも。 【対応】当ページは削除。代わりに管理者ログイン後は注文履歴一覧に飛ばす #### (2) 会員側において、`無効`のジャンルに紐づく商品を非表示にする機能 - これは要件定義書に記載あり。 - スキルアップ研修ではスルーしている - これ自体はあっても良いと思うが、(3)に響く(らしい) - find_by, whereを使用して実装する場合は、結構コスト高い - テスト仕様書にはなかったため、スルーされていた可能性あり 【対応】ジャンルの有効/無効を削除。代わりに商品の販売ステータスで判定する #### (3) 会員側トップページにおけるオススメ商品機能 - <span style="color: #e80;">**前提として、要件定義書に記載がない。**</span> - スキルアップ研修ではスルーしている - そのため、実装する際はどういう指標でオススメにするかは実装側に委ねられている。 - 売り上げ順 - 新着順 - ランダム - etc - その際、(2)の条件も満たしつつ、オススメを表示するのが結構手間とのこと。 - 本田個人としては`Item.where_genre_active`みたいなスコープ作っておけば後々役に...というか、だったら(2)ってどう実装しているんだろう... - スコープ作るのは3ヶ月目相当と言われればそのような気もします ```ruby= # コード例 scope :where_genre_active, -> { joins(:genre).where(genres: { is_active: true }) } ``` 【対応】新着商品に変更し、要件定義書にも追記 ### 調整ポイント #### 共通 - レイアウト位置や色の調整 - 新規登録画面など、最初はテキストボックスに値が入らない画面についてはplaceholderっぽい調整をしました - ページネーション表記の修正 <span style="color: red;">**10/25 追加**</span> #### 会員側 - ながのCAKEの表記揺れ: 要件定義書(ながのCAKE)に統一 - マイページのパスワード変更リンクを削除 - 商品詳細画面で「個数選択」のプルダウンがあるが、制限が明示されていない <span style="background-color: #ff0;">**(対応未)**</span> - 【A案】「※1~10の範囲で選択できます。」として、要件定義書にも書く - 【B案】カート画面のように、テキストボックスにする - 【C案】カート画面をプルダウンに変更 ← 10/27現在これ。+ A案で解決しそう #### 管理者側 - 退会ステータスの表記揺れ: `有効` / `退会` に統一 - ジャンル名に`プリン・ゼリー`があったが`プリン`に変更 - 商品新規登録画面・編集画面における、画像プレビュー枠を削除。およびそれに伴いレイアウト調整 <span style="color: red;">**10/25 追加**</span> - ※元から「要件外」と明記はしていたが、だったら最初からなくせばいいのではと思った次第。 - 注文履歴一覧画面に、遷移元によって内容を変える旨の注意書きを追記 - 〃で、`発送済`となっていたが正しくは`発送済み`なので修正 - 注文履歴詳細画面で「注文日」の項目がなかったため追加 - フッター枠がなかったため修正 <span style="background-color: #fc0;">**10/25 追加**</span> <br> ## 要件定義側で要修正 #### 通販について - 消費税について明記。(追加) - プラスで、カラムとしては不要であることを明記しても良いかもしれません。 ``` ・消費税は一律10%とする。 ``` #### 用語の定義 - 「注文ステータス」「会員ステータス」はできれば変えたいような... - 会員の「会員ステータス」(@customer.customer_status)、注文の「注文ステータス」(@order.order_status)になってしまう、及びそのためレビュー時の指摘事項になっているが、よくよく見れば要件定義で使っているからいいのでは?となる - 現状の正答例としては「退会ステータス」「受注ステータス」か。 - **変更なしの場合は、レビュー基準を修正する必要あり。** - `管理サイト`のところを始め、よく読むと管理者は"店主/スタッフ/パティシエ"の複数人運用なのでは...?と読めるのですがどうでしょうか - `ジャンル`のところの説明文の変更。 ``` 商品の種類。 現状、ケーキ、プリン、焼き菓⼦、キャンディの4ジャンルある。 ``` ↓ ``` 商品の種類。 管理者が追加・編集できる。 ``` #### 会員側実装機能 - 「ユーザ」はNG。会員に変更する。 ``` ・会員がログインしている状態かどうか、ページのヘッダーにユーザ名を表⽰するなどして判断できるようにすること ~ 中略 ~ ・会員登録時、下記の情報をユーザ情報として⼊⼒できること ``` ↓ ``` ・会員がログインしている状態かどうか、ページのヘッダーに会員名を表⽰するなどして判断できるようにすること ~ 中略 ~ ・会員登録時、下記の情報を会員情報として⼊⼒できること ``` - 以下の修正(`カートを空にする`相当の文言を追加) ``` ・商品をカートに⼊れ、1度に複数種類、複数商品の購⼊ができること。また、カート内の商品は個数変更・削除ができること ``` ↓ ``` ・商品をカートに⼊れ、1度に複数種類、複数商品の購⼊ができること。また、カート内の商品は個数変更・削除、および一括削除ができること ``` - 以下の修正(ユーザ → 会員、および後半はリンクのことなので語弊がないように修正) ``` ・会員はマイページからユーザ情報の閲覧・編集、注⽂履歴の閲覧、配送先の閲覧・編集ができること ``` ↓ ``` ・会員はマイページから会員情報の閲覧ができ、会員情報編集画面、注⽂履歴一覧画面、配送先一覧画面へのリンクを持つこと ``` - 追加 ``` ・カートの中身が空の状態では、注文情報入力画面に進めないこと。 ・退会した会員は、ログインが行えないこと。 ``` #### 店側実装機能 - 「ユーザ」はNG。 ``` ・会員登録されているユーザ情報の閲覧、編集、退会処理が⾏えること ・ユーザの注⽂履歴が⼀覧・詳細表⽰できること ``` ↓ ``` ・会員登録されている会員情報の閲覧、編集、退会処理が⾏えること ・会員の注⽂履歴が⼀覧・詳細表⽰できること ``` - 以下文章の変更。 ``` ・商品の新規追加、編集、販売停⽌(売切表⽰)が⾏えること ``` ↓ ``` ・商品の新規追加、編集が⾏えること ``` - <span style="color: red;">**以下削除**</span> ``` 商品ジャンルには「有効」「無効」を設定できること。無効に設定したジャンルは、ジャンル⼀覧に表⽰されないこと。 また、無効になっているジャンルに紐付く商品は表⽰されないこと。 ``` - ヘッダ → ヘッダー ``` ・ヘッダには検索窓を配置するが、... ~ 以下略 ~ ``` ↓ ``` ・ヘッダーには検索窓を配置するが、... ~ 以下略 ~ ``` <br> ## UI Flow側で要修正 10/27 一旦修正。修正箇所はざっくり以下(展開)。 <details> <summary>共通</summary> <div> - 矢印の色を#080に - 配送先新規登録、カート内商品削除など、同一ページへの遷移について矢印がなかったので`↩`を追加 - ページ名部分の背景色を#eeeに </div> </details> <details> <summary>admin</summary> <div> - ヘッダ → ヘッダー - ログインユーザ名 → <span style="color: red;">**削除**</span> - トップページ → <span style="color: red;">**削除**</span> - トップページ削除の代わりに、ログイン⇒注文履歴一覧の矢印を追加 <span style="background-color: #ff0;">(追加)</span> - ジャンル一覧 - 無効・有効ラベル → <span style="color: red;">**削除**</span> - 注文履歴一覧 - (トップページから遷移)~の行 → <span style="color: red;">**削除**</span> - 注文履歴詳細 - 入金情報確認 → <span style="color: red;">**削除**</span> - 製作ステータス変更ドロップダウン <span style="background-color: #ff0;">(追加)</span> </div> </details> <details> <summary>ec</summary> <div> - ヘッダ → ヘッダー - ロゴクリック、トップページへのリンククリック → ロゴクリック - 新規登録ページへのリンクをクリック <span style="background-color: #ff0;">(追加)</span> - トップページ - 商品一覧 → 新着商品一覧(4件) - マイページ - パスワード変更ボタンクリック → <span style="color: red;">**削除**</span> - 登録情報変更 → 会員情報編集 - Deviseパスワード再設定画面 → <span style="color: red;">**削除**</span> - 商品詳細 - カートに追加する → カートに追加するボタンをクリック - カート - 請求合計金額 → 商品小計 - 再計算ボタン → 個数の変更ボタン - 購入情報入力画面 → 注文情報入力画面 - 購入確認ボタンクリック → 確認画面へ進むボタンをクリック - 購入情報確認画面 → 注文情報確認画面 - 購入確定ボタンクリック → 注文を確定するボタンをクリック - サンクスページ → 注文完了画面 - 購入のお礼 → 注文のお礼の文章 - 注文履歴一覧 - 過去の購入履歴 → 過去の注文履歴 - 注文Noクリック → 詳細リンククリック - 購入履歴詳細 → 注文履歴詳細 - 購入情報詳細 → 注文情報詳細 - 配送先一覧 - 新規配送先入力欄 <span style="background-color: #ff0;">(追加)</span> - 配送先編集 - 保存ボタンクリック → 変更内容保存ボタンクリック </div> </details> ## 機能一覧で要修正 <span style="background-color: #fc0;">10/27 追加</span> 存在忘れていました 全体を通してですが、粒度が曖昧なような... 片やカートのように一覧・追加・編集を分けているところもあれば、 片や配送先のように追加・編集が合体して1項目になっているところもある状態です。 ### 顧客 #### (3) 「・検索結果を~」は顧客側の機能ではない。 ジャンル検索のことであれば、「・ジャンル検索時には、該当ジャンルに紐づく商品のみ一覧表示する」が妥当。 #### (12) 2行目に黒丸だけありますが消し忘れでしょうか... ### 管理者 #### (5) 顧客→会員(タイトルも説明文も) ※用語として、顧客がサイトを利用する管理者でないユーザで、会員はその中で会員登録した者を指すはずです。 #### (6) (5)と同文。 プラスで、2行目は編集画面の機能なので削除お願いします。 #### (6)と(7)の間 会員情報編集機能がないです。 #### (10) 説明文を以下のように変更(※ほぼ配送先のコピペ) ``` ・登録しているジャンルを一覧で確認することができる。 ・ジャンルの新規追加・修正をすることができる ``` ## その他 ・渡しているサンプルコードっていつぞやの本田作だと思うんですが、 今回の要件調整を受けてこちらも修正しないと辻褄合わなくなると思います。 ・[詳細設計](https://web-camp.online/lesson/published_contents/1741/edit)の最後の画像ですが、 今回の修正で該当ページのレイアウト変更が発生したので作り直しました。以下になります。 元ファイルは手元にあるので、こちらで良ければS3更新します。 ![](https://i.imgur.com/MAalw6C.png)