コンテンツにスキップ

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/: 既存のインポート機能に合わせたCSV
  • demo_data/full/: 各モデルに近い列名の詳細CSV
  • scripts/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を読み込んでください。

  1. classrooms.csv
  2. families.csv
  3. children.csv
  4. parent_accounts.csv
  5. parent_child_links.csv

この方法では、登降園・保護者連絡・健康情報などの詳細データは入りません。詳細データまで入れる場合は seed スクリプトを使います。

整合性の前提

  • カレンダー予定は、実行月の前後2か月(合計5か月)に月6件ずつ動的生成します。
  • 登降園・出欠確認・アラートは、実行日の3か月前から当日までの平日と、曜日にかかわらず実行当日に動的生成します。
  • 保護者からの日次連絡も同じ期間に生成し、出席・病欠・私用欠席を出欠確認と一致させます。未提出状態の確認用に、一部は意図的に生成しません。
  • 登園、病欠、私用欠席、未確認を一定割合で混ぜています。同じ園児・日付では同じ擬似ランダム結果になり、再実行しても重複しません。
  • 園児名と保護者アカウント名の同姓同名は、それぞれ最大2組・各2人までです。seed 時にもこの上限を検証します。
  • 延長保育料金ルールと日別料金は、seed スクリプトが登降園記録から生成します。
  • import_compatible/ のCSVは、既存インポート画面で新規登録する想定のため、ID列を空欄にしています。
  • full/created_byreviewed_by には、ユーザーIDではなく画面表示用の担当者名を入れている列があります。

外国籍想定家庭と氏名表記

保護者メール招待と氏名照合の確認用に、84家庭のうち9家庭(10.7%)を外国籍想定シナリオとする。この割合は園児数ではなく家庭数を分母にする。

ここでいう「外国籍想定」は架空データのシナリオ分類であり、認可や認証に使うnationality項目は追加しない。次の条件で対象家庭を判定する。

  • 家庭内の保護者または園児にregistration_verification_name_type=latinが1件以上あれば対象家庭と数える。
  • 対象9家庭は固定し、seed実行のたびにランダムで入れ替えない。
  • 原則として対象家庭の保護者・園児には英字の照合用氏名を設定する。
  • 9家庭のうち少なくとも2家庭は、日本人・外国人の保護者がいる想定のカナ/英字混在家庭とする。
  • 9家庭のうち少なくとも2家庭は兄弟姉妹が在園する家庭とし、同じ家庭でもParentChildLinkを明示的に作る。
  • 正式表示名と照合用氏名を分離し、外字に依存する漢字を照合用データへ入れない。
  • 英字氏名には、複数語、ハイフン、アポストロフィ、大文字・小文字、アクセント付きラテン文字の確認例を偏りなく含める。
  • メールアドレス、電話番号、住所、勤務先を含め、すべて架空とする。メールは予約済みの例示用ドメインを使い、実在宛先へ配送しない。
  • 人物像を病気、欠席、支払い遅延等の否定的シナリオへ偏らせない。

demo_data/full/children.csvparent_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_typekanaまたはlatin以外なら失敗させる。
  • latin対象者の照合用氏名が空、または漢字だけの場合は失敗させる。
  • 招待対象保護者と、紐付く園児1名以上に照合用氏名がなければ失敗させる。
  • demo_data/summary.jsonへ対象家庭数、割合、カナ/英字人数、混在家庭数、兄弟家庭数、登録状態別件数を出力する。
  • モック版・テスト版・デモ版で同じ固定データを使い、β版へ投入する場合はβ専用DBへ明示的にseedする。既存βデータを起動時に自動上書きしない。

注意

このデータは実在情報ではありません。ただし、本番に近い画面確認ができるよう、家庭、勤務先、体調、欠席、アレルギーなどを含めています。外部公開デモで利用する場合も、表示内容が誤解を招かないよう「ダミーデータ」と明記してください。