チューターマーケット
AIエージェントで構築
チューター市場バックエンド

チューター市場バックエンドテンプレート
チュータープロフィール、科目オファー、そして確認済みの予約

プロダクション準備完了の チューターマーケットプレイスバックエンド が Back4app にあり、TutorProfile、SubjectOffer、LessonRequest、Booking、BackgroundCheck、Review レコードを含みます。ER ダイアグラム、データ辞書、JSON スキーマ、API サンドボックス、そして迅速なブートストラップのための AI エージェント プロンプトが含まれています。

得られるもの

このテンプレートは、学生、チューター、オペレーターがより迅速にマッチングを調整できるように、TutorProfile、SubjectOffer、LessonRequest、Booking、BackgroundCheck、Reviewを備えたチューターマーケットプレイスのバックエンドを提供します。

  1. TutorProfileの発見学習者がfeaturedSubject、level、mode、hourlyRateでフィルタリングできるように、TutorProfileおよびSubjectOfferレコードをモデル化します。
  2. BackgroundCheckの可視性オペレーターが手動検索なしで認証されたチューターを表示できるように、BackgroundCheckの状態、checkVendor、およびreferenceCodeを公開します。
  3. 学生のフィードバック信号レビューエントリを評価、コメント、推奨するかどうかで保存し、学生が実際のレッスンフィードバックを使用してチューターを比較できるようにします。
  4. 予約操作学生、科目オファー、およびスケジュールされたレッスン時間に一致するように、LessonRequestと予約データを調整します。

チューターマーケットプレイスバックエンドの概要

顧客はチューターマーケットプレイスで速度と確実性を重視して買い物をします — つまり、見積もり、保持、確認はリアルタイムの状態を反映する必要があります。コストはコールバックとクレジットに現れます。このテンプレートは、Back4app上でTutorProfile、SubjectOffer、LessonRequest、BackgroundCheck、およびBookingをモデル化しているため、ブッキングロジックをゼロから再構築することなく、機能するチューターマーケットプレイスプラットフォームを立ち上げることができます。スキーマはUser(ユーザー名、メール、役割、フルネーム)、TutorProfile(ユーザー、見出し、バイオ、時給、オンライン授業、検証済み、平均評価、レビュー数、特集科目)、SubjectOffer(チュータープロファイル、科目名、レベル、モード、基本料金、利用可能性のメモ、アクティブ)、LessonRequest(学生、科目オファー、トピック、希望日時、所要時間、ステータス、予算)、BackgroundCheck(チュータープロファイル、チェック業者、ステータス、参照コード、完了日時、メモ)、Booking(学生、チュータープロファイル、レッスンリクエスト、スケジュール日時、所要時間、ステータス、会議リンク)、およびReview(学生、チュータープロファイル、予約、評価、コメント、推奨するかどうか)をカバーし、認証およびマーケットプレイスのワークフローが組み込まれています。好みのフロントエンドを接続して、迅速に出荷してください。

最適:

チューターマーケットプレイス検証済みの学習プラットフォーム科目マッチングアプリ学生レビューシステムマーケットプレイスMVPのローンチBaaSを教育製品のために選択するチーム

このチューターマーケットプレイスのバックエンドの組織方法

最初の受け入れから最終的な承認まで、チューターマーケットプレイスの成功は、すべての人が同じ事実に基づいて働くことに依存しています — それは、部屋で最も大きな声の更新ではありません。

ハブは、プロダクト、オペレーション、およびエンジニアリングが「レコード」と言うときに同じ意味を持つように、TutorProfile、SubjectOffer、およびLessonRequestの言語を一貫させます。

チューターマーケットプレイスの機能

このハブ内のすべてのテクノロジーカードは、ユーザー、チュータープロファイル、科目オファー、レッスンリクエスト、予約、バックグラウンドチェック、およびレビューを使用して、同じチューターマーケットプレイスのバックエンドスキーマを利用しています。

チュータープロフィール管理

チュータープロフィールはヘッドライン、バイオ、時給、注目科目、及び確認済みステータスを保存します。

科目提供検索

科目提供はチュータープロフィール、科目名、レベル、モード、及び基本料金をリンクします。

バックグラウンドチェックのステータス追跡

バックグラウンドチェックはチュータープロフィール、ステータス、チェックベンダー、及び完了日時をキャプチャします。

レッスンリクエストの取り込み

レッスンリクエストは、学生、科目オファー、トピック、希望日時、所要時間、ステータス、および予算を格納します。

予約とレビューのワークフロー

予約とレビューは、スケジュールされたレッスンと学生フィードバックをつなげます。

Back4appであなたのチューターマーケットプレイスバックエンドを構築する理由は?

Back4appは、あなたのチームがインフラを配線するのではなく、確認された専門知識を持つ学習者とのマッチングに集中できるように、チュータ、オファー、予約、レビュー、およびスクリーニングのプリミティブを提供します。

  • チュータープロフィールと科目提供を1つのモデルで: チュータープロフィールの記録を各チューターに結びつけながら、SubjectOfferにsubjectName、level、mode、およびbaseRateを保存します。
  • 検証を確認できます: 背景チェックのステータスとreferenceCodeを追跡して、オペレーターがスプレッドシートを追うことなく認証されたチューターを表示できるようにします。
  • リアルタイムの発見と予約の更新: Live Queriesを使用して、予約とレビューの変更を行い、RESTとGraphQLはすべてのクライアント向けに利用可能なままにします。

チューターマーケットプレイスのバックエンドを1回構築し、その後、ウェブ、モバイル、オペレーター用ツールで同じ契約を再利用します。

チューター市場の利点

より明確なマッチング信号と少ないスキーマ変更で立ち上げを助けるチューター市場のバックエンド。

より迅速なチューターマッチング

マーケットプレイスの流れをゼロから設計するのではなく、TutorProfile、SubjectOffer、LessonRequestから始める。

購入者に見える検証

Bookingが確認される前に、誰が審査に合格したかを示すためにBackgroundCheckステータスを使用する。

レビューに基づく発見

学生のフィードバックがチューターの可視性に影響を与えるように、レビューの評価とコメントデータを表示する。

よりクリーンな予約記録

オペレーターの監査証跡のために、Booking記録をLessonRequest、TutorProfile、およびscheduledAtのレッスン時間に紐付けて保持する。

主題レベルのマーケットプレイスデータ

SubjectOfferにsubjectName、level、mode、そしてbaseRateを保存し、検索とソートを正確に保つ。

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

一つの構造化されたプロンプトでバックエンドの足場作成と統合ガイダンスを迅速に生成。

あなたのチューターマーケットプレイスアプリをローンチする準備はできましたか?

Back4app AIエージェントにあなたのチューターマーケットプレイスのバックエンドを足場作成させ、TutorProfile、SubjectOffer、LessonRequest、Booking、BackgroundCheck、およびReviewフローを一つのプロンプトから生成。

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

チューターマーケットプレイス技術スタック

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

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

チューター・マーケットプレイス ER モデル

チューターマーケットプレイスバックエンドスキーマのエンティティリレーションモデル。

図のソースを表示
Mermaid
erDiagram
    User ||--o{ TutorProfile : "owns"
    User ||--o{ LessonRequest : "creates"
    User ||--o{ Review : "writes"
    User ||--o{ Booking : "books"

    TutorProfile ||--o{ SubjectOffer : "offers"
    TutorProfile ||--o{ BackgroundCheck : "has"
    TutorProfile ||--o{ Review : "receives"
    TutorProfile ||--o{ Booking : "fulfills"

    SubjectOffer ||--o{ LessonRequest : "selected in"
    SubjectOffer ||--o{ Booking : "used for"

    LessonRequest ||--o{ Booking : "converts to"
    Booking ||--o{ Review : "leads to"

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

    TutorProfile {
        String objectId PK
        String userId FK
        String headline
        String bio
        Number hourlyRate
        Boolean teachesOnline
        Boolean isVerified
        Number averageRating
        Number reviewCount
        String featuredSubject
        Date createdAt
        Date updatedAt
    }

    SubjectOffer {
        String objectId PK
        String tutorProfileId FK
        String subjectName
        String level
        String mode
        Number baseRate
        String availabilityNotes
        Boolean active
        Date createdAt
        Date updatedAt
    }

    LessonRequest {
        String objectId PK
        String studentId FK
        String subjectOfferId FK
        String topic
        Date preferredDateTime
        Number durationMinutes
        String status
        Number budget
        Date createdAt
        Date updatedAt
    }

    Review {
        String objectId PK
        String studentId FK
        String tutorProfileId FK
        String bookingId FK
        Number rating
        String comment
        Boolean wouldRecommend
        Date createdAt
        Date updatedAt
    }

    BackgroundCheck {
        String objectId PK
        String tutorProfileId FK
        String checkVendor
        String status
        String referenceCode
        Date completedAt
        String notes
        Date createdAt
        Date updatedAt
    }

    Booking {
        String objectId PK
        String studentId FK
        String tutorProfileId FK
        String lessonRequestId FK
        Date scheduledAt
        Number durationMinutes
        String status
        String meetingLink
        Date createdAt
        Date updatedAt
    }

チューターマーケットプレイスのフロー

認証、科目提供の発見、レッスンリクエストの受け入れ、予約の作成、およびレビューのキャプチャに関する典型的な実行フロー。

図のソースを表示
Mermaid
sequenceDiagram
  participant Student
  participant TutorMarketApp as Specialized Tutor Market App
  participant Back4app as Back4app Cloud

  Student->>TutorMarketApp: Sign in with username and password
  TutorMarketApp->>Back4app: POST /login
  Back4app-->>TutorMarketApp: Session token

  Student->>TutorMarketApp: Browse SubjectOffer listings
  TutorMarketApp->>Back4app: GET /classes/SubjectOffer?include=tutorProfile
  Back4app-->>TutorMarketApp: SubjectOffer rows with tutorProfile data

  Student->>TutorMarketApp: Open a TutorProfile and read Review scores
  TutorMarketApp->>Back4app: GET /classes/Review?where={"tutorProfile":...}
  Back4app-->>TutorMarketApp: Review list and averageRating fields

  Student->>TutorMarketApp: Submit a LessonRequest
  TutorMarketApp->>Back4app: POST /classes/LessonRequest
  Back4app-->>TutorMarketApp: LessonRequest objectId

  TutorMarketApp->>Back4app: POST /classes/Booking
  Back4app-->>TutorMarketApp: Booking confirmation with scheduledAt

  TutorMarketApp->>Back4app: Live query on Booking and BackgroundCheck status
  Back4app-->>TutorMarketApp: Updated booking and check status

チューターデータ辞書

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

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
usernameStringAccount name used to sign in
emailStringEmail address for account access
passwordStringHashed password (write-only)
roleStringMarketplace role such as buyer, tutor, or operator
fullNameStringDisplay name shown on profiles and reviews
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

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

チューターのセキュリティと権限

ACLおよびCLP戦略がチュータープロフィール、バックグラウンドチェック、予約、およびレビューをどのように保護するか。

チューター所有のプロフィールコントロール

TutorProfile.user にリンクされているチューターのみが、彼らの TutorProfile および SubjectOffer レコードを編集できます。

検証の完全性

バックグラウンドチェックの記録は、オペレーターのワークフローまたは信頼できるクラウドコードによって作成または更新されるべきです。

スコープ付きマーケットプレイスアクセス

LessonRequest、Booking、およびReviewの読み取りを、必要な学生、チューター、オペレーターのロールに制限します。

チュータースキーマ(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
        },
        "fullName": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "TutorProfile",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "user": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "headline": {
          "type": "String",
          "required": true
        },
        "bio": {
          "type": "String",
          "required": true
        },
        "hourlyRate": {
          "type": "Number",
          "required": true
        },
        "teachesOnline": {
          "type": "Boolean",
          "required": true
        },
        "isVerified": {
          "type": "Boolean",
          "required": true
        },
        "averageRating": {
          "type": "Number",
          "required": true
        },
        "reviewCount": {
          "type": "Number",
          "required": true
        },
        "featuredSubject": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SubjectOffer",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "tutorProfile": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TutorProfile"
        },
        "subjectName": {
          "type": "String",
          "required": true
        },
        "level": {
          "type": "String",
          "required": true
        },
        "mode": {
          "type": "String",
          "required": true
        },
        "baseRate": {
          "type": "Number",
          "required": true
        },
        "availabilityNotes": {
          "type": "String",
          "required": true
        },
        "active": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "LessonRequest",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "student": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "subjectOffer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "SubjectOffer"
        },
        "topic": {
          "type": "String",
          "required": true
        },
        "preferredDateTime": {
          "type": "Date",
          "required": true
        },
        "durationMinutes": {
          "type": "Number",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "budget": {
          "type": "Number",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Review",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "student": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "tutorProfile": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TutorProfile"
        },
        "booking": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Booking"
        },
        "rating": {
          "type": "Number",
          "required": true
        },
        "comment": {
          "type": "String",
          "required": true
        },
        "wouldRecommend": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "BackgroundCheck",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "tutorProfile": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TutorProfile"
        },
        "checkVendor": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "referenceCode": {
          "type": "String",
          "required": true
        },
        "completedAt": {
          "type": "Date",
          "required": false
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Booking",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "student": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "tutorProfile": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TutorProfile"
        },
        "lessonRequest": {
          "type": "Pointer",
          "required": true,
          "targetClass": "LessonRequest"
        },
        "scheduledAt": {
          "type": "Date",
          "required": true
        },
        "durationMinutes": {
          "type": "Number",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "meetingLink": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AIエージェントでチューターアプリを構築

このテンプレートから、フロントエンド、バックエンド、認証、科目マッチング、バックグラウンドチェック、レビューの流れを含む実際のチューターマーケットプレイスアプリを生成するために、Back4app AIエージェントを使用します。

Back4app AIエージェント
構築の準備ができました
この正確なスキーマと動作で、Back4app上にチューターマーケットプレイスアプリのバックエンドを作成します。

スキーマ:
1. User: ユーザー名、メール、パスワード、役割、フルネーム。
2. TutorProfile: user(Userへのポインタ、必須)、見出し、経歴、時給、オンライン教材、確認済み、平均評価、レビュー数、特集科目。
3. SubjectOffer: tutorProfile(TutorProfileへのポインタ、必須)、科目名、レベル、モード、基本料金、利用可能性メモ、アクティブ。
4. LessonRequest: student(Userへのポインタ、必須)、subjectOffer(SubjectOfferへのポインタ、必須)、トピック、希望日時、期間(分)、ステータス、予算。
5. BackgroundCheck: tutorProfile(TutorProfileへのポインタ、必須)、チェックベンダー、ステータス、参照コード、完了日時、メモ。
6. Booking: student(Userへのポインタ、必須)、tutorProfile(TutorProfileへのポインタ、必須)、lessonRequest(LessonRequestへのポインタ、必須)、スケジュール日時、期間(分)、ステータス、ミーティングリンク。
7. Review: student(Userへのポインタ、必須)、tutorProfile(TutorProfileへのポインタ、必須)、booking(Bookingへのポインタ、必須)、評価、コメント、推薦するかどうか。

セキュリティ:
- チューターは自身のTutorProfileとSubjectOfferレコードを編集できます。BackgroundCheckの更新は、信頼できるクラウドコードまたはオペレーターの役割で処理されるべきです。

認証:
- サインアップ、ログイン、ログアウト。

動作:
- チューターのリスト、科目オファーの検索、レッスンリクエストの提出、予約の確認、レビューの投稿を行います。

配信:
- スキーマ、ACLs、CLPsを持つBack4appアプリ; チュータープロフィール、科目検索、予約リクエスト、バックグラウンドチェックステータス、学生レビューのためのフロントエンド。

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

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

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

チューターAPIサンドボックス

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

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

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

スタックを選択

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

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

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

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

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

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

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

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

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

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

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

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

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

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

すべての技術で得られるもの

すべてのスタックは同じ家庭教師マーケットプレイスのバックエンドスキーマとAPI契約を使用します。

統一された家庭教師マーケットプレイスのデータ構造

ユーザー、TutorProfile、SubjectOffer、LessonRequest、Booking、BackgroundCheck、Reviewを1つの契約で管理します。

チューターマーケットプレイス の専門分野検索

主題、レベル、価格、モードでチューターをフィルタリングして、バックエンドを再書き込みせずに行います。

チューターマーケットプレイス のバックグラウンドチェックの可視性

学生がレッスンを予約する前に確認済みのステータスを表示します。

チューターマーケットプレイス に対する学生のレビューシグナル

評価やコメントがマーケットプレイスのランキングと信頼に影響を与えるようにします。

チューターマーケットプレイススタック比較

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

フレームワークセットアップ時間チューターマーケットプレイスの利点SDK タイプAI サポート
約5分モバイルとウェブのチューターマーケットプレイス用の単一のコードベース。型付きSDKフル
5分未満チューターの発見と予約のための迅速なウェブダッシュボード。型付きSDKフル
約3〜7分チューター市場向けのクロスプラットフォームモバイルアプリ。型付きSDKフル
迅速な(5分)セットアップチューター検索およびオペレーターツール用のサーバーサイドレンダリングWebアプリ。タイプ付きSDKフル
約3〜5分チューター市場向けの軽量Web統合。タイプ付き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フル

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

チューターマーケットプレイスのFAQs

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

どのチューター市場のポリシーが、構造化された予約データなしでは実施が最も困難ですか?
チュータープロファイル管理、科目オファー検索、バックグラウンドチェックの状況追跡を完了および返却検査にリンクさせる正しい方法は何ですか?
予約ロジックを再構築することなく、新しいチューター市場の料金体系やバンドルをどのように追加しますか?
Flutter でチューター一覧を表示するにはどうすればいいですか?
Next.js Server Actions を使用してチューター市場の予約をどのように管理しますか?
Reactのネイティブキャッシュでチュータープロフィールをオフラインで保存できますか?
未承認のバックグラウンドチェックの編集を防ぐにはどうすればよいですか?
Androidでチューター検索結果を表示する最良の方法は何ですか?

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

Back4appテンプレートでチューターマーケットプレイス製品を迅速に出荷するチームに参加しよう

G2 Users Love Us Badge

チューターマーケットプレイスアプリを構築する準備はできていますか?

数分でチューターマーケットプレイスプロジェクトを始めましょう。クレジットカードは不要です。

テクノロジーを選択