100人規模デモデータ仕様
- 更新日: 2026年8月23日
- 外国籍想定家庭・照合用氏名データ: 実装済み
- 保護者登録状態サンプル: 計画(保護者登録申請モデルの実装後にseedへ反映)
概要
このデモデータは、定員100人規模の保育園を想定した架空データです。開発、画面確認、デモ、テストデータ設計のたたき台として利用できます。
クラス構成
| クラス | 人数 |
|---|---|
| ひよこ組(0歳児) | 6 |
| りす組(1歳児) | 12 |
| うさぎ組(2歳児) | 18 |
| ぱんだ組(3歳児) | 22 |
| きりん組(4歳児) | 22 |
| ぞう組(5歳児) | 20 |
| 合計 | 100 |
含まれるデータ
- 園児100人
- 家庭84世帯
- 保護者アカウント156件
- 外国籍想定家庭9世帯(全家庭の10.7%)
- 2026-04-13〜2026-05-15 の登降園・保護者日次連絡
- 欠席、病欠、私用欠席、連絡未提出のケース
- 登降園時刻、迎え予定者、予定降園時刻
- 延長保育料金ルール、日別自動計算、確認・調整済みサンプル
- 出欠確認と不整合アラート
- お知らせ配信、既読
- 職員、カレンダー、施設予定
- 健康情報、アレルギー、健診記録
- 園児情報変更申請
- 保護者アンケート
ファイル構成
demo_data/import_compatible/: 既存のインポート機能に合わせたCSVdemo_data/full/: 各モデルに近い列名の詳細CSVscripts/seed_demo_100.py: 詳細CSVをSQLite DBへ投入するスクリプトscripts/materialize_demo_identity_scenarios.py: 固定9家庭の氏名シナリオをCSVへ再反映する保守スクリプトdemo_data/summary.json: 件数と生成条件
使い方
python -m scripts.seed_demo_100 --wipe-all
uvicorn main:app --reload
--wipe-all は対応テーブルの既存データを削除します。ローカルのデモDB以外では使わないでください。
既存インポート機能で読み込む場合
以下の順番で demo_data/import_compatible/ のCSVを読み込んでください。
classrooms.csvfamilies.csvchildren.csvparent_accounts.csvparent_child_links.csv
この方法では、登降園・保護者連絡・健康情報などの詳細データは入りません。詳細データまで入れる場合は seed スクリプトを使います。
整合性の前提
- カレンダー予定は、実行月の前後2か月(合計5か月)に月6件ずつ動的生成します。
- 登降園・出欠確認・アラートは、実行日の3か月前から当日までの平日と、曜日にかかわらず実行当日に動的生成します。
- 保護者からの日次連絡も同じ期間に生成し、出席・病欠・私用欠席を出欠確認と一致させます。未提出状態の確認用に、一部は意図的に生成しません。
- 登園、病欠、私用欠席、未確認を一定割合で混ぜています。同じ園児・日付では同じ擬似ランダム結果になり、再実行しても重複しません。
- 園児名と保護者アカウント名の同姓同名は、それぞれ最大2組・各2人までです。seed 時にもこの上限を検証します。
- 延長保育料金ルールと日別料金は、seed スクリプトが登降園記録から生成します。
import_compatible/のCSVは、既存インポート画面で新規登録する想定のため、ID列を空欄にしています。full/のcreated_byやreviewed_byには、ユーザーIDではなく画面表示用の担当者名を入れている列があります。
外国籍想定家庭と氏名表記
保護者メール招待と氏名照合の確認用に、84家庭のうち9家庭(10.7%)を外国籍想定シナリオとする。この割合は園児数ではなく家庭数を分母にする。
ここでいう「外国籍想定」は架空データのシナリオ分類であり、認可や認証に使うnationality項目は追加しない。次の条件で対象家庭を判定する。
- 家庭内の保護者または園児に
registration_verification_name_type=latinが1件以上あれば対象家庭と数える。 - 対象9家庭は固定し、seed実行のたびにランダムで入れ替えない。
- 原則として対象家庭の保護者・園児には英字の照合用氏名を設定する。
- 9家庭のうち少なくとも2家庭は、日本人・外国人の保護者がいる想定のカナ/英字混在家庭とする。
- 9家庭のうち少なくとも2家庭は兄弟姉妹が在園する家庭とし、同じ家庭でも
ParentChildLinkを明示的に作る。 - 正式表示名と照合用氏名を分離し、外字に依存する漢字を照合用データへ入れない。
- 英字氏名には、複数語、ハイフン、アポストロフィ、大文字・小文字、アクセント付きラテン文字の確認例を偏りなく含める。
- メールアドレス、電話番号、住所、勤務先を含め、すべて架空とする。メールは予約済みの例示用ドメインを使い、実在宛先へ配送しない。
- 人物像を病気、欠席、支払い遅延等の否定的シナリオへ偏らせない。
demo_data/full/children.csv、parent_accounts.csvおよびインポート互換CSVに照合用氏名・表記種別を実装済みである。通常は同梱CSVをそのまま使用し、固定シナリオ定義を変更した場合だけ次を実行してCSVを再生成する。
python scripts/materialize_demo_identity_scenarios.py
正式氏名・カナ氏名の列構成は維持し、対象の9家庭は架空の英字氏名へ置換する。インポート機能は新しい2列を読み書きでき、2列のない従来CSVも引き続き受け付ける。
保護者登録状態のサンプル
次の状態配分は保護者登録申請モデル実装後の計画である。生のtoken、平文パスワード、実際に配送可能なメールはseedへ含めない。
| 状態 | 最低家庭数 | 用途 |
|---|---|---|
| 未招待 | 1 | 招待送信画面 |
| 招待済み | 1 | 招待期限・再送画面 |
| 園確認待ち・全項目一致 | 2 | 承認操作 |
| 園確認待ち・不一致あり | 1 | 承認不可・再招待 |
| 承認済み・設定待ち | 1 | パスワード設定待ち |
| 登録完了 | 2 | 英字氏名での通常ログイン・ポータル表示 |
| 期限切れまたは却下 | 1 | 再送・監査画面 |
seed受入条件
- 家庭総数84、外国籍想定家庭9を検証し、件数がずれた場合はseedを失敗させる。
registration_verification_name_typeがkanaまたはlatin以外なら失敗させる。latin対象者の照合用氏名が空、または漢字だけの場合は失敗させる。- 招待対象保護者と、紐付く園児1名以上に照合用氏名がなければ失敗させる。
demo_data/summary.jsonへ対象家庭数、割合、カナ/英字人数、混在家庭数、兄弟家庭数、登録状態別件数を出力する。- モック版・テスト版・デモ版で同じ固定データを使い、β版へ投入する場合はβ専用DBへ明示的にseedする。既存βデータを起動時に自動上書きしない。
注意
このデータは実在情報ではありません。ただし、本番に近い画面確認ができるよう、家庭、勤務先、体調、欠席、アレルギーなどを含めています。外部公開デモで利用する場合も、表示内容が誤解を招かないよう「ダミーデータ」と明記してください。