ヨットチャーターマーケットプレイスバックエンドテンプレート
チャーター業務のためのユーザー、船舶、リスティング、予約、およびクルーアサインメント
ユーザー、船舶、リスティング、季節価格、予約、クルーアサインメントのワークフローを持つ、Back4app 上のヨットチャーターマーケットプレイスバックエンド。ER図、データ辞書、JSONスキーマ、APIプレイグラウンド、および迅速なブータップのためのAIエージェントプロンプトが含まれています。
チャーターバックエンドのポイント
このテンプレートは、オペレーターがフリートの供給、ゲストの予約、クルーのカバレッジを迅速に調整できるように、ユーザー、船舶、リスティング、季節料金、予約、クルー割り当てを含むヨットチャーターのバックエンドを提供します。
- 船舶リスティング構造 — 各船舶を名前、タイプ、容量、出港地、オペレーターでモデル化し、その後リスティングを通じて公開します。
- 季節料金ルール — 季節料金を季節料金に保存し、ピークシーズン、肩のシーズン、柔軟な価格設定ウィンドウを各リスティングに対して明示的に保つことができます。
- クルー予約ワークフロー — キャプテン、シェフ、スチュワード、デッキハンドの予約記録に対してクルー割り当て行を追跡します。
- マーケットプレイスの可視性 — Back4app クエリと Live Queries を使用して、公開されたリスティング行、季節価格ウィンドウ、および予約ステータスを最新の状態に保ちます。
ヨットチャーター市場のバックエンドの理解
季節性はヨットチャーター市場に大きな影響を与えます。履歴がなければ、需要、人員、または未使用在庫に tied された資本を予測することはできません。詳細は任意ではありません。Back4app で Vessel、Listing、SeasonalPricing、Booking、および CrewAssignment を使用して、ヨットチャーター市場の可用性、価格フック、そして履行記録を1つの統合されたバックエンドにエンコードします。このスキーマは、User(ユーザー名、メールアドレス、パスワード、役割、表示名)、Vessel(名前、タイプ、収容人数、ホームポート、オペレーター、アクティブかどうか)、Listing(船、タイトル、説明、ステータス、基本通貨、フィーチャー画像URL、オペレーター)、SeasonalPricing(リスティング、シーズン名、開始日、終了日、一泊料金、預金額、柔軟性)、Booking(リスティング、ゲスト、チェックイン日、チェックアウト日、ゲスト数、ステータス、合計金額、特別リクエスト)、および CrewAssignment(予約、クルーメンバー名、役割、シフト開始、シフト終了、ステータス)を含み、認証およびマーケットプレイスのワークフローが組み込まれています。お好みのフロントエンドを接続して、より早く出荷しましょう。
最適:
ヨットチャーターマーケットプレイス:バックエンドスナップショット
ヨットチャーターマーケットプレイスは、単にスピードだけでなく、「それが本当だとどうして知っていたのか見せてください」と誰かに聞かれたときの防御性についても重要です。
ハブは、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エージェントプロンプト、クレジットカードは不要です。
テクノロジースタック
このヨットチャーターマーケットプレイスのバックエンドテンプレートに含まれているすべて。
チャーターエンティティダイアグラム
ヨットチャーター市場スキーマのエンティティ関係モデル。
ヨット船舶、チャータリスティング、季節料金、予約、クルーアサインメントをカバーするスキーマ。
ダイアグラムソースを見る
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
}
チャーター統合フロー
ログイン、船舶リスティング、季節料金の更新、予約リクエスト、およびクルースケジューリングのための典型的なランタイムフロー。
ダイアグラムソースを見る
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フィールドガイド
ヨットチャーターマーケットプレイススキーマ内のすべてのクラスに対するフルフィールドレベルリファレンス。
| フィールド | タイプ | 説明 | 必須 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自動 |
| username | String | Account username for sign in | |
| String | Primary email address for the marketplace account | ||
| password | String | Hashed password (write-only) | |
| role | String | Account role such as buyer, seller, or operator | |
| displayName | String | Public name shown in charter and fleet workflows | — |
| createdAt | Date | Auto-generated creation timestamp | 自動 |
| updatedAt | Date | Auto-generated last-update timestamp | 自動 |
8 フィールド User において
チャーターデータのアクセス制御
ACLとCLP戦略がユーザー、船舶、リスト、料金、予約、クルーの割り当てをどのように保護するか。
オーナーが管理するチャーター在庫
オーナーまたはブローカーのみが、彼らの艦隊のために船舶およびリストのレコードを作成または更新できます。
スコープ付き価格変更
季節価格の更新は許可されたオペレーターに限定されるべきであり、夜間料金の変更が追跡可能であるべきです。
予約と乗組員アクセスの境界
予約および乗組員割り当ての読み取りは関連するブローカー、オーナー、オペレーターの役割に制限されるべきです。
JSONスキーマ
生のJSONスキーマ定義は、Back4appにコピーするか、実装参照として使用する準備ができています。
{
"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 バックエンドを作成します。 スキーマ: 1. ユーザー(Back4app の内蔵機能を使用):ユーザー名、メール、パスワード、役割、表示名。 2. 船舶:名前、タイプ、容量、ホームポート、オペレーター(ユーザーへのポインター)、アクティブかどうか。 3. リスティング:船舶(船舶へのポインター)、タイトル、説明、ステータス、基本通貨、特集画像URL、オペレーター(ユーザーへのポインター)。 4. 季節料金:リスティング(リスティングへのポインター)、シーズン名、開始日、終了日、一泊料金、デポジット金額、柔軟性。 5. 予約:リスティング(リスティングへのポインター)、ゲスト(ユーザーへのポインター)、チェックイン日、チェックアウト日、ゲスト数、ステータス、合計価格、特別リクエスト。 6. クルー割り当て:予約(予約へのポインター)、クルーメンバー名、役割、シフト開始、シフト終了、ステータス。 セキュリティ: - オペレーターは自分の船舶、リスティング、季節料金、クルー割り当てのエントリを作成および編集できます。 - 購入者は予約リクエストを作成し、自分の予約を表示できます。 - リスティングのオペレーターのみがリスティングを一時停止または公開できます。 - クルー割り当ての記録は、実際の予約にリンクされている必要があります。 動作: - 公開されたリスティングを閲覧し、船舶の詳細を比較し、季節料金を読み、チャーターをリクエストし、確認済みの予約のためにクルーを割り当てます。 - ログイン、サインアップ、予約管理、フリート管理、価格管理をサポートします。 提供: - スキーマ、CLP、ACL、および船舶、リスティング、季節料金、予約、およびクルー割り当てのサンプルマーケットプレイスデータを備えた Back4app アプリ。
下のボタンを押して、このテンプレートプロンプトが事前に入力されたエージェントを開いてください。
これは技術接尾辞なしの基本プロンプトです。生成されたフロントエンドスタックは後で適応できます。
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 | フル |
セットアップ時間は、このテンプレートスキーマを使用したプロジェクトのブートストラップから最初のバッセルまたはリスティングクエリまでの予想期間を反映しています。
ヨットチャーターの質問
このテンプレートでのヨットチャーターマーケットプレイスバックエンド構築に関する一般的な質問。