プロジェクト: guideline-quiz | 作成日: 2026-03-15
| 機能 | 状態 | 備考 |
|---|---|---|
| スタート画面(氏名・職種入力) | 完了 | app/page.tsx |
| クイズ画面(1問ずつ表示) | 完了 | 職種別問題セット対応済み |
| 結果・解説確認画面 | 完了 | 全選択肢+間違い理由の表示に改善済み |
| 管理者ダッシュボード | 完了 | CSVエクスポート対応 |
| 回答送信API | 完了 | SQLite保存 |
| 解説確認API | 完了 | confirmed_at更新 |
| 未確認アラートAPI | 完了 | 10分タイムアウト+離脱検知 |
| メール送信(nodemailer) | 完了 | SMTP設定が必要 |
| 職種別問題データ | 完了 | リハ職/医師看護師/事務の3カテゴリ |
.env.local 設定 | 手動 | 下記参照 |
| 本番デプロイ | 未着手 | Vercelまたは院内サーバー |
.env.local の作成(必須・最優先)プロジェクトルートの env.local.example をコピーして設定してください。
設定項目:
| 変数 | 設定内容 |
|---|---|
SMTP_HOST | smtp.gmail.com |
SMTP_PORT | 587 |
SMTP_USER | 送信元Gmailアドレス |
SMTP_PASS | Gmailアプリパスワード(16文字) |
ADMIN_EMAIL | アラート送信先メールアドレス |
ADMIN_KEY | 管理画面アクセス用の秘密キー(任意の文字列) |
http://localhost:3000http://localhost:3000/admin?key=設定したADMIN_KEY確認ポイント:
lib/questions.ts を編集id の重複に注意共通3問 + 職種別2問 = 計5問
臨床職 = リハ職(PT/OT/ST)+ 医師 | 窓口職 = 事務 + 看護師
| 問題 | 共通 | 臨床職 (リハ+医師) | 窓口職 (事務+看護師) |
|---|---|---|---|
| Q1: 院内ID = 個人情報? | ✓ | ✓ | ✓ |
| Q2: インシデント発見時の初動 | ✓ | ✓ | ✓ |
| Q3: 全体連絡メールの匿名化レベル | ✓ | ✓ | ✓ |
| Q4: 私物PCでの業務データ取扱い | ✓ | ||
| Q4: FAX誤送信防止の正しい手順 | ✓ | ||
| Q5: データ分析でのAI利用ルール | ✓ | ||
| Q5: 患者家族からの電話問合せ対応 | ✓ |
guideline-quiz/ ├── app/ │ ├── page.tsx # スタート画面 │ ├── quiz/page.tsx # クイズ画面(職種別問題対応) │ ├── result/page.tsx # 結果画面(全選択肢+間違い理由表示) │ ├── admin/page.tsx # 管理者ダッシュボード │ ├── layout.tsx │ ├── globals.css │ └── api/ │ ├── submit/route.ts # 回答送信 │ ├── confirm/route.ts # 解説確認 │ ├── alert/route.ts # アラート送信 │ └── results/route.ts # 結果一覧(管理者用) ├── lib/ │ ├── db.ts # SQLite │ ├── questions.ts # 問題データ(職種別) │ └── mailer.ts # メール送信 ├── env.local.example # 環境変数テンプレート ├── quiz.db # DBファイル(自動生成) └── README.md
ADMIN_KEY は推測困難な文字列を設定することquiz.db は定期的にバックアップを取ること