ヨacht チャーター市場
AIエージェントで構築
ヨットチャーターマーケットプレイスバックエンド

ヨットチャーターマーケットプレイスバックエンドテンプレート
チャーター業務のためのユーザー、船舶、リスティング、予約、およびクルーアサインメント

ユーザー、船舶、リスティング、季節価格、予約、クルーアサインメントのワークフローを持つ、Back4app 上のヨットチャーターマーケットプレイスバックエンド。ER図、データ辞書、JSONスキーマ、APIプレイグラウンド、および迅速なブータップのためのAIエージェントプロンプトが含まれています。

チャーターバックエンドのポイント

このテンプレートは、オペレーターがフリートの供給、ゲストの予約、クルーのカバレッジを迅速に調整できるように、ユーザー、船舶、リスティング、季節料金、予約、クルー割り当てを含むヨットチャーターのバックエンドを提供します。

  1. 船舶リスティング構造各船舶を名前、タイプ、容量、出港地、オペレーターでモデル化し、その後リスティングを通じて公開します。
  2. 季節料金ルール季節料金を季節料金に保存し、ピークシーズン、肩のシーズン、柔軟な価格設定ウィンドウを各リスティングに対して明示的に保つことができます。
  3. クルー予約ワークフローキャプテン、シェフ、スチュワード、デッキハンドの予約記録に対してクルー割り当て行を追跡します。
  4. マーケットプレイスの可視性Back4app クエリと Live Queries を使用して、公開されたリスティング行、季節価格ウィンドウ、および予約ステータスを最新の状態に保ちます。

ヨットチャーター市場のバックエンドの理解

季節性はヨットチャーター市場に大きな影響を与えます。履歴がなければ、需要、人員、または未使用在庫に tied された資本を予測することはできません。詳細は任意ではありません。Back4app で Vessel、Listing、SeasonalPricing、Booking、および CrewAssignment を使用して、ヨットチャーター市場の可用性、価格フック、そして履行記録を1つの統合されたバックエンドにエンコードします。このスキーマは、User(ユーザー名、メールアドレス、パスワード、役割、表示名)、Vessel(名前、タイプ、収容人数、ホームポート、オペレーター、アクティブかどうか)、Listing(船、タイトル、説明、ステータス、基本通貨、フィーチャー画像URL、オペレーター)、SeasonalPricing(リスティング、シーズン名、開始日、終了日、一泊料金、預金額、柔軟性)、Booking(リスティング、ゲスト、チェックイン日、チェックアウト日、ゲスト数、ステータス、合計金額、特別リクエスト)、および CrewAssignment(予約、クルーメンバー名、役割、シフト開始、シフト終了、ステータス)を含み、認証およびマーケットプレイスのワークフローが組み込まれています。お好みのフロントエンドを接続して、より早く出荷しましょう。

最適:

ヨットチャーター市場ブローカーとオーナーのリスティングポータル季節価格管理ツールクルーのスケジューリングと予約アプリマーケットプレイスMVPのローンチチームが海上予約製品のためにBaaSを選択

ヨットチャーターマーケットプレイス:バックエンドスナップショット

ヨットチャーターマーケットプレイスは、単にスピードだけでなく、「それが本当だとどうして知っていたのか見せてください」と誰かに聞かれたときの防御性についても重要です。

ハブは、Vessel、Listing、SeasonalPricingに関して混乱から明確さへの最速の道であり、5つの異なるドキュメントを開く必要はありません。

チャーター市場の機能

このハブ内のすべての技術カードは、User、Vessel、Listing、SeasonalPricing、Booking、およびCrewAssignmentを使用して同じヨットチャーターのスキーマを使用しています。

船舶の記録とチャーター仕様

船舶は名前、タイプ、キャパシティ、母港、オペレーター、及びアクティブ状態を記録します。

ライブチャーターリスティング

リスティングは船舶をタイトル、説明、ステータス、基準通貨、特集画像URL、及びオペレーターにリンクします。

季節の価格ウィンドウ

季節料金は季節名、開始日、終了日、宿泊料金、デポジット額、及び柔軟性を追跡します。

クルー割り当て管理

CrewAssignmentは、予約、crewMemberName、role、shiftStart、shiftEnd、およびstatusを記録します。

ゲスト予約リクエスト

Bookingは、リスティング、ゲスト、チェックイン日、チェックアウト日、ゲスト数、ステータス、合計価格、および特別リクエストを保持します。

なぜヨットチャーター運用にBack4appなのか?

Back4appは、インフラではなく、ヨット供給とゲスト需要にチームが集中できるように、船舶、料金、予約、クルーのためのマーケットプレイスのプリミティブを提供します。

  • リスティングと船舶管理: VesselクラスとListingクラスは、チャーター準備完了の詳細、視認性、特集ステータスを一箇所に保持します。
  • 予測不要の季節料金: SeasonalPricingは日付に基づくnightlyRate値を保存し、オペレーターが夏や休日の料金を正確に設定できるようにします。
  • 予約によるクルー調整: CrewAssignmentはBookingをcrewMemberName、role、shiftStart、shiftEndに結び付け、キャプテンとスチュワードのスケジューリングを管理しやすくします。

すべてのプラットフォームで1つのバックエンド契約によるチャーター市場のワークフローを迅速に構築および反復します。

チャーターマーケットプレイスの利点

ブローカー、オーナー、オペレーターが問い合わせから予約までの過程をスムーズに進めるためのヨットチャーターのバックエンド。

迅速なリスティングの開始

チャーターの在庫フローをゼロから構築する代わりに、船舶とリスティングクラスから始める。

価格は明確なまま

シーズナルプライシングフィールド(seasonName、startDate、endDate、nightlyRate、depositAmountなど)を使用して、価格の決定を簡単に見直せるようにする。

クルーのスケジュールは視認性を保つ

CrewAssignmentは、予約、役割、シフト開始、シフト終了を各チャーターに接続し、オペレーターが重複を避けるのに役立つ。

1つのモデルのマーケットプレイス運用

需要、価格設定、可用性を一元的に表示する必要がある場合、予約、リスティング、船舶を一緒にクエリできます。

クロスチャネルAPI配信

REST、GraphQL、およびSDKアクセスにより、ブローカーポータル、モバイルアプリ、および管理ツールのサポートが簡単になります。

AI支援のローンチ

1つの構造化されたプロンプトでバックエンドのスキャフォールディングと統合ガイダンスを迅速に生成します。

ヨットチャーターマーケットプレイスのローンチは準備できましたか?

Back4app AIエージェントにあなたのヨットチャーターのバックエンドをスキャフォールドさせ、1つのプロンプトから船舶、価格、予約、スタッフのワークフローを生成させましょう。

無料で始められます — 月あたり50のAIエージェントプロンプト、クレジットカードは不要です。

テクノロジースタック

このヨットチャーターマーケットプレイスのバックエンドテンプレートに含まれているすべて。

フロントエンド
13 以上のテクノロジー
バックエンド
Back4app
データベース
MongoDB
認証
組み込みの認証 + セッション
API
RESTと GraphQL
リアルタイム
Live Queries

チャーターエンティティダイアグラム

ヨットチャーター市場スキーマのエンティティ関係モデル。

ダイアグラムソースを見る
Mermaid
erDiagram
    User ||--o{ Vessel : "operator"
    User ||--o{ Listing : "operator"
    User ||--o{ Booking : "guest"
    Vessel ||--o{ Listing : "vessel"
    Listing ||--o{ SeasonalPricing : "listing"
    Listing ||--o{ Booking : "listing"
    Booking ||--o{ CrewAssignment : "booking"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        String displayName
        Date createdAt
        Date updatedAt
    }

    Vessel {
        String objectId PK
        String name
        String type
        Number capacity
        String homePort
        String operatorId FK
        Boolean isActive
        Date createdAt
        Date updatedAt
    }

    Listing {
        String objectId PK
        String vesselId FK
        String title
        String description
        String status
        String baseCurrency
        String featuredImageUrl
        String operatorId FK
        Date createdAt
        Date updatedAt
    }

    SeasonalPricing {
        String objectId PK
        String listingId FK
        String seasonName
        Date startDate
        Date endDate
        Number nightlyRate
        Number depositAmount
        Boolean isFlexible
        Date createdAt
        Date updatedAt
    }

    Booking {
        String objectId PK
        String listingId FK
        String guestId FK
        Date checkInDate
        Date checkOutDate
        Number guestCount
        String status
        Number totalPrice
        String specialRequests
        Date createdAt
        Date updatedAt
    }

    CrewAssignment {
        String objectId PK
        String bookingId FK
        String crewMemberName
        String role
        Date shiftStart
        Date shiftEnd
        String status
        Date createdAt
        Date updatedAt
    }

チャーター統合フロー

ログイン、船舶リスティング、季節料金の更新、予約リクエスト、およびクルースケジューリングのための典型的なランタイムフロー。

ダイアグラムソースを見る
Mermaid
sequenceDiagram
  participant User
  participant YachtCharterMarketplaceApp as Yacht Charter Marketplace App
  participant Back4app as Back4app Cloud

  User->>YachtCharterMarketplaceApp: Sign in as buyer or operator
  YachtCharterMarketplaceApp->>Back4app: POST /login
  Back4app-->>YachtCharterMarketplaceApp: Session token

  User->>YachtCharterMarketplaceApp: Browse published vessel listings
  YachtCharterMarketplaceApp->>Back4app: GET /classes/Listing?where={"status":"published"}
  Back4app-->>YachtCharterMarketplaceApp: Listing rows with vessel pointers

  User->>YachtCharterMarketplaceApp: Review seasonal pricing for a listing
  YachtCharterMarketplaceApp->>Back4app: GET /classes/SeasonalPricing?where={"listing":{"__type":"Pointer","className":"Listing","objectId":"LISTING_ID"}}
  Back4app-->>YachtCharterMarketplaceApp: SeasonalPricing rows

  User->>YachtCharterMarketplaceApp: Create a booking request and crew plan
  YachtCharterMarketplaceApp->>Back4app: POST /classes/Booking
  Back4app-->>YachtCharterMarketplaceApp: Booking objectId
  YachtCharterMarketplaceApp->>Back4app: POST /classes/CrewAssignment
  Back4app-->>YachtCharterMarketplaceApp: CrewAssignment objectId

  YachtCharterMarketplaceApp->>Back4app: Subscribe to live booking updates
  Back4app-->>YachtCharterMarketplaceApp: Booking status changes

フィールドガイド

ヨットチャーターマーケットプレイススキーマ内のすべてのクラスに対するフルフィールドレベルリファレンス。

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
usernameStringAccount username for sign in
emailStringPrimary email address for the marketplace account
passwordStringHashed password (write-only)
roleStringAccount role such as buyer, seller, or operator
displayNameStringPublic name shown in charter and fleet workflows
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

8 フィールド User において

チャーターデータのアクセス制御

ACLとCLP戦略がユーザー、船舶、リスト、料金、予約、クルーの割り当てをどのように保護するか。

オーナーが管理するチャーター在庫

オーナーまたはブローカーのみが、彼らの艦隊のために船舶およびリストのレコードを作成または更新できます。

スコープ付き価格変更

季節価格の更新は許可されたオペレーターに限定されるべきであり、夜間料金の変更が追跡可能であるべきです。

予約と乗組員アクセスの境界

予約および乗組員割り当ての読み取りは関連するブローカー、オーナー、オペレーターの役割に制限されるべきです。

JSONスキーマ

生のJSONスキーマ定義は、Back4appにコピーするか、実装参照として使用する準備ができています。

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "displayName": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Vessel",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "name": {
          "type": "String",
          "required": true
        },
        "type": {
          "type": "String",
          "required": true
        },
        "capacity": {
          "type": "Number",
          "required": true
        },
        "homePort": {
          "type": "String",
          "required": true
        },
        "operator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "isActive": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Listing",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "vessel": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Vessel"
        },
        "title": {
          "type": "String",
          "required": true
        },
        "description": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "baseCurrency": {
          "type": "String",
          "required": true
        },
        "featuredImageUrl": {
          "type": "String",
          "required": false
        },
        "operator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SeasonalPricing",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "listing": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Listing"
        },
        "seasonName": {
          "type": "String",
          "required": true
        },
        "startDate": {
          "type": "Date",
          "required": true
        },
        "endDate": {
          "type": "Date",
          "required": true
        },
        "nightlyRate": {
          "type": "Number",
          "required": true
        },
        "depositAmount": {
          "type": "Number",
          "required": false
        },
        "isFlexible": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Booking",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "listing": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Listing"
        },
        "guest": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "checkInDate": {
          "type": "Date",
          "required": true
        },
        "checkOutDate": {
          "type": "Date",
          "required": true
        },
        "guestCount": {
          "type": "Number",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "totalPrice": {
          "type": "Number",
          "required": true
        },
        "specialRequests": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CrewAssignment",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "booking": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Booking"
        },
        "crewMemberName": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "shiftStart": {
          "type": "Date",
          "required": true
        },
        "shiftEnd": {
          "type": "Date",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AIエージェントビルドプロンプト

このテンプレートから、フロントエンド、バックエンド、認証、船舶、料金、予約、乗組員フローを含む実際のヨットチャーターマーケットプレイスアプリを生成するためにBack4app AIエージェントを使用します。

Back4app AIエージェント
ビルドする準備ができました
以下の正確なスキーマとマーケットプレイスの動作を持つヨットチャーターマーケットプレイスのための安全な Back4app バックエンドを作成します。

スキーマ:
1. ユーザー(Back4app の内蔵機能を使用):ユーザー名、メール、パスワード、役割、表示名。
2. 船舶:名前、タイプ、容量、ホームポート、オペレーター(ユーザーへのポインター)、アクティブかどうか。
3. リスティング:船舶(船舶へのポインター)、タイトル、説明、ステータス、基本通貨、特集画像URL、オペレーター(ユーザーへのポインター)。
4. 季節料金:リスティング(リスティングへのポインター)、シーズン名、開始日、終了日、一泊料金、デポジット金額、柔軟性。
5. 予約:リスティング(リスティングへのポインター)、ゲスト(ユーザーへのポインター)、チェックイン日、チェックアウト日、ゲスト数、ステータス、合計価格、特別リクエスト。
6. クルー割り当て:予約(予約へのポインター)、クルーメンバー名、役割、シフト開始、シフト終了、ステータス。

セキュリティ:
- オペレーターは自分の船舶、リスティング、季節料金、クルー割り当てのエントリを作成および編集できます。
- 購入者は予約リクエストを作成し、自分の予約を表示できます。
- リスティングのオペレーターのみがリスティングを一時停止または公開できます。
- クルー割り当ての記録は、実際の予約にリンクされている必要があります。

動作:
- 公開されたリスティングを閲覧し、船舶の詳細を比較し、季節料金を読み、チャーターをリクエストし、確認済みの予約のためにクルーを割り当てます。
- ログイン、サインアップ、予約管理、フリート管理、価格管理をサポートします。

提供:
- スキーマ、CLP、ACL、および船舶、リスティング、季節料金、予約、およびクルー割り当てのサンプルマーケットプレイスデータを備えた Back4app アプリ。

下のボタンを押して、このテンプレートプロンプトが事前に入力されたエージェントを開いてください。

これは技術接尾辞なしの基本プロンプトです。生成されたフロントエンドスタックは後で適応できます。

数分でデプロイ月50回の無料プロンプトクレジットカードは不要

APIサンドボックス

ヨットチャーターマーケットプレイススキーマに対して、RESTおよびGraphQLエンドポイントをお試しください。レスポンスはモックデータを使用しており、Back4appアカウントは必要ありません。

プレイグラウンドを読み込み中…

このテンプレートと同じスキーマを使用します。

スタックを選択

各カードを展開して、選択したスタックでVessel、Listing、およびSeasonalPricingを統合する方法を確認してください。

Flutter ヨットチャーターマーケットプレイスバックエンド

React ヨットチャーターマーケットプレイスバックエンド

React ネイティブ ヨットチャーターマーケットプレイスバックエンド

Next.js ヨットチャーターマーケットプレイスバックエンド

JavaScript ヨットチャーターマーケットプレイスバックエンド

Android ヨットチャーターマーケットプレイスバックエンド

iOS ヨットチャーターマーケットプレイスバックエンド

Vue ヨットチャーターマーケットプレイスバックエンド

Angular ヨットチャーターマーケットプレイスバックエンド

GraphQL ヨットチャーターマーケットプレイスバックエンド

REST API ヨットチャーターマーケットプレイスバックエンド

PHP ヨットチャーターマーケットプレイスバックエンド

.NET ヨットチャーターマーケットプレイスバックエンド

すべてのテクノロジーで得られるもの

すべてのスタックは同じヨットチャーターバックエンドスキーマとAPI契約を使用します。

統一されたヨットチャーターデータ構造

1つの一貫したスキーマを使用して、船舶、リスティング、季節的価格設定、予約、および乗組員の割り当てを管理します。

チャーターマーケットプレイスフローサポート

リスティングを公開し、季節料金を更新し、単一のバックエンドから予約リクエストを処理します。

クルーのスケジュール管理の可視性

クルーの役割とシフト時間を追跡し、運用が各チャーターリクエストと整合するようにします。

柔軟なマーケットプレイスの役割

コアモデルを変更することなく、バイヤー、売り手、オペレーターの体験を定義します。

チャーターアプリのためのREST/GraphQL API

ウェブ、モバイル、管理インターフェースを同じデータ契約で統合します。

ヨットチャータースタックの比較

すべてのサポートされている技術におけるセットアップ速度、SDKスタイル、AIサポートを比較する。

フレームワークセットアップ時間マーケットプレイスの利点SDKタイプAIサポート
約5分モバイルとウェブ用のヨットチャーター予約のための単一コードベース。型付きSDKフル
5分未満船舶リスト用の高速ブローカーダッシュボード。型指定SDKフル
約3〜7分チャーター業務のためのクロスプラットフォームモバイルアプリ。型指定SDKフル
迅速な(5分)セットアップヨットチャーターのためのサーバーレンダリングされたマーケットプレイスポータル。型指定SDKフル
~3〜5分船舶リストに対する軽量ウェブ統合。タイプされたSDKフル
約5分チャーターエージェント向けのネイティブAndroidアプリ。タイプされたSDKフル
5分未満ゲストの予約プロセスのためのネイティブiOSアプリ。タイプされたSDKフル
~3〜7分Reactのリストおよび価格更新のためのウェブUI。入力されたSDKフル
迅速な(5分)セットアップクルーのスケジューリング用のエンタープライズ管理アプリ。入力されたSDKフル
2分未満ネストされた船舶および価格クエリのための柔軟なGraphQL API。GraphQL APIフル
迅速な(2分)セットアップマーケットプレイスエンドポイントのためのREST API統合。REST APIフル
約3分チャーター業務のためのサーバーサイドPHPバックエンド。REST APIフル
約3〜7分ブローカーおよびオペレーターツールのための.NETバックエンド。型定義SDKフル

セットアップ時間は、このテンプレートスキーマを使用したプロジェクトのブートストラップから最初のバッセルまたはリスティングクエリまでの予想期間を反映しています。

ヨットチャーターの質問

このテンプレートでのヨットチャーターマーケットプレイスバックエンド構築に関する一般的な質問。

構造化された予約データなしで最も施行が難しいヨットチャーター市場のポリシーはどれですか?
船舶記録とチャーター仕様、ライブチャーターリスト、季節プライシングウィンドウを履行および返却検査にリンクする正しい方法は何ですか?
同じスキーマでヨットチャーター市場のウェイトリスト、ホールド、優先顧客をサポートできますか?
Flutterを使用して船舶リスティングをクエリするにはどうすればよいですか?
Next.js Server Actionsで季節料金を管理するにはどうすれば良いですか?
React Nativeは予約リクエストをオフラインでキャッシュできますか?
無許可のリスティング編集を防ぐにはどうすれば良いですか?
Androidでクルーの割り当てを表示する最良の方法は何ですか?
チャーターブッキングフローはどのように機能しますか?
このヨットチャーターマーケットプレイステンプレートを支えるクラスは何ですか?

世界中の開発者に信頼されています

Back4appテンプレートを使用して、ヨットチャーター市場の商品を迅速に発送するチームに参加しましょう

G2 Users Love Us Badge

ヨットチャーター市場アプリを構築する準備はできましたか?

数分でヨットチャータープロジェクトを開始します。クレジットカードは不要です。

技術を選択