移動労働マーケットプレイス
AIエージェントを使用して構築
移動作業市場バックエンド

移動作業市場バックエンドテンプレート
クルー検索、ブッキング受付、割り当て、レビュー

プロダクション準備完了の 移動作業市場バックエンド が Back4app にあります。CrewListing検索、BookingRequest受付、CrewAssignmentログ、CrewReview記録を含みます。ER図、データ辞書、JSONスキーマ、APIサンドボックス、迅速なブートストラップ用のAIエージェントプロンプトが含まれています。

主なポイント

このテンプレートは、CrewListing検索、BookingRequest受け入れ、CrewAssignment追跡を備えた移動労働マーケットプレイスのバックエンドを提供し、オペレーターが需要と利用可能なクルーをより迅速にマッチングできるようにします。

  1. CrewListing検索時間単価、クルーサイズ、重い物の持ち上げ能力、サービスエリア、機器メモ、可用性ステータスを用いてCrewListingモデルを作成し、購入者が予約前にクルーを比較できるようにします。
  2. BookingRequest受け入れ求人タイトル、移動日、開始時刻、必要な時間、ピックアップ郵便番号、配送郵便番号、重いアイテムを含むBookingRequestを保存し、移動の詳細を把握します。
  3. CrewAssignmentログ各派遣された仕事のために、CrewAssignmentをbookingRequest、crewListing、assignedBy、クルーサイズログ、到着ステータスに結びつけておきます。
  4. CrewReviewの履歴CrewReviewを使用して、評価、コメント、安全フラグを用いて、完了したBookingRequestレコードの結果を追跡します。

移動労働マーケットプレースバックエンドの理解

移動労働マーケットプレースにおいて、運用上の真実はスケジュールです — カレンダーが間違っていると、すべての下流の約束も間違っています。信頼性は特徴であり、脚注ではありません。Back4appのコアエンティティをモデル化して、移動労働マーケットプレースチームに単一のヤードから複数のサイトオペレーションに成長できるバックエンドを提供します。このスキーマは、認証およびマーケットプレースワークフローフィーチャーを備えたUser、CrewListing、BookingRequest、CrewAssignment、CrewReviewをカバーしています。好みのフロントエンドを接続して、迅速に出荷します。

目的に最適:

移動労働マーケットプレース時間制の移動者マッチングプラットフォーム重い荷物を持ち上げるクルー予約アプリローカル移動オペレーターのダッシュボードMVPの立ち上げ労働市場向けにBaaSを選択するチーム

移動労働市場のバックエンド概要

顧客はあなたの内部ツールを気にしません。彼らは、移動労働市場の約束が時間通りに、適切な資産と適切な書類と共に届くかどうかを気にします。

この概要は、誰もがERダイアグラムやJSONエクスポートに飛び込む前に、ユーザーアカウントと役割、クルーリストマーケットプレイスのプロフィール、ブッキングリクエストの取り込みに関してチームを指導します。

コア移動労働マーケットプレイス機能

このハブのすべてのテクノロジーカードは、User、CrewListing、BookingRequest、CrewAssignment、CrewReviewを使用して同じ移動作業バックエンドスキーマを利用しています。

ユーザーアカウントと役割

ユーザーはユーザー名、メールアドレス、役割、表示名、電話番号、およびサービスエリアを保存します。

クルーリスティングのマーケットプレプロフィール

クルーリスティングはタイトル、時給、クルーサイズ、重い物の運搬能力、サービスエリア、および可用ステータスを保存します。

予約リクエストの受け入れ

予約リクエストには職種、移動日、開始時刻、必要時間、ピックアップの郵便番号、ドロップオフの郵便番号、および重いアイテムが記録されます。

クルー割り当ての追跡

クルー割り当ては、bookingRequest、crewListing、assignedBy、crewSizeLogged、およびarrivalStatusをリンクします。

クルー評価フィードバック

クルー評価は、bookingRequest、reviewer、crewListing、rating、comment、およびsafetyFlagを保存します。

なぜBack4appで移動労働市場のバックエンドを構築するのか?

Back4appは、あなたのチームがインフラを配線するのではなく、クルーをマッチングし、移動作業に集中できるように、ユーザー、ブッキングリクエスト、およびクルーリストのプリミティブを提供します。

  • クルーリストと予約管理: User、CrewListing、BookingRequestクラスは、ログインID、serviceArea、moveDate、pickupZip、dropoffZipを1か所に保持します。
  • 割り当てとレビューのフロー管理: CrewAssignmentとCrewReviewのレコードは、dispatch後にcrewSizeLogged、arrivalStatus、rating、safetyFlagを可視化します。
  • リアルタイム + APIの柔軟性: 予約リクエストの更新にはLive Queriesを使用し、同時にdispatchダッシュボードのためにRESTとGraphQLを利用可能にします。

すべてのプラットフォームで1つのバックエンド契約により、移動労働機能を迅速に構築および反復します。

コアの利点

データレイヤーを再構築することなくリードからクルーアサインメントへの移行を助ける動く労働バックエンド。

より速い予約受付

新しい移動フォームを考案するのではなく、moveDate、startTime、hoursNeeded、pickupZip、およびdropoffZipを使用してBookingRequestから始める。

明確なクルー能力チェック

CrewListingを使用してheavyLiftingCapability、crewSize、およびequipmentNotesを表示し、出発前に階段の運搬、ドーリー、およびストラップを確認できるようにする。

監査可能なクルーアサインメント

CrewAssignmentは、予約リクエスト、クルーリスト、割り当て者、記録されたクルーサイズ、および到着状況をジョブが確認されたときに表示します。

オペレーターと作業者のためのスコープアクセス

ACL/CLPを使用して、適切なユーザーだけがUser、CrewListing、BookingRequest、およびCrewAssignmentの行を編集できるようにします。

労働とレビューの履歴

スキーマを壊すことなく、BookingRequest ステータスの変更、CrewAssignment タイムスタンプ、および CrewReview 評価を保存します。

AI ブートストラップワークフロー

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

移動労働マーケットプレイスを立ち上げる準備はできましたか?

Back4app AI エージェントに、移動労働のバックエンドをスキャフォールディングし、CrewListing、BookingRequest、CrewAssignment、CrewReview のフローを 1 つのプロンプトから生成させましょう。

開始は無料 - 月に 50 の AI エージェントプロンプト、クレジットカードは不要

引越し労働技術スタック

この引越し労働マーケットプレイスバックエンドテンプレートに含まれるすべて。

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

マーケットプレイスクラス図

移動労働マーケットプレイスバックエンドスキーマに対するエンティティ関係モデルです。

図のソースを表示
Mermaid
erDiagram
    User ||--o{ CrewListing : "owner"
    User ||--o{ BookingRequest : "buyer"
    User ||--o{ CrewAssignment : "assignedBy"
    User ||--o{ CrewReview : "reviewer"
    CrewListing ||--o{ BookingRequest : "preferredCrew"
    CrewListing ||--o{ CrewAssignment : "crewListing"
    CrewListing ||--o{ CrewReview : "crewListing"
    BookingRequest ||--o{ CrewAssignment : "bookingRequest"
    BookingRequest ||--o{ CrewReview : "bookingRequest"

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

    CrewListing {
        String objectId PK
        String title
        Number hourlyRate
        Number crewSize
        Boolean heavyLiftingCapability
        String serviceArea
        String equipmentNotes
        String availabilityStatus
        String ownerId FK
        Date createdAt
        Date updatedAt
    }

    BookingRequest {
        String objectId PK
        String jobTitle
        Date moveDate
        String startTime
        Number hoursNeeded
        String pickupZip
        String dropoffZip
        Boolean heavyItems
        String status
        String buyerId FK
        String preferredCrewId FK
        Date createdAt
        Date updatedAt
    }

    CrewAssignment {
        String objectId PK
        String bookingRequestId FK
        String crewListingId FK
        String assignedById FK
        Number crewSizeLogged
        String arrivalStatus
        Date startedAt
        Date finishedAt
        Date createdAt
        Date updatedAt
    }

    CrewReview {
        String objectId PK
        String bookingRequestId FK
        String reviewerId FK
        String crewListingId FK
        Number rating
        String comment
        Boolean safetyFlag
        Date createdAt
        Date updatedAt
    }

予約ワークフローシーケンス

ログイン、クルーリスティング検索、予約リクエスト作成、クルーアサインメント記録、クルーレビュー更新の典型的な実行フロー。

図のソースを表示
Mermaid
sequenceDiagram
  participant Buyer
  participant App as Moving Labor Marketplace App
  participant Back4app as Back4app Cloud

  Buyer->>App: Login
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  Buyer->>App: Search crew listings by hourlyRate, crewSize, and heavyLiftingCapability
  App->>Back4app: GET /classes/CrewListing?where=...
  Back4app-->>App: Matching CrewListing rows

  Buyer->>App: Submit BookingRequest for a moveDate and hoursNeeded
  App->>Back4app: POST /classes/BookingRequest
  Back4app-->>App: BookingRequest objectId

  Operator->>App: Assign CrewAssignment and log crewSizeLogged
  App->>Back4app: POST /classes/CrewAssignment
  Back4app-->>App: Assignment saved

  App->>Back4app: Live query updates for BookingRequest status and CrewReview
  Back4app-->>App: Updated move workflow and ratings

フィールド辞書

移動労働市場スキーマ内のすべてのクラスに対するフィールドレベルの完全なリファレンス。

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (buyer, seller, operator)
displayNameStringPublic name shown in the marketplace
phoneNumberStringContact phone number
serviceAreaStringPrimary metro area or region served
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

10 フィールドが User にあります

ユーザー、クルー、および予約のアクセスルール

ACL と CLP 戦略がユーザー、クルーリスト、予約リクエスト、クルーアサインメント、およびクルーレビューをどのように保護するか。

ユーザープロファイルコントロール

アカウントの所有者またはオペレーターのみが、ユーザー名、役割、表示名、電話番号、およびサービスエリアを更新できます。

予約の整合性

購入者またはディスパッチャーのみがBookingRequestおよびCrewAssignmentの行を作成、編集、またはキャンセルできます。

スコープ付きレビューの可視性

CrewReviewの読み取りを一致するBookingRequestの参加者および承認されたオペレーターに制限します。

JSONスキーマ

Back4appにコピーするための生のJSONスキーマ定義または実装リファレンスとして使用できる。

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": true
        },
        "phoneNumber": {
          "type": "String",
          "required": false
        },
        "serviceArea": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CrewListing",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "hourlyRate": {
          "type": "Number",
          "required": true
        },
        "crewSize": {
          "type": "Number",
          "required": true
        },
        "heavyLiftingCapability": {
          "type": "Boolean",
          "required": true
        },
        "serviceArea": {
          "type": "String",
          "required": true
        },
        "equipmentNotes": {
          "type": "String",
          "required": false
        },
        "availabilityStatus": {
          "type": "String",
          "required": true
        },
        "owner": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "BookingRequest",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "jobTitle": {
          "type": "String",
          "required": true
        },
        "moveDate": {
          "type": "Date",
          "required": true
        },
        "startTime": {
          "type": "String",
          "required": true
        },
        "hoursNeeded": {
          "type": "Number",
          "required": true
        },
        "pickupZip": {
          "type": "String",
          "required": true
        },
        "dropoffZip": {
          "type": "String",
          "required": true
        },
        "heavyItems": {
          "type": "Boolean",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "buyer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "preferredCrew": {
          "type": "Pointer",
          "required": false,
          "targetClass": "CrewListing"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CrewAssignment",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "bookingRequest": {
          "type": "Pointer",
          "required": true,
          "targetClass": "BookingRequest"
        },
        "crewListing": {
          "type": "Pointer",
          "required": true,
          "targetClass": "CrewListing"
        },
        "assignedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "crewSizeLogged": {
          "type": "Number",
          "required": true
        },
        "arrivalStatus": {
          "type": "String",
          "required": true
        },
        "startedAt": {
          "type": "Date",
          "required": false
        },
        "finishedAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CrewReview",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "bookingRequest": {
          "type": "Pointer",
          "required": true,
          "targetClass": "BookingRequest"
        },
        "reviewer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "crewListing": {
          "type": "Pointer",
          "required": true,
          "targetClass": "CrewListing"
        },
        "rating": {
          "type": "Number",
          "required": true
        },
        "comment": {
          "type": "String",
          "required": false
        },
        "safetyFlag": {
          "type": "Boolean",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AIエージェントで構築

このテンプレートからフロントエンド、バックエンド、認証、CrewListing、BookingRequest、CrewAssignment、およびCrewReviewのフローを含む実際の動的労働市場アプリを生成するためにBack4app AIエージェントを使用します。

Back4app AIエージェント
ビルドの準備が整いました
この正確なスキーマと動作を使用して、Back4app 上に安全な移動作業マーケットプレイスアプリのバックエンドを作成します。

スキーマ:
1. ユーザー: ユーザー名 (文字列, 必須), メール (文字列, 必須), パスワード (文字列, 必須), ロール (文字列, 必須), 表示名 (文字列, 必須), 電話番号 (文字列, オプション), サービスエリア (文字列, オプション); objectId, createdAt, updatedAt (システム).
2. クルーリスティング: タイトル (文字列, 必須), 時間単価 (数値, 必須), クルーサイズ (数値, 必須), 重量物持ち上げ能力 (真偽値, 必須), サービスエリア (文字列, 必須), 機材ノート (文字列, オプション), 利用状況 (文字列, 必須), オーナー (ユーザーへのポインタ, 必須); objectId, createdAt, updatedAt (システム).
3. 予約リクエスト: 職務名 (文字列, 必須), 移動日 (日付, 必須), 開始時間 (文字列, 必須), 必要時間 (数値, 必須), ピックアップZIP (文字列, 必須), ドロップオフZIP (文字列, 必須), 重量物 (真偽値, 必須), ステータス (文字列, 必須), バイヤー (ユーザーへのポインタ, 必須), 希望するクルー (クルーリスティングへのポインタ, オプション); objectId, createdAt, updatedAt (システム).
4. クルー割り当て: 予約リクエスト (予約リクエストへのポインタ, 必須), クルーリスティング (クルーリスティングへのポインタ, 必須), 割り当てたユーザー (ユーザーへのポインタ, 必須), 登録クルーサイズ (数値, 必須), 到着状況 (文字列, 必須), 開始時刻 (日付, オプション), 終了時刻 (日付, オプション); objectId, createdAt, updatedAt (システム).
5. クルーレビュー: 予約リクエスト (予約リクエストへのポインタ, 必須), レビュアー (ユーザーへのポインタ, 必須), クルーリスティング (クルーリスティングへのポインタ, 必須), 評価 (数値, 必須), コメント (文字列, オプション), 安全対策フラグ (真偽値, オプション); objectId, createdAt, updatedAt (システム).

セキュリティ:
- バイヤーは予約リクエストレコードを作成し、自分の予約を読むことができます。
- 売り手は自分のクルーリスティングレコードを管理できます。
- オペレーターはクルー割り当てレコードを作成し、予約リクエストのステータスを更新できます。
- クルーレコードは完了した予約後にのみ作成する必要があります。

動作:
- 時間単価、クルーサイズ、重量物持ち上げ能力、サービスエリアでクルーを検索します。
- 移動日と必要時間を指定した予約リクエストを作成します。
- クルーを割り当て、登録クルーサイズをログします。
- 仕事後の評価と安全フィードバックを収集します。

提供:
- Back4app アプリ、スキーマ、ACL、CLP、バイヤー、売り手、オペレーター用のUIフローを含む、クルーリスティング検索、予約リクエストの受け入れ、クルー割り当ての追跡、クルーレビューのキャプチャを行います。

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

これはテクノロジーサフィックスなしの基本プロンプトです。生成されたフロントエンドスタックはその後に適応できます。

数分で展開月あたり50件の無料プロンプトクレジットカードは不要

API サンドボックス

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

プレイグラウンドを読み込んでいます…

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

スタックを選択

各カードを展開して、選択したスタックで CrewListing、BookingRequest、CrewAssignment を統合する方法を確認してください。

Flutter 移動労働マーケットプレイスバックエンド

React 移動労働マーケットプレイスバックエンド

React ネイティブ 移動労働マーケットプレイスバックエンド

Next.js 移動労働マーケットプレイスバックエンド

JavaScript 移動労働マーケットプレイスバックエンド

Android 移動労働マーケットプレイスバックエンド

iOS 移動労働マーケットプレイスバックエンド

Vue 移動労働マーケットプレイスバックエンド

Angular 移動労働マーケットプレイスバックエンド

GraphQL 移動労働マーケットプレイスバックエンド

REST API 移動労働マーケットプレイスバックエンド

PHP 移動労働マーケットプレイスバックエンド

.NET 移動労働マーケットプレイスバックエンド

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

すべてのスタックは同じ移動労働バックエンドスキーマとAPI契約を使用します。

統一された移動労働データ構造

一貫したスキーマで User、CrewListing、BookingRequest、CrewAssignment、CrewReview を簡単に管理できます。

レートとサイズによるクルーのマッチング

クルーリストの行を比較し、各移動リクエストに適切なクルーサイズを割り当てます。

重い荷物の運搬能力追跡

各クルーリストにheavyLiftingCapabilityとequipmentNotesを添付してください。

カスタマイズ可能なオペレーターのワークフロー

バイヤー、売り手、オペレーター向けに調整されたアクセスレベルと権限を定義します。

移動労働マーケットプレイスフレームワークの比較

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

フレームワークセットアップ時間移動労働マーケットプレイスの利点SDKタイプAIサポート
約5分モバイルとウェブ用の移動業者派遣のための単一のコードベース。型安全SDKフル
5分未満クルーのリストと予約のための高速ウェブダッシュボード。型安全SDKフル
~3〜7分移動業者 dispatch のためのクロスプラットフォームモバイルアプリ。型付きSDKフル
迅速(5分)設定移動労働作業のためのサーバーレンダリングウェブアプリ。型付きSDKフル
~3〜5分労働マッチングのための軽量ウェブ統合。型付きSDKフル
約5分引越し業者と配達員のためのネイティブAndroidアプリ。タイプされたSDKフル
5分未満引越し業者調整のためのネイティブiOSアプリ。タイプされたSDKフル
約3〜7分労働市場オペレーションのためのReact的なウェブUI。タイプされたSDKフル
急速(5分)セットアップディスパッチワークフローのためのエンタープライズWebアプリ。タイプされたSDKフル
2分未満労働マッチングのための柔軟なGraphQL API。GraphQL APIフル
迅速な(2分)セットアップ労働システムを移動するためのREST API統合。REST APIフル
約3分労働派遣のためのサーバーサイドPHPバックエンド。REST APIフル
~3〜7分.NETは移動労働操作のためのバックエンドです。タイプされたSDKフル

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

ヘルプセンター

このテンプレートを使用して移動労働マーケットプレイスのバックエンドを構築する際の一般的な質問。

移動労働マーケットプレイスのオペレーターは、第二の場所に拡大する際に何を最初に取り組むべきですか?
移動労働マーケットプレイスは、予約、競合、預金をどのように1つの一貫したグラフでモデル化すべきですか?
移動労働マーケットプレイスのカタログの複雑さが季節ごとに跳ね上がると、移行はどのようなものになりますか?
Flutter でクルーと予約のクエリをどのように実行しますか?
Next.js Server Actions で移動労働マーケットプレイスのアクセスをどのように管理しますか?
Reactはネイティブにクルーリストと移動リクエストをオフラインでキャッシュできますか?
無許可のクルー割り当ての変更を防ぐにはどうすればよいですか?
Android上でクルーや割り当てを表示する最良の方法は何ですか?
移動労働のフローはどのようにエンドツーエンドで機能しますか?

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

Back4appテンプレートを使って、移動労働マーケットプレイス製品を迅速に出荷するチームに参加しましょう。

G2 Users Love Us Badge

移動労働マーケットプレイスを構築する準備はできましたか?

数分で移動労働プロジェクトを開始します。クレジットカードは不要です。

技術を選択