DOCUMENT 07

仕様書(機能仕様書)

calendar_today 作成日:2026-05-14 person 作成者:清水宏美 push_pin Ver 1.0

1 システム概要

システムの目的 必須
このシステムが解決する課題と提供する価値

サービス名 : ペットライフプラス(Pet Life Plus)

利 用 者 : 管理者、一般ユーザー

目  的  : ペットの健康記録、AI症状チェック、予約、診療・相談履歴を一元管理し、次の価値を提供する。

・早期異変の発見

・受診判断の支援

・継続的な健康管理の実現

システム構成図 必須
フロントエンド ↔ バックエンド ↔ データベースの関係を図示

フロントエンド: HTML / CSS / JavaScript(Thymeleaf)

バックエンド: Spring Boot(Controller → Service → Repository)

データベース: PostgreSQL / H2 / MySQL

フロントエンド

HTML / CSS / JavaScript

Thymeleaf テンプレート

HTTPリクエスト ↔ レスポンス
バックエンド

Spring Boot

Controller → Service → Repository

データ永続化
データベース

H2 / MySQL / PostgreSQL

ユーザー・ペット・健康記録を管理

利用者はフロントエンド画面を操作し、バックエンドで業務処理を行い、永続データはデータベースに保存する構成です。

2 機能一覧

機能一覧表 必須
No. 機能名 概要 対応画面 優先度
F-001 ログイン認証 管理者・一般ユーザー認証と権限制御 ログイン画面 Must
F-002 ダッシュボード表示 KPI・予定・通知の集約表示と導線提供 ダッシュボード画面 Must
F-003 ユーザー管理(CRUD) ユーザー情報の登録/参照/更新/削除 ユーザー管理画面 Must
F-004 ペット管理(CRUD) ペット情報の登録/参照/更新/削除 ペット管理画面 Must
F-005 健康記録管理(CRUD) 体重/食事/運動などの記録管理 健康記録管理画面 Must
F-006 予約管理(CRUD) 診療・相談予約の登録/変更/キャンセル 予約管理画面 Must
F-007 診療・相談履歴管理(CRUD) 履歴の登録/参照/更新/削除 診療・相談履歴画面 Must
F-008 入力バリデーション 必須・形式・文字数・範囲などの検証 各登録/編集画面 Must
F-009 AI症状チェック 症状解析と推奨対応提示 症状チェック画面 Should
F-010 検索・ソート・ページネーション 一覧表示の検索性/閲覧性向上 各一覧画面 Should
F-011 通知・リマインド配信 通知作成、配信設定、履歴管理 通知配信管理画面 Should
F-012 PDF出力 レポート/一覧のPDF出力 レポート画面 / 各一覧画面 Could
F-013 ファイルアップロード 添付ファイルの登録・管理 診療・相談履歴画面 Could
F-014 メール通知 予約・重要情報のメール配信 通知配信管理画面 Could

3 画面遷移図

画面遷移図 必須
各画面間の遷移関係を図示

ログイン認証後、ダッシュボード画面へ遷移し、ユーザー管理、ペット管理、健康記録管理、予約管理、診療・相談履歴、通知配信、レポート画面へ移動できる。

各管理画面では一覧、詳細、編集、登録画面を相互遷移し、保存後は対象一覧へ戻る。AI症状チェック結果からは予約管理画面への導線を持つ。

ログイン画面
ダッシュボード画面
ユーザー管理画面
ペット管理画面
健康記録管理画面
予約管理画面
診療・相談履歴画面
通知配信管理画面
レポート画面
症状チェック画面
症状チェック結果画面
予約管理画面

4 機能詳細仕様

F-001 ログイン認証

機能概要 必須
機能ID:F-001

メールアドレス/パスワードで認証し、成功時にセッションを発行してダッシュボードへ遷移する。

画面レイアウト

メールアドレス入力、パスワード入力、ログインボタン、再設定リンクを配置。

処理フロー

1. 認証情報を入力する。

2. ログインボタン押下で認証処理を実行する。

3. 認証結果に応じて遷移またはエラー表示する。

正常時の動作

認証成功でセッションを作成し、ダッシュボードへ遷移する。

エラー時の動作

バリデーション: 未入力・形式不正を項目下に表示。

システム: 認証処理失敗時に汎用エラーメッセージを表示。

画面遷移先

ダッシュボード画面

パスワード再設定画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
メールアドレス String 必須チェック / メール形式 / 255文字以内 ログインID
パスワード String 必須チェック / 8〜64文字 マスク表示

F-002 ダッシュボード表示

機能概要 必須
機能ID:F-002

KPI・通知・本日の予定を表示し、各管理画面への導線を提供する。

画面レイアウト

KPIカード、本日の予定、通知一覧、メニュー導線を配置。

処理フロー

1. 画面表示時にKPI・予定・通知を取得する。

2. 各ウィジェットへ表示する。

3. メニュー選択で対象画面へ遷移する。

正常時の動作

最新データを表示し、各機能に遷移できる。

エラー時の動作

バリデーション: 期間条件不正を表示。

システム: 一部データ取得失敗時は該当領域のみエラー表示。

画面遷移先

各管理画面

症状チェック画面

通知配信管理画面

レポート画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
期間フィルタ(開始日) Date 日付形式 任意検索
期間フィルタ(終了日) Date 日付形式 / 開始日以降 任意検索

F-003 ユーザー管理(CRUD)

機能概要 必須
機能ID:F-003

ユーザー情報の一覧表示、登録、詳細表示、編集、削除を行う。

画面レイアウト

一覧テーブル、検索欄、登録ボタン、詳細/編集/削除操作を配置。

処理フロー

1. 検索または対象ユーザーを選択する。

2. 登録/更新/削除を実行する。

3. 保存後に一覧を再表示する。

正常時の動作

操作結果を保存し、一覧へ反映する。

エラー時の動作

バリデーション: 必須・形式・重複エラーを表示。

システム: 競合/保存失敗時に警告表示する。

画面遷移先

ユーザー詳細画面

ユーザー編集画面

ユーザー管理画面(一覧)

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
氏名 String 必須チェック / 1〜50文字 全角半角可
メールアドレス String 必須チェック / メール形式 / 重複不可 一意制約
電話番号 String 数字・ハイフン / 10〜13桁 任意

F-004 ペット管理(CRUD)

機能概要 必須
機能ID:F-004

ペット情報の登録、参照、更新、削除を行い、飼い主情報と紐付ける。

画面レイアウト

ペット一覧、飼い主紐付け項目、登録/編集フォームを配置。

処理フロー

1. 対象データを選択する。

2. 登録/更新/削除を実行する。

3. 保存後に一覧へ反映する。

正常時の動作

ペット情報と飼い主紐付けを更新する。

エラー時の動作

バリデーション: 必須・日付不正を表示。

システム: 紐付け整合エラー時に保存中止。

画面遷移先

ペット詳細画面

ペット編集画面

健康記録管理画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
ペット名 String 必須チェック / 1〜40文字
種別 Enum 必須チェック 犬 / 猫 など
生年月日 Date 日付形式 / 未来日不可 任意

F-005 健康記録管理(CRUD)

機能概要 必須
機能ID:F-005

体重・食事・運動などの健康記録を登録し、時系列で管理する。

画面レイアウト

記録一覧、期間フィルタ、記録フォームを配置。

処理フロー

1. 記録内容を入力する。

2. 入力値を検証する。

3. 保存後に履歴へ反映する。

正常時の動作

時系列一覧と関連表示を更新する。

エラー時の動作

バリデーション: 数値範囲外・日付不正を表示。

システム: 保存失敗時に再試行案内を表示。

画面遷移先

健康記録詳細画面

健康記録編集画面

ペット詳細画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
記録日 Date 必須チェック / 日付形式
体重 Decimal 数値 / 0.1〜200.0 任意
食事メモ String 300文字以内 任意

F-006 予約管理(CRUD)

機能概要 必須
機能ID:F-006

診療・相談予約の登録、変更、キャンセルを管理し、空き枠チェックを行う。

画面レイアウト

予約一覧、日付フィルタ、予約フォーム、変更/キャンセル操作を配置。

処理フロー

1. 予約条件を入力する。

2. 空き枠と重複をチェックする。

3. 成功時に一覧へ反映する。

正常時の動作

予約確定し最新状態を表示する。

エラー時の動作

バリデーション: 過去日時・必須漏れを表示。

システム: 競合時に警告表示する。

画面遷移先

予約詳細画面

予約編集画面

通知配信管理画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
予約日時 DateTime 必須チェック / 過去日時不可
予約種別 Enum 必須チェック 診療 / 相談
備考 String 500文字以内 任意

F-007 診療・相談履歴管理(CRUD)

機能概要 必須
機能ID:F-007

診療・相談履歴の登録、検索、編集、削除と添付管理を行う。

画面レイアウト

履歴一覧、検索欄、履歴フォーム、添付欄を配置。

処理フロー

1. 履歴情報を入力する。

2. 入力値とファイルを検証する。

3. 保存後に一覧へ反映する。

正常時の動作

履歴を対象データに紐付け保存する。

エラー時の動作

バリデーション: 文字数超過・形式不正を表示。

システム: 保存失敗時に通知表示する。

画面遷移先

履歴詳細画面

履歴編集画面

ペット管理画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
実施日 Date 必須チェック / 日付形式
対応内容 String 必須チェック / 1000文字以内
添付ファイル File 拡張子チェック / 5MB以内 PDF・画像

F-008 入力バリデーション

機能概要 必須
機能ID:F-008

全フォームの必須・形式・範囲・重複チェックを共通ルールで実行する。

画面レイアウト

各入力欄下にエラー表示領域を配置。

処理フロー

1. 送信時に共通検証を実行する。

2. エラー一覧を作成する。

3. 保存続行または差し戻しする。

正常時の動作

検証通過時のみ保存処理へ進む。

エラー時の動作

バリデーション: 項目単位でエラーを表示。

システム: 検証処理失敗時に汎用エラー表示。

画面遷移先

同一画面(エラー時)

対象遷移先(正常時)

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
必須項目検証 Boolean 必須チェック 共通処理
形式検証 Boolean メール/電話形式チェック 共通処理
範囲検証 Boolean 文字数/数値範囲チェック 共通処理

F-009 AI症状チェック

機能概要 必須
機能ID:F-009

症状入力を解析し、重症度と推奨対応(経過観察/相談/受診)を提示する。

画面レイアウト

症状入力フォーム、実行ボタン、結果カードを配置。

処理フロー

1. 症状を入力する。

2. AI解析を実行する。

3. 判定結果を表示する。

正常時の動作

重症度と推奨アクションを表示する。

エラー時の動作

バリデーション: 入力不足を表示。

システム: 解析失敗時に再試行案内を表示。

画面遷移先

症状チェック結果画面

予約管理画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
症状種別 Enum 必須チェック 複数選択可
発症時期 String 必須チェック / 100文字以内
補足メモ String 500文字以内 任意

F-010 検索・ソート・ページネーション

機能概要 必須
機能ID:F-010

一覧画面で条件検索、並び替え、ページ分割表示を提供する。

画面レイアウト

検索欄、ソートヘッダー、ページャーを配置。

処理フロー

1. 条件を入力する。

2. 一覧を再取得する。

3. ページ情報を更新表示する。

正常時の動作

条件一致データを指定順で表示する。

エラー時の動作

バリデーション: ページ番号不正を補正。

システム: 一覧取得失敗時にエラー表示。

画面遷移先

同一一覧画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
キーワード String 100文字以内 任意
ソートキー Enum 定義済み項目のみ 任意
ページ番号 Integer 1以上 任意

F-011 通知・リマインド配信

機能概要 必須
機能ID:F-011

通知作成、配信対象設定、配信実行、配信履歴管理を行う。

画面レイアウト

通知フォーム、対象選択、配信履歴を配置。

処理フロー

1. 通知内容と対象を設定する。

2. 配信実行または予約登録する。

3. 配信結果を履歴記録する。

正常時の動作

配信成功ステータスを保存する。

エラー時の動作

バリデーション: 件名/本文不備を表示。

システム: 配信失敗時に再送導線を表示。

画面遷移先

通知詳細画面

ダッシュボード画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
件名 String 必須チェック / 100文字以内
本文 String 必須チェック / 2000文字以内
配信日時 DateTime 日時形式 / 現在以降 予約配信

F-012 PDF出力

機能概要 必須
機能ID:F-012

指定条件でレポートや一覧データをPDFとして生成・出力する。

画面レイアウト

条件フォーム、出力ボタン、出力履歴を配置。

処理フロー

1. 条件を指定する。

2. 帳票生成を実行する。

3. 完了後にダウンロードを表示する。

正常時の動作

PDFを生成しダウンロード可能にする。

エラー時の動作

バリデーション: 期間不整合を表示。

システム: 生成失敗時に再試行案内。

画面遷移先

レポート画面(同一画面)

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
対象期間(開始日) Date 必須チェック / 日付形式
対象期間(終了日) Date 必須チェック / 開始日以降
出力種別 Enum 必須チェック 月次 / 顧客別

F-013 ファイルアップロード

機能概要 必須
機能ID:F-013

関連ファイルを検証後に保存し、対象データへ紐付けて管理する。

画面レイアウト

ファイル選択、実行ボタン、添付一覧を配置。

処理フロー

1. ファイルを選択する。

2. 形式/容量を検証する。

3. 保存して一覧更新する。

正常時の動作

添付一覧に反映し参照可能とする。

エラー時の動作

バリデーション: 拡張子不正・容量超過表示。

システム: 保存失敗時に通知表示。

画面遷移先

診療・相談履歴詳細画面(同一画面再表示)

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
添付ファイル File 拡張子チェック / 10MB以内 PDF・JPG・PNG
説明 String 200文字以内 任意

F-014 メール通知

機能概要 必須
機能ID:F-014

テンプレートに基づき即時/予約でメール送信し、送信結果を記録する。

画面レイアウト

テンプレート選択、送信先設定、送信履歴を配置。

処理フロー

1. 送信条件を設定する。

2. 即時/予約送信を実行する。

3. 送信結果を記録する。

正常時の動作

送信成功件数を表示し履歴更新する。

エラー時の動作

バリデーション: 必須漏れ・形式不正を表示。

システム: 送信失敗時に再送対象として保持。

画面遷移先

通知配信管理画面

予約管理画面

入力項目一覧 必須
項目名 データ型 必須 バリデーション 備考
テンプレートID Enum 必須チェック 登録済みテンプレート
送信先メール String 必須チェック / メール形式
送信タイミング DateTime 日時形式 即時/予約

5 非機能要件

セキュリティ要件 必須
認証・認可・データ保護に関する要件
  • 認証方式(Spring Security): フォームログインを基本にSpring Securityで認証・認可を実装し、URL単位でアクセス制御する。
  • パスワードの暗号化方式: BCryptPasswordEncoderでハッシュ化して保存し、平文保存は行わない。
  • CSRF対策: Spring SecurityのCSRF保護を有効化し、フォーム送信時にCSRFトークンを検証する。
  • XSS対策: 入力値バリデーションと出力時エスケープ(Thymeleaf自動エスケープ)を実施する。
  • SQLインジェクション対策: JPA/Repositoryおよびバインド変数を使用し、SQL文字列連結を禁止する。
  • セッション管理: ログイン時のセッションID再生成、セッションタイムアウト設定、ログアウト時のセッション破棄を実施する。
対応環境 必須
対応ブラウザ・デバイス
  • 対応ブラウザ: Chrome(最新版)/ Firefox(最新版)/ Edge(最新版)
  • 対応デバイス: PC / タブレット / スマートフォン