イベントスペース市場のための会場予約バックエンド
会場検索とカレンダー対応の予約
生産準備が整った イベントスペースマーケットプレイスバックエンド on Back4app には、ユーザーアカウント、会場リスト、空きスロットカレンダー、予約ワークフロー、アメニティ記録、問い合わせスレッド、ER図、データ辞書、JSONスキーマ、APIサンドボックス、迅速なブートストラップ用のAIエージェントプロンプトが含まれています。
主なポイント
このテンプレートでは、ユーザー、会場、利用可能スロット、予約リクエスト、設備、問い合わせを含むイベントスペースマーケットプレイスのバックエンドを提供し、チームがデータ層をゼロから設計することなく、購入者、売り手、オペレーターを調整できるようにします。
- キャパシティ優先の会場データ — Venue.capacity、Venue.hourlyRate、およびBookingRequest.guestCountをモデル化し、購入者がリクエストを送信する前にスペースをフィルタリングできるようにします。
- カレンダー対応の可用性 — AvailabilitySlot.startTime、endTime、およびstatusを使用して会場のカレンダーを正確に保ちます。
- 重要な設備リスト — Venue.amenityListおよびAmenity.isIncludedを保存し、購入者が部屋、駐車場、A/V、イベントプランへの準備アクセスを一致させられるようにします。
- マーケットプレイスのワークフロー — 売り手が管理する会場の記録、購入者の予約リクエストのエントリー、およびオペレーターの問い合わせの返信を追跡します。
イベントスペースマーケットプレイステンプレートとは何ですか?
ダブルブッキングは、イベントスペースマーケットプレイスでは単なる恥ではなく、どんなマーケティングキャンペーンがそれを取り戻すよりも早く信頼を損なわせます。信頼性は特徴であり、注釈ではありません。Back4app では、会場、空きスロット、予約リクエスト、アメニティ、および問い合わせが、オペレーターが実際に働く方法に一致するAPIを使用して、見積もりから返却までの完全なイベントスペースマーケットプレイスループをサポートします。スキーマは、ユーザー(ユーザー名、メール、パスワード、役割、表示名、電話番号)、会場(名前、説明、住所、市、収容人数、時間単価、オーナー、アメニティリスト、公開状態)、空きスロット(会場、開始時間、終了時間、ステータス、作成者)、予約リクエスト(会場、ゲスト、イベントタイプ、ゲスト数、要求された開始時間、要求された終了時間、ステータス、予算)、アメニティ(会場、名前、詳細、含まれているか)、および問い合わせ(予約リクエスト、送信者、メッセージ、返信メッセージ、解決済みか)を、認証とマーケットプレイスのルールを組み込んでカバーします。お好みのフロントエンドを接続し、迅速に出荷してください。
最適:
イベントスペースマーケットプレイステンプレートの概要
イベントスペースマーケットプレイステームは、日常業務が退屈なときに成功します:予測可能な記録、明確な所有権、および小さな問題が事故になる前のアラート。
ハブは、異なる5つのドキュメントを開くことなく、Venue、AvailabilitySlot、およびBookingRequestに関する好奇心から明確さへの最速の道です。
会場マーケットプレイスの機能
このハブ内のすべての技術カードは、ユーザー、会場、空きスロット、予約リクエスト、アメニティ、およびお問い合わせを含む同じイベントスペースマーケットプレイススキーマを使用しています。
会場プロファイル
各イベントスペースの会場名、説明、住所、市、収容人数、時間料金、所有者、アメニティリスト、および公開状態。
アメニティ記録
アメニティは会場を名称、詳細、および含まれているかどうかにリンクします。
空き状況スロット
AvailabilitySlotは、会場、開始時間、終了時間、ステータス、および作成者を追跡します。
予約リクエスト
BookingRequest は、会場、ゲスト、イベントタイプ、ゲスト数、要求された開始時刻、要求された終了時刻、ステータス、および予算をキャプチャします。
お問い合わせスレッド
お問い合わせ記録は、bookingRequest、送信者、メッセージ、返信メッセージ、および解決済みかどうかを含みます。
Back4appであなたの施設予約バックエンドを構築する理由は?
Back4appは、あなたのチームがバックエンドを再構築するのではなく、需要を空いているスペースに一致させることに集中できるように、Venue、AvailabilitySlot、BookingRequest、およびInquiryのプリミティブを提供します。
- •会場とリスティング構造: Venue.capacity、Venue.hourlyRate、およびVenue.amenityListは、各スペースに検索可能なマーケットプレイス対応のプロフィールを提供します。
- •空き状況と予約確認: AvailabilitySlot.startTime、AvailabilitySlot.endTime、およびBookingRequest.requestedStartTimeは、承認前にBlockの競合を確認するのに役立ちます。
- •オペレーター向けのリアルタイム更新: Live Queriesを使用してBookingRequestおよびAvailabilitySlotを管理すると、オペレーターはリクエストやカレンダーの変更をリアルタイムで確認できます。
すべてのプラットフォームで1つのバックエンド契約に基づいて、会場検索、問い合わせの返信、カレンダー調整を構築します。
コアマーケットプレイスの利点
キャパシティ制限、アメニティリスト、会場カレンダー用に構築されたバックエンド。
迅速な会場立ち上げ
キャパシティ、hourlyRate、および amenityList のフィールドをゼロから設計するのではなく、会場とアメニティから始めます。
カレンダー安全な予約フロー
AvailabilitySlot と BookingRequest を一緒に使用して、requestedStartTime と requestedEndTime が承認前に Bloc で予約された期間と照合されるようにします。
購入者フィルターの明確化
Venue.city、Venue.capacity、および Venue.amenityList を公開して、購入者がイベントに合わせたスペースへの検索結果を絞り込めるようにします。
売り手に優しい会場管理
ホストが Venue の詳細、AvailabilitySlot のステータス、isPublished の可視性を更新するための一つの場所を提供します。
クエリ準備完了のマーケットプレイスデータ
eventType、guestCount、およびステータスをREST、GraphQL、およびLive Queriesをサポートする方法で保存します。
AI支援のブートストラップ
1つの構造化されたプロンプトでバックエンドスキャフォールドと予約フローを迅速に生成します。
イベントスペースマーケットプレイスを立ち上げる準備はできていますか?
Back4app AIエージェントにマーケットプレイスのバックエンドをスキャフォールドさせ、Venue、AvailabilitySlot、BookingRequest、Amenity、Inquiryフローを1つのプロンプトから生成させましょう。
無料で開始 — 月50回のAIエージェントプロンプト、クレジットカード不要
スタックの概要
このイベントスペースマーケットプレースバックエンドテンプレートにすべてが含まれています。
エンティティマップ
イベントスペースマーケットプレイスバックエンドスキーマのためのエンティティリレーションシップモデル。
ユーザー、会場、利用可能なスロット、予約リクエスト、設備、お問い合わせをカバーするスキーマ。
図のソースを見る
erDiagram
User ||--o{ Venue : "owner"
User ||--o{ AvailabilitySlot : "createdBy"
User ||--o{ BookingRequest : "guest"
User ||--o{ Inquiry : "sender"
Venue ||--o{ AvailabilitySlot : "venue"
Venue ||--o{ BookingRequest : "venue"
Venue ||--o{ Amenity : "venue"
BookingRequest ||--o{ Inquiry : "bookingRequest"
User {
String objectId PK
String username
String email
String password
String role
String displayName
String phoneNumber
Date createdAt
Date updatedAt
}
Venue {
String objectId PK
String name
String description
String address
String city
Number capacity
Number hourlyRate
String ownerId FK
Array amenityList
Boolean isPublished
Date createdAt
Date updatedAt
}
AvailabilitySlot {
String objectId PK
String venueId FK
Date startTime
Date endTime
String status
String createdById FK
Date createdAt
Date updatedAt
}
BookingRequest {
String objectId PK
String venueId FK
String guestId FK
String eventType
Number guestCount
Date requestedStartTime
Date requestedEndTime
String status
Number budget
Date createdAt
Date updatedAt
}
Amenity {
String objectId PK
String venueId FK
String name
String details
Boolean isIncluded
Date createdAt
Date updatedAt
}
Inquiry {
String objectId PK
String bookingRequestId FK
String senderId FK
String message
String replyMessage
Boolean isResolved
Date createdAt
Date updatedAt
}
予約フロー
サインイン、会場検索、利用可能スロットの確認、予約リクエスト、お問い合わせへの返信の典型的な実行フロー。
図のソースを見る
sequenceDiagram
participant Buyer as Buyer
participant App as Event Space Marketplace App
participant Back4app as Back4app Cloud
Buyer->>App: Sign in
App->>Back4app: POST /login
Back4app-->>App: Session token
Buyer->>App: Search venues by capacity and city
App->>Back4app: GET /classes/Venue?where=...&include=owner
Back4app-->>App: Venue results
Buyer->>App: Check availability slots
App->>Back4app: GET /classes/AvailabilitySlot?where={"venue":{"__type":"Pointer","className":"Venue","objectId":"venueId"}}&order=startTime
Back4app-->>App: Open calendar windows
Buyer->>App: Submit booking request
App->>Back4app: POST /classes/BookingRequest
Back4app-->>App: BookingRequest objectId
App->>Back4app: Subscribe to booking updates
Back4app-->>App: Live BookingRequest status changesフィールドガイド
イベントスペースマーケットプレイススキーマ内のすべてのクラスに対する完全なフィールドレベルのリファレンス。
| フィールド | タイプ | 説明 | 必須 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自動 |
| username | String | Account username | |
| String | Contact email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Marketplace role such as buyer, seller, or operator | |
| displayName | String | Public profile name | |
| phoneNumber | String | Primary contact number | — |
| createdAt | Date | Auto-generated creation timestamp | 自動 |
| updatedAt | Date | Auto-generated last-update timestamp | 自動 |
9 フィールドが User にあります
マーケットプレイスの権限
ACLおよびCLP戦略がユーザー、会場、空きスロット、予約リクエスト、設備、問い合わせをどのように保護するか。
オーナースコープの会場制御
オーナーのみが自分の会場および設備のレコードを作成、更新、削除できます。
予約の可視性ルール
購入者は予約リクエストエントリを作成でき、オペレーターはリクエストを確認し、ステータスを変更できます。
カレンダーの整合性
重複するアベイラビリティスロットエントリや容量違反を防ぐためにCloud Codeバリデーションを使用します。
JSONスキーマ
Raw 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": true
},
"phoneNumber": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Venue",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"name": {
"type": "String",
"required": true
},
"description": {
"type": "String",
"required": true
},
"address": {
"type": "String",
"required": true
},
"city": {
"type": "String",
"required": true
},
"capacity": {
"type": "Number",
"required": true
},
"hourlyRate": {
"type": "Number",
"required": true
},
"owner": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"amenityList": {
"type": "Array",
"required": true,
"elementType": "String"
},
"isPublished": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "AvailabilitySlot",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"venue": {
"type": "Pointer",
"required": true,
"targetClass": "Venue"
},
"startTime": {
"type": "Date",
"required": true
},
"endTime": {
"type": "Date",
"required": true
},
"status": {
"type": "String",
"required": true
},
"createdBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "BookingRequest",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"venue": {
"type": "Pointer",
"required": true,
"targetClass": "Venue"
},
"guest": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"eventType": {
"type": "String",
"required": true
},
"guestCount": {
"type": "Number",
"required": true
},
"requestedStartTime": {
"type": "Date",
"required": true
},
"requestedEndTime": {
"type": "Date",
"required": true
},
"status": {
"type": "String",
"required": true
},
"budget": {
"type": "Number",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Amenity",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"venue": {
"type": "Pointer",
"required": true,
"targetClass": "Venue"
},
"name": {
"type": "String",
"required": true
},
"details": {
"type": "String",
"required": false
},
"isIncluded": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Inquiry",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"bookingRequest": {
"type": "Pointer",
"required": true,
"targetClass": "BookingRequest"
},
"sender": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"message": {
"type": "String",
"required": true
},
"replyMessage": {
"type": "String",
"required": false
},
"isResolved": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}AIエージェントで生成
このテンプレートからフロントエンド、バックエンド、認証、会場、スロット、予約、アメニティ、問い合わせのフローを含む実際のイベントスペースマーケットプレイスアプリをBack4app AIエージェントを使用して生成します。
Back4app上でこの正確なスキーマと動作を持つイベントスペースマーケットプレイスアプリのバックエンドを作成します。 スキーマ: 1. ユーザー(Back4appの組み込みを使用):ユーザー名、メール、パスワード、役割、表示名、電話番号;objectId、createdAt、updatedAt(システム)。 2. 会場:名前、説明、住所、都市、収容人数、時間単価、オーナー(ユーザーへのポインタ)、アメニティリスト(Array<String>)、公開状況;objectId、createdAt、updatedAt(システム)。 3. 利用可能時間帯:会場(会場へのポインタ)、開始時間、終了時間、ステータス、作成者(ユーザーへのポインタ);objectId、createdAt、updatedAt(システム)。 4. 予約リクエスト:会場(会場へのポインタ)、ゲスト(ユーザーへのポインタ)、イベントタイプ、ゲスト数、リクエストした開始時間、リクエストした終了時間、ステータス、予算;objectId、createdAt、updatedAt(システム)。 5. アメニティ:会場(会場へのポインタ)、名前、詳細、含まれているか;objectId、createdAt、updatedAt(システム)。 6. 問い合わせ:予約リクエスト(予約リクエストへのポインタ)、送信者(ユーザーへのポインタ)、メッセージ、返信メッセージ、解決済みか;objectId、createdAt、updatedAt(システム)。 セキュリティ: - オーナーのみが自分の会場とアメニティを作成/更新/削除できます。重複するAvailabilitySlotエントリとBookingRequest.capacityの不一致を防ぐために、Cloud Codeを使用してください。 認証: - サインアップ、ログイン、ログアウト。 動作: - 会場をリストし、収容人数とアメニティリストでフィルタし、利用可能時間帯を確認し、予約リクエストを作成し、問い合わせの返信を公開します。 提供: - スキーマ、ACL、CLPを持つBack4appアプリ;会場検索、カレンダー、予約リクエスト、問い合わせの返信用のフロントエンド。
以下のボタンを押して、このテンプレートのプロンプトが事前に入力されたエージェントを開いてください。
これは技術サフィックスなしの基本プロンプトです。生成されたフロントエンドスタックは後で適応できます。
APIサンドボックス
イベントスペースマーケットプレイススキーマに対して、RESTとGraphQLエンドポイントを試してください。レスポンスはモックデータを使用しており、Back4appアカウントは必要ありません。
このテンプレートと同じスキーマを使用します。
スタックを選択
各カードを展開して、選択したスタックでVenue、AvailabilitySlot、BookingRequestを統合する方法を確認してください。
Flutterイベントスペースマーケットプレイスバックエンド
Reactイベントスペースマーケットプレイスバックエンド
React ネイティブイベントスペースマーケットプレイスバックエンド
Next.jsイベントスペースマーケットプレイスバックエンド
JavaScriptイベントスペースマーケットプレイスバックエンド
Androidイベントスペースマーケットプレイスバックエンド
iOSイベントスペースマーケットプレイスバックエンド
Vueイベントスペースマーケットプレイスバックエンド
Angularイベントスペースマーケットプレイスバックエンド
GraphQLイベントスペースマーケットプレイスバックエンド
REST APIイベントスペースマーケットプレイスバックエンド
PHPイベントスペースマーケットプレイスバックエンド
.NETイベントスペースマーケットプレイスバックエンド
すべてのテクノロジーで得られるもの
すべてのスタックは同じイベントスペースマーケットプレイススキーマとAPI契約を使用します。
統一されたイベントスペースデータ構造
一貫したスキーマでユーザー、Venue、AvailabilitySlot、BookingRequest、アメニティ、問い合わせを管理します。
キャパシティに応じた会場検索
キャパシティ、都市、およびアメニティリストで会場をフィルタリングして、バイヤーがリクエストを提出する前に。
カレンダー主導の予約ワークフロー
イベント日と保持日を同期させるために、利用可能なスロットの記録を確認します。
売り手およびオペレーターのコントロール
オーナーポインター、ステータス、および公開状況を使用して、マーケットプレイスの責任を分けます。
イベントスペース用のREST/GraphQL API
ウェブ、モバイル、および管理クライアントを柔軟な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分 | 会場カレンダー用の Reactive ウェブUI。 | タイプされたSDK | フル | |
| 迅速な(5分)セットアップ | マーケットプレイス業務のためのエンタープライズウェブアプリ。 | 入力されたSDK | フル | |
| 2分未満 | 会場と空き情報のクエリ用の柔軟なGraphQL API。 | GraphQL API | フル | |
| 迅速な(2分)セットアップ | 予約ワークフローのためのREST API統合。 | REST API | フル | |
| 約3分 | 会場管理のためのサーバーサイド PHP バックエンド。 | REST API | フル | |
| 約3〜7分 | マーケットプレイス操作のための.NET バックエンド。 | 型付きSDK | フル |
セットアップ時間は、このテンプレートスキーマを使用してプロジェクトのブートストラップから最初の会場または利用可能性のクエリまでの予想時間を反映します。
マーケットプレイスの質問
このテンプレートを使用してイベントスペースマーケットプレイスバックエンドを構築する際の一般的な質問です。