シティガイド - 地域観光プラットフォーム
地域の観光スポット、ツアー、体験を一元管理し、旅行者に最適な観光プランを提案するプラットフォームを開発しました。高度な検索機能とレビューシステムにより、ユーザーが求める体験を簡単に見つけられます。
プロジェクト概要
- 観光ツアー・体験の検索・予約プラットフォーム
- ラベル・カテゴリによる高度な検索機能
- レビュー・評価システム
- リアルタイム在庫管理
依頼者の目指した目標と解決したい課題
地域の観光事業者は、それぞれが個別にWebサイトを運営しており、旅行者が情報を探すのに時間がかかっていました。また、予約システムもバラバラで、複数の体験を組み合わせて予約することが困難でした。観光情報を一元化し、ユーザーが簡単に検索・比較・予約できるプラットフォームが求められていました。
開発したシステムの特徴
このプラットフォームは、地域の観光ツアーや体験を集約し、統一された検索・予約体験を提供します。主な機能として:
- 高度な検索機能:
- キーワード検索
- ラベル・カテゴリによるフィルタリング
- エリア・価格帯での絞り込み
- 検索結果サマリー表示
- ツアー管理:
- ツアー情報の登録・編集
- カテゴリ・ラベル管理
- 画像・動画のアップロード
- 在庫・スケジュール管理
- 予約システム:
- リアルタイム在庫確認
- 予約カレンダー
- 決済処理
- 予約確認メール自動送信
- レビュー機能:
- ユーザーレビュー・評価
- 写真付きレビュー
- 評価の集計・表示
- 管理者機能:
- ツアー承認・管理
- ユーザー管理
- 予約管理
- 売上レポート
技術的背景
Ruby on Rails 7をベースに、HotwireスタックでSPA風の高速なユーザー体験を実現しています。Stimulus.jsによるインタラクティブな検索UI、Turboによる高速なページ遷移を採用しています。
検索機能は、データベースインデックスとN+1問題の最適化により、大量のツアーデータでも高速な検索レスポンスを維持しています。ラベルシステムはポリモーフィックな設計により、柔軟なカテゴリ分類を実現しています。
フロントエンドはBootstrap Sassでレスポンシブデザインを実装し、モバイル・タブレット・デスクトップすべてで最適な表示を提供します。esbuildによる高速なJavaScriptビルド、Sassによる効率的なスタイル管理を行っています。
テストはRSpecで包括的に実装され、CI/CDパイプラインで自動実行されます。GitHub Actionsによる自動デプロイメントで、品質を担保しながら迅速なリリースサイクルを実現しています。
解決された問題
このプラットフォームにより、旅行者は地域の観光情報を一箇所で検索・比較・予約できるようになりました。観光事業者側も、統一されたシステムで在庫管理や予約管理ができ、運営コストを削減できます。レビューシステムにより、質の高いサービスが可視化され、事業者の改善意欲も向上しました。
チーム構成
- (KW) プロジェクトマネージャー
- (KW) バックエンドエンジニア×2
- (KW) フロントエンドエンジニア
- UIデザイナー
- QAエンジニア
(KW) はKaito Wingsが担当
プロジェクト期間
- 要件定義・設計 - 2ヶ月
- MVP開発 - 4ヶ月
- 検索機能実装・最適化 - 2ヶ月
- ベータテスト・改善 - 2ヶ月
- 運用開始 - 継続中
システム構成
- Ruby on Rails 7 / PostgreSQL
- Hotwire (Turbo, Stimulus.js)
- Bootstrap Sass
- esbuild / Sass
- RSpec / GitHub Actions
- Docker / Docker Compose