一般・予約カレンダー画面(空状況表画面)
お客が空状況を見ながら予約を開始する画面。
施設一覧画面から当画面にアクセスできる。
予約カレンダー画面は予約カレンダーが主な機能である。
予約カレンダーテーブルと紐づいている
予約カレンダーについて
一般客はこの予約カレンダーから予約を行う。
予約カレンダーはオペレータ用も存在する。
予約カレンダーは施設と1:1の関係とする。(予約カレンダー一つに複数の施設を組み込まないこと)
予約カレンダーのX軸は単位時間、Y軸は日付、セルは貸アイテム数リンクから構成される。
単位時間とは30分区切り、1時間区切りなどを一区切りとした単位とした数値である。単位時間は時間割テーブルで変更できる。
Y軸の日付は一月分が望ましい。
空部屋数リンクから予約ができる。空部屋数が0であるなら満室として表記するのが良い。
拡張としてキャンセル待ち機能も組み込める。その場合はキャンセル待ち数をセルに追加する。
予約カレンダーまとめ
一つの施設IDに一つの予約カレンダー
X軸→単位時間配列(時間割IDの配列)
Y軸→日付配列
セル→貸アイテム数リンク、キャンセル待ち数リンク(拡張機能)
予約カレンダーのモック
予約カレンダーに必要なデータ
施設ID 施設予約日付 時間割ID 施設数(マスタ) 予約数(マスタ) 残数 キャンセル待ち人数 休日フラグ 時間割・稼働フラグ 月間管理フラグ
予約カレンダー集計に関するSQL
SELECT 施設ID、 施設名、 時間割ID、 時間割名
FROM
予約・集計
SELECT 施設ID、日付、時間割ID、SUM(ID) AS 予約数
WHERE
施設ID、月初日、月末日、予約状態=予約
GROUP BY 施設ID、日付、時間割ID
施設テーブル(予約集計・施設ID=ID)
時間割テーブル(予約集計・時間割ID=ID)
WHERE
施設ID
キャンセル待ち集計データ
予約状態=キャンセル待ち
※ SQLだけでなくロジックで集計する箇所もある。
2018-11-1
貸アイテム一覧画面
一般客用の貸アイテム一覧画面。貸アイテム名リンクから予約カレンダー画面に遷移できる。
貸アイテムテーブルと貸数マップに紐づいている。
一覧のモック
貸アイテム名 施設数 備考
テニスコート 2 テスト
バスケットボール 20 テスト
宿泊部屋 4 テスト
ユニック 3 テスト
2018-11-1
予約申請画面
入力画面、確認画面、結果画面と遷移する画面。
最終的に予約テーブルに登録する。
パスワードなしの手続きについて考察
期間限定のハッシュコードを発行する方法がある。
ハッシュコードが有効である間はマイページを閲覧することができる。
2018-11-2
予約確認・変更画面
アカウントなし型の検討
ハッシュコード付きのURLから当ページにアクセスできる。
ハッシュコードがパスワードの代わりである。
ハッシュコードは当然期間限定。
ハッシュコードは管理者も確認できるので、一般客の代わりにオペレータが変更するといったことも可能。
ハッシュコードは漏洩しないようにする工夫が必要。
できれば端末情報の確認をとる。
異なる端末からアクセスされた場合は、注意メールを送信する機能があればないよい。
2018-11-2
キャンセル空予約画面
キャンセル待ちの人がキャンセル空通知メールを受け取ったときにアクセスできる画面。
この画面へのURLにはハッシュコードが埋め込まれている。
ハッシュコードには有効期間の概念がある。
一応拡張機能なので、実装するかどうかは要件しだい。
2018-11-3
月間管理画面
月ごとに予約カレンダーを作成する画面。
予約カレンダーを月集計したデータを一覧表示する。
予約カレンダーを作成する処理は複雑になるはずである。
詳細な仕様については後日検討する。
旧考察
月先々までの予約可否を制御する機能。
予約カレンダーの作成を制御する機能が考えらえる。
問題点
施設Aが2か月後に最大貸アイテム数が4から2に減るとする場合、どのように実装したらよいだろうか?
施設Aは2か月後の予約受付を停止させることが考えられる。
しかし、これだと一般客は2か月後の予約ができなくなる。
X:施設、Y:日付、セル:最大貸アイテム数からなるマトリクス入力画面を用意する画面も考えられるが煩雑なので避けたい。
貸アイテム数予定変更画面を用意したほうが良い。
貸アイテム数予定変更画面で2か月後先の貸アイテム数を2とすれば、尾客側の予約カレンダーにも反映されるようにするわけだ。
とわいえ、すでに予約のいる日の貸アイテム数を減らした場合、予約オーバー客が出てしまう。
この場合、予約オーバー客リストが必要になる。
予約カレンダーの作成を制御
予約カレンダー作成済み/未作成の概念がある。
自動作成、手動作成の制御がある。
デフォルトでは自動作成。手動作成にすると作成ボタンが表示される。
予約カレンダーの有効/無効の切替も欲しいところ。
自動作成は2か月先までを自動生成という感じで良いかと思わるが、一応、設定できると良い。
モック
年月 施設名 作成方法 予約カレンダー有無 稼働
2018年11月 テニスコード 自動作成 有 稼働中
2018年12月 テニスコード 自動作成 有 稼働中
2019年1月 テニスコード 自動作成 有 稼働中
2018年11月 バスケットボール 手動作成 有【再作成ボタン】 稼働中
2018年12月 バスケットボール 手動作成 未作成【作成ボタン】 稼働中
2018-11-3
予約カレンダー編集
予約カレンダーを編集する画面。
月間管理画面カレンダーからアクセスできる。
詳細な仕様は後日。
2018-11-3
貸アイテムマスタ画面
貸アイテムマスタのCRUD画面。
貸アイテムマスタは貸アイテムID,貸アイテム名、備考からなる。
2018-11-3
時間割マスタ画面
時間割マスタのCRUD画面。
2018-11-3
休日マスタ画面
休日マスタのCRUD画面。
2018-11-3
予約一覧画面
予約一覧を閲覧編集する画面
予約テーブルと紐づいている。
2018-11-3
一般ユーザー管理画面
お客テーブルのCRUD画面。
ユーザーエージェントなども記録したほうがいいかもしれない。
2018-11-3
オペレータユーザー管理画面
CrudBaseに付属する一般的なオペレータ画面
2018-11-3
設定画面(キャンセル空き予約締め切り時間)
システムの全体的な設定を行う画面。
2018-11-3
メール通知履歴画面
メール送信履歴の一覧表示画面
2018-11-3
キャンセル空き・メール通知機能
この機能はキャンセル待ち機能を実装する場合に必要になる。
詳細な設計は後日
2018-11-3
xxx
ホーム
プログラミングの覚書
マネージメントの覚書
予約システムの設計