宿泊施設のゲストが自分の端末から手続きを進め、スタッフと対面せずにチェックインとチェックアウトを完了できる仕組みをWebシステムとして開発しました。バックエンドはLaravel、フロントは既存のVueで書かれた部分を残しながら新しい画面はReactで書き、両方をViteで一緒にビルドしています。施設ごとに異なる宿泊管理システムとの連携は、差異を吸収するアダプタ層として実装し、複数のシステムに対応。予約に含まれる氏名の表記ゆれをひらがなやローマ字へ変換する処理にはLLMを用い、非同期ジョブとして実行しています。決済、SMS、チャットボットとの連携や、予約状況を見渡せる画面も備えています。
- 連携先の違いをアダプタに閉じ込める
- 宿泊管理システムごとの取得方法や項目の違いをアダプタ層で吸収し、チェックイン側は施設に依存しない一つの予約データ形式だけを見るため、新しい施設への展開が連携アダプタの追加だけで済みます。
- LLMを地味だが効く業務に適用
- 漢字の氏名を読み仮名やローマ字に変換するという定型化しにくい処理にLLMを使い、画面の応答を止めないよう非同期のジョブとして組み込みました。
- 全面刷新を避けた段階的な移行
- 既存のVue画面を残したまま新しい画面をReactで追加し、同じビルド環境で共存させ、機能追加を止めずに技術を更新しています。
- 施設側の状況把握
- 予約と滞在の状況をカレンダーとタイムラインの二つの見方で表示し、無人運営でも施設側が空室と稼働をひと目で確認できるようにしました。
- VueとReactを同じビルドで共存
- 既存のVue画面を残したまま新しい画面をReactで書き、両方をViteで一緒にビルドする構成にしました。画面単位で技術を切り替えられるため、全面停止を伴う移行が不要になります。
この種のシステムで検討する論点(想定例)
以下は同種の案件で一般的に検討する内容の整理であり、上記事例の詳細を示すものではありません。
無人運営という事業モデルとシステムの役割
スタッフを常駐させない宿泊施設は、人件費を抑えて収益性を高める一方で、ゲストの不安や例外への対応をシステムが引き受ける必要があります。予約情報が照合できない、決済が失敗する、鍵の案内が届かないといった場面で、ゲストに次の行動を画面で示し、同時に施設側へ通知が届く仕組みを最初から設計に含めます。SMSやチャットボットで自動対応する範囲と、人が引き取る範囲をあらかじめ決めておくことが、無人運営の体験品質を左右します。無人化は、例外設計への投資と一体で考える必要があります。
多くの施設に展開するための連携設計
宿泊施設向けのSaaSは、施設ごとに導入済みの宿泊管理システムが異なるため、連携先の数が事業の拡張性を決めます。連携部分を独立した層として設計し、新しい連携先を追加する工数を定型化しておくと、営業が獲得した施設への導入期間を見積もりやすくなり、事業計画に組み込めます。連携先が止まったり仕様が変わったりしても業務を続けられるよう、取り込んだデータを手元に保ち、手作業での代替手順を用意しておくことも、顧客からの信頼を保つ条件です。
関連するサービス
関連する領域
関連するインサイト
- 宿泊施設の業務DX — 客室タブレットと非対面化宿泊施設のフロント業務を、予約からチェックアウトまでの流れに沿って整理し、客室タブレットと非対面チェックインの導入で何が変わるかを解説します。既存の予約管理システムとの連携、スタッフ業務の再設計、段階的な導入の判断軸も示します。
- 外部API連携の設計と運用 — 認証・レート制限・仕様変更への備え決済・地図・メッセージ配信など外部APIとの連携は、つなぐだけでは終わりません。認証方式の考え方、レート制限とリトライ、冪等性、仕様変更や障害への備え、ログと監視、利用規約の確認まで、運用を見据えた設計の要点を整理します。
- スタートアップのセキュリティと個人情報保護 — 最低限の実務スタートアップが最低限押さえたいセキュリティと個人情報保護の実務を、アカウント管理や秘密情報の扱い、個人情報の取得と削除、CI/CDへの検査組み込み、インシデント初動、生成AI利用の注意まで整理します。
他の開発事例
監修: フィリット・コンサルティング株式会社公開