Рынок репетиторов
Создайте с AI Agent
Бэкенд рынка репетиторов

Шаблон бэкенда рынка репетиторов
Профили репетиторов, Предложения по предметам и Подтвержденные бронирования

Готовый к производству бэкенд для рынка репетиторов на Back4app с записями TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck и Review. Включает диаграмму ER, словарь данных, JSON-схему, песочницу API и подсказку AI Agent для быстрого запуска.

Что вы получите

Этот шаблон предлагает бэкенд рынка репетиторов с TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck и Review, чтобы студенты, репетиторы и операторы могли быстрее находить совпадения.

  1. Обнаружение TutorProfileМоделируйте записи TutorProfile и SubjectOffer, чтобы учащиеся могли фильтровать по featuredSubject, level, mode и hourlyRate.
  2. Видимость BackgroundCheckПредставьте статус BackgroundCheck, checkVendor и referenceCode, чтобы операторы могли показывать проверенных репетиторов без ручного поиска.
  3. Сигналы обратной связи студентовХраните записи Review с оценкой, комментарием и готовностью рекомендовать, чтобы помочь студентам сравнивать репетиторов, используя реальные отзывы о занятиях.
  4. Операции бронированияКоординируйте данные о запросах на уроки и бронировании, чтобы соответствовать студенту, предложению предмета и запланированному времени урока.

Бэкенд рынка репетиторов в общих чертах

Лучшее для:

Рынков репетиторов

Подтвержденные образовательные платформыПриложения для сопоставления предметовSubject-matching appsСистемы отзывов студентовЗапуск Marketplace MVPКоманды выбирают BaaS для образовательных продуктов

Как организован бэкенд этого рынка репетиторов

От первого приема до окончательного утверждения успех рынка репетиторов зависит от того, чтобы все работали на основе одних и тех же фактов — а не на основе самого громкого обновления в комнате.

Хаб поддерживает консистентность языка для TutorProfile, SubjectOffer и LessonRequest, так что продукт, операции и инженерия понимают одно и то же, когда говорят «запись».

Функции рынка репетиторов

Каждая технологическая карточка в этом центре использует одну и ту же схему бэкенда рынка репетиторов с User, TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck и Review.

Управление профилем наставника

Профиль наставника содержит заголовок, биографию, почасовую ставку, предлагаемый предмет и статус проверки.

Поиск предложения по предметам

Предложение связывает профиль наставника, название предмета, уровень, режим и базовую ставку.

Отслеживание статуса проверки

Проверка фона фиксирует профиль наставника, статус, поставщика проверки и дату завершения.

Поступление запроса на занятие

Запрос на урок хранит данные о студенте, предложении по предмету, теме, предпочтительном времени, продолжительности в минутах, статусе и бюджете.

Рабочий процесс бронирования и отзывов

Бронирование и отзывы связывают запланированные занятия и отзывы студентов.

Почему стоит строить ваш бэкенд рынка репетиторов на Back4app?

Back4app предоставляет вам примитивы для репетиторов, предложений, бронирования, отзывов и проверки, чтобы ваша команда могла сосредоточиться на сопоставлении учащихся с проверенной экспертизой вместо настройки инфраструктуры.

  • Профиль репетитора и предложение предмета в одной модели: Храните subjectName, уровень, режим и baseRate в предложении предмета, сохраняя записи Профиля репетитора, связанные с каждым репетитором.
  • Проверка, которую вы можете проверить: Отслеживайте статус BackgroundCheck и referenceCode, чтобы операторы могли показывать проверенных репетиторов без необходимости блуждать в электронных таблицах.
  • Обновления обнаружения и бронирования в реальном времени: Используйте Live Queries для изменений в бронировании и отзывах, в то время как REST и GraphQL останутся доступными для каждого клиента.

Создайте бекенд рынка репетиторов один раз, а затем переиспользуйте тот же контракт на вебе, мобильных устройствах и инструментах оператора.

Преимущества рынка репетиторов

Бэкенд рынка репетиторов, который помогает вам запуститься с более ясными сигналами соответствия и меньшими изменениями схемы.

Быстреее соответствие репетиторов

Начните с TutorProfile, SubjectOffer и LessonRequest вместо того, чтобы разрабатывать поток рынка с нуля.

Верификация, видимая для покупателей

Используйте статус BackgroundCheck, чтобы показать, кто прошел проверку перед подтверждением бронирования.

Обнаружение на основе отзывов

Поверхностные данные рейтинга и комментариев отзывов, чтобы отзывы студентов влияли на видимость репетиторов.

Чистые записи бронирования

Сохраняйте записи бронирования, связанные с LessonRequest, TutorProfile и запланированными временем урока для аудита операторов.

Данные рынка на уровне предмета

Храните subjectName, level, mode и baseRate в SubjectOffer, чтобы поиск и сортировка оставались точными.

Рабочий процесс AI bootstrap

Сгенерируйте быструю инфраструктуру для бэкенда и руководство по интеграции с помощью одного структурированного запроса.

Готовы запустить приложение для вашего рынка репетиторов?

Пусть Back4app AI Agent создаст ваш бэкенд рынка репетиторов и сгенерирует потоки TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck и Review из одного запроса.

Бесплатно для начала — 50 запросов AI Agent в месяц, кредитная карта не требуется

Стек технологий рынка репетиторов

Все включено в этот шаблон для бэкенда рынка репетиторов.

Фронтенд
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.

Целостность проверки

Записи BackgroundCheck должны быть созданы или обновлены рабочими процессами оператора или доверенным Cloud Code.

Доступ к рынку с ограничениями

Ограничьте чтение LessonRequest, Booking и Review для ролей студента, репетитора и оператора, которым они необходимы.

Схема репетитора (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
        },
        "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-агентом

Используйте AI-агента Back4app для создания приложения реального рынка репетиторов из этого шаблона, включая фронтенд, бэкенд, аутентификацию, соответствие предметам, проверку фона и потоки отзывов.

AI-агент Back4app
Готовы приступить к разработке
Создайте бэкэнд приложения рынка репетиторов на Back4app с этой точной схемой и поведением.

Схема:
1. Пользователь: имя пользователя, электронная почта, пароль, роль, полное имя.
2. Профиль репетитора: пользователь (Указатель на Пользователя, обязательный), заголовок, биография, почасовая ставка, обучает онлайн, подтвержден, средний рейтинг, количество отзывов, представляемый предмет.
3. Предложение по предмету: профиль репетитора (Указатель на Профиль репетитора, обязательный), название предмета, уровень, режим, базовая ставка, примечания по доступности, активен.
4. Запрос на урок: студент (Указатель на Пользователя, обязательный), предложение по предмету (Указатель на Предложение по предмету, обязательный), тема, предпочтительная дата и время, продолжительность в минутах, статус, бюджет.
5. Проверка фона: профиль репетитора (Указатель на Профиль репетитора, обязательный), поставщик проверки, статус, код ссылки, завершено, примечания.
6. Бронирование: студент (Указатель на Пользователя, обязательный), профиль репетитора (Указатель на Профиль репетитора, обязательный), запрос на урок (Указатель на Запрос на урок, обязательный), запланировано на, продолжительность в минутах, статус, ссылка на встречу.
7. Отзыв: студент (Указатель на Пользователя, обязательный), профиль репетитора (Указатель на Профиль репетитора, обязательный), бронирование (Указатель на Бронирование, обязательный), рейтинг, комментарий, порекомендовали бы.

Безопасность:
- Репетиторы могут редактировать свои собственные записи Профиля репетитора и Предложения по предмету. Обновления Проверки фона должны обрабатываться доверенным облачным кодом или ролями операторов.

Авторизация:
- Регистрация, вход, выход.

Поведение:
- Список репетиторов, поиск предложений по предметам, отправка запросов на уроки, подтверждение бронирования и публикация отзывов.

Доставка:
- Приложение Back4app с схемой, ACLs, CLPs; фронтенд для профилей репетиторов, поиска предметов, запросов на бронирование, статуса проверки фона и отзывов студентов.

Нажмите на кнопку ниже, чтобы открыть Агент с предварительно заполненным запросом шаблона.

Это базовый запрос без суффикса технологии. Вы можете адаптировать сгенерированный фронтенд-стек позже.

Развертывание за минуты50 бесплатных запросов / месяцКредитная карта не требуется

Песочница Tutor API

Попробуйте конечные точки REST и GraphQL против схемы рынка наставников. Ответы используют тестовые данные и не требуют учетной записи Back4app.

Загрузка области работы…

Использует ту же схему, что и этот шаблон.

Выберите свой стек

Раскройте каждую карточку, чтобы увидеть, как интегрировать TutorProfile, SubjectOffer и LessonRequest с выбранным стеком.

Flutter Рынок репетиторов

React Рынок репетиторов

React Native Рынок репетиторов

Next.js Рынок репетиторов

JavaScript Рынок репетиторов

Android Рынок репетиторов

iOS Рынок репетиторов

Vue Рынок репетиторов

Angular Рынок репетиторов

GraphQL Рынок репетиторов

REST API Рынок репетиторов

PHP Рынок репетиторов

.NET Рынок репетиторов

Что вы получите с каждой технологией

Каждый стек использует одинаковую схему бэкенда на рынке репетиторов и API контракты.

Единая структура данных рынка репетиторов

Управляйте User, TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck и Review с помощью одного контракта.

Поиск тематики для рынок репетиторов

Фильтровать репетиторов по предмету, уровню, цене и режиму без переписывания вашего бэкенда.

Видимость проверки биографии для рынок репетиторов

Показать статус подтверждения перед тем, как студент запишется на занятие.

Сигналы отзывов студентов для рынок репетиторов

Позвольте рейтингам и комментариям влиять на рейтинг на рынке и доверие.

Сравнение стека рынка репетиторов

Сравните скорость настройки, стиль SDK и поддержку ИИ среди всех поддерживаемых технологий.

ФреймворкВремя настройкиПреимущество рынка репетиторовТип SDKПоддержка ИИ
Около 5 минутЕдиный код для рынка репетиторов на мобильных устройствах и в веб.Типизированный SDKПолный
Менее 5 минутБыстрая веб-панель для поиска репетиторов и бронирования.Типизированный SDKПолный
~3–7 минутКроссплатформенное мобильное приложение для рынка репетиторов.Типизированный SDKПолный
Быстрая настройка (5 мин)Серверное веб-приложение для поиска репетиторов и инструментов операторов.Типизированный SDKПолный
~3–5 минЛегкая веб-интеграция для рынка репетиторов.Типизированный SDKПолный
Около 5 минНативное приложение Android для поиска и бронирования репетиторов.Типизированный SDKПолный
Менее 5 минутНативное приложение iOS для рынка репетиторов.Типизированный SDKПолный
~3–7 минВеб-интерфейс React для подбора репетиторов.Типизированный SDKПолный
Быстрая настройка (5 мин)Корпоративное веб-приложение для операторов рынка репетиторов.Типизированный SDKПолный
Менее 2 минГибкий GraphQL API для рынка репетиторов.GraphQL APIПолный
Быстрая установка (2 мин)Интеграция REST API для рынка репетиторов.REST APIПолный
~3 минСерверная часть PHP для рынка репетиторов.REST APIПолный
~3–7 мин.NET бэкенд для рынка репетиторов.Типизированный SDKПолный

Время настройки отражает ожидаемую продолжительность от начала проекта до первого запроса TutorProfile или SubjectOffer с использованием этой шаблонной схемы.

Часто задаваемые вопросы о рынке репетиторов

Распространенные вопросы о создании бэкэнда рынка репетиторов с использованием этого шаблона.

Какие политики на рынке репетиторов труднее всего контролировать без структурированных данных о бронировании?
Как правильно связать управление профилем репетитора, поиск предложений по предметам, отслеживание статуса проверки фоновых данных с выполнением и инспекциями возвратов?
Как нам добавить новые структуры сборов или пакеты для рынка репетиторов без переписывания логики бронирования?
Как мне показать списки репетиторов в Flutter?
Как мне управлять бронированиями на рынке репетиторов с Next.js Server Actions?
Может ли React Native кэшировать профили репетиторов оффлайн?
Как предотвратить несанкционированные правки проверки биографических данных?
Какой лучший способ отображения результатов поиска репетиторов на Android?

Доверяют разработчикам по всему миру

Присоединяйтесь к командам, которые быстрее выпускают продукты рынка репетиторов с помощью шаблонов Back4app

G2 Users Love Us Badge

Готовы создать свое приложение для рынка репетиторов?

Начните свой проект рынка репетиторов за считанные минуты. Кредитная карта не требуется.

Выберите технологию