|
| 1 | +# pencil.dev プロンプト:スタッフ提出画面 |
| 2 | + |
| 3 | +## 背景・要件 |
| 4 | + |
| 5 | +### この画面について |
| 6 | +YPSのMVP 3ページ構成の最後の1ページ。管理者(店長)が作成した「シフト募集」に対して、スタッフがシフト希望を提出する画面。 |
| 7 | + |
| 8 | +### ユーザー |
| 9 | +- 学生バイト、パート主婦、フリーター |
| 10 | +- **ほぼ確実にスマホ**から操作(PCは想定しない) |
| 11 | +- YPSにアカウントは持っていない。メールのマジックリンクからアクセス |
| 12 | +- 面倒だと出さない → 店長がLINEで催促 → YPSの価値が崩壊する |
| 13 | +- **この画面の体験がYPS全体の成否を決める** |
| 14 | + |
| 15 | +### アクセス方法 |
| 16 | +店長がシフト募集を作成 → スタッフにメール送信(マジックリンク付き) → スタッフがリンクをタップ → この画面に到達 |
| 17 | + |
| 18 | +### マジックリンク有効期限 |
| 19 | +提出締切日まで有効。締切後はアクセスしても提出・修正不可。 |
| 20 | + |
| 21 | +### 画面の4状態 |
| 22 | +スタッフが同じリンクを開いたとき、状態によって表示が変わる: |
| 23 | +- **A. 未提出+締切前** → 全日休みデフォルト、入力して提出 |
| 24 | +- **B. 提出済み+締切前** → 前回の回答がプリフィル済み、修正して再提出可能 |
| 25 | +- **C. 提出済み+締切後** → 前回の回答を表示、編集不可(閲覧のみ) |
| 26 | +- **D. 未提出+締切後** → 締切超過メッセージ、操作不可 |
| 27 | + |
| 28 | +### 提出後に修正できる理由 |
| 29 | +修正不可だと「すみません水曜やっぱ無理です」→ LINEで店長に連絡 → 店長が手修正、となりExcel時代と変わらない。スタッフ自身で修正できることで店長の負担を減らす。 |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +## 入力仕様 |
| 34 | + |
| 35 | +### 入力内容 |
| 36 | +各日に対して: |
| 37 | +- **出勤OK** → 開始時間・終了時間(30分単位、selectで選択) |
| 38 | +- **出られない** → 休み |
| 39 | + |
| 40 | +### デフォルト |
| 41 | +- **全日「休み」がデフォルト** |
| 42 | +- 理由①: 出し忘れたスタッフが「全日出勤OK」扱いになる事故を防ぐ |
| 43 | +- 理由②: 未提出=いないものとして扱える安全設計 |
| 44 | + |
| 45 | +### 時間の初期値 |
| 46 | +出勤ONにしたとき、開始・終了時間はその店舗のシフト時間帯(例: 9:00〜22:00)がデフォルトで入る。大半のスタッフはデフォのまま or 微調整だけで済む。 |
| 47 | + |
| 48 | +### 全休み提出 |
| 49 | +全日休みでも提出可能。「今週全部出られません」も立派な回答。田中さんにとって未提出と全休みは意味が違う。 |
| 50 | + |
| 51 | +### 対応期間 |
| 52 | +募集期間は管理者が任意に設定するため、7日〜31日の可変。 |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +## インタラクション設計 |
| 57 | + |
| 58 | +### カードUI |
| 59 | +- 日数分のカードが縦に並ぶ |
| 60 | +- 1カード = 1行固定高(休みでも出勤でも同じ高さ) |
| 61 | +- **レイアウトシフト(カード位置のガタつき)を絶対に起こさない** |
| 62 | + |
| 63 | +### 出勤ON操作 |
| 64 | +- 休みカードをタップ → 出勤ONになり、同じ行内にselectボックス(開始・終了)が出る |
| 65 | +- 1タップで完了。BottomSheetやモーダルは不要(selectボックスなのでキーボードも不要) |
| 66 | + |
| 67 | +### 出勤→休みに戻す操作 |
| 68 | +- 日付タップでは休みに戻らない(**一方通行**) |
| 69 | +- カード右端の×ボタンをタップすることでのみ休みに戻る |
| 70 | +- 理由: 誤タップで入力した時間が消える事故を防ぐ(破壊的操作には摩擦を入れる) |
| 71 | + |
| 72 | +### 提出完了 |
| 73 | +- 提出ボタンタップ → 完了画面(チェックマークアイコン + 提出内容サマリー) |
| 74 | +- 「内容を修正する」ボタンで入力画面に戻れる |
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +## 画面パターン(4 + 1 = 5画面) |
| 79 | + |
| 80 | +### 画面1:未提出+締切前(状態A) |
| 81 | + |
| 82 | +スマホレイアウト(幅375px程度)。 |
| 83 | + |
| 84 | +**ヘッダー** |
| 85 | +- 1行目(小さめ): 店舗名「居酒屋さくら」 |
| 86 | +- 2行目(大きめ): 「シフト希望を提出」 |
| 87 | + |
| 88 | +**期間情報エリア** |
| 89 | +- 左: 募集期間「4/7 (月) 〜 4/13 (日)」+ 提出締切「提出締切: 4/4 (金)」 |
| 90 | +- 右: ステータスバッジ「未提出」(warning系の色) |
| 91 | + |
| 92 | +**カード一覧(7日分)** |
| 93 | +- 全カードが「休み」状態 |
| 94 | +- 各カード: 左に日付+曜日、右に「休み」バッジ(グレー系) |
| 95 | +- 土曜はblue系テキスト、日曜はred系テキスト |
| 96 | +- **1枚だけ出勤ON状態にして、selectボックスと×ボタンが見える状態で描画**(操作後のイメージが分かるように) |
| 97 | + |
| 98 | +**提出ボタン** |
| 99 | +- 「提出する」プライマリボタン(teal系) |
| 100 | +- ボタン下に補助テキスト「出勤する日をタップしてください」 |
| 101 | + |
| 102 | +### 画面2:提出済み+締切前(状態B) |
| 103 | + |
| 104 | +画面1をベースに以下を変更: |
| 105 | + |
| 106 | +- ステータスバッジ: 「提出済み」(success系の色) |
| 107 | +- カード一覧: 前回の提出内容がプリフィルされた状態(例: 3日分が出勤ON、4日分が休み) |
| 108 | +- 提出ボタン: 「修正して提出する」(teal系) |
| 109 | +- ボタン下の補助テキスト: なし or 「変更したい日をタップしてください」 |
| 110 | + |
| 111 | +### 画面3:提出済み+締切後(状態C) |
| 112 | + |
| 113 | +画面2をベースに以下を変更: |
| 114 | + |
| 115 | +- ステータスバッジ: 「提出済み」(success系) |
| 116 | +- カード一覧: 前回の提出内容を表示、**selectなし、×ボタンなし、タップ不可** |
| 117 | + - 出勤日: 日付 + 時間テキスト(例「9:00 〜 18:00」teal系テキスト) |
| 118 | + - 休み日: 日付 + 「休み」バッジ |
| 119 | +- 提出ボタン: なし |
| 120 | +- 代わりに上部にインフォメッセージ「提出締切を過ぎたため変更できません」(info系の色) |
| 121 | + |
| 122 | +### 画面4:未提出+締切後(状態D) |
| 123 | + |
| 124 | +最もシンプルな画面。 |
| 125 | + |
| 126 | +**ヘッダー**: 画面1と同じ |
| 127 | + |
| 128 | +**コンテンツ** |
| 129 | +- 中央にアイコン(時計やカレンダーなど) |
| 130 | +- メッセージ「提出締切を過ぎています」 |
| 131 | +- サブテキスト「シフトの希望がある場合は、お店に直接ご連絡ください。」 |
| 132 | +- カードなし、ボタンなし |
| 133 | + |
| 134 | +### 画面5:提出完了画面 |
| 135 | + |
| 136 | +提出ボタンを押した直後の画面。 |
| 137 | + |
| 138 | +**ヘッダー**: 画面1と同じ |
| 139 | + |
| 140 | +**コンテンツ(中央寄せ)** |
| 141 | +- チェックマークアイコン(teal系の丸背景 + 白チェック) |
| 142 | +- 「提出しました」テキスト(大きめ) |
| 143 | +- 「シフトが確定したらメールでお知らせします」サブテキスト |
| 144 | + |
| 145 | +**提出内容サマリー(カード形式)** |
| 146 | +- 全日分の日付と時間 or 休みを一覧表示 |
| 147 | +- 出勤日は時間をteal系テキストで表示 |
| 148 | +- 休みはグレー系テキスト |
| 149 | + |
| 150 | +**ボタン** |
| 151 | +- 「内容を修正する」アウトラインボタン |
| 152 | + |
| 153 | +--- |
| 154 | + |
| 155 | +## 共通指示 |
| 156 | +- カラー: プライマリ teal系、warning amber/yellow系、danger red系、info blue系 |
| 157 | +- フォント: 日本語対応 |
| 158 | +- **スマホレイアウトのみ(幅375px程度)**。PC版は不要 |
| 159 | +- 各画面をフレーム分けして並べる |
| 160 | +- カードの高さは状態によらず統一されていること(レイアウトシフト防止のため) |
0 commit comments