Tutor Marketplace Backend Template
Tutor Profiles, Subject Offers, and Verified Bookings
A production-ready tutor marketplace backend on Back4app with TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck, and Review records. Includes ER diagram, data dictionary, JSON schema, API sandbox, and an AI Agent prompt for rapid bootstrap.
What You Get
This template gives you a tutor marketplace backend with TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck, and Review so students, tutors, and operators can coordinate matches faster.
- TutorProfile discovery — Model TutorProfile and SubjectOffer records so learners can filter by featuredSubject, level, mode, and hourlyRate.
- BackgroundCheck visibility — Expose BackgroundCheck status, checkVendor, and referenceCode so operators can show verified tutors without manual lookup.
- Student feedback signals — Store Review entries with rating, comment, and wouldRecommend to help students compare tutors using real lesson feedback.
- Booking operations — Coordinate LessonRequest and Booking data to match a student, a subjectOffer, and a scheduledAt lesson time.
Tutor Marketplace Backend at a Glance
Customers shop tutor marketplace on speed and certainty — which means quotes, holds, and confirmations need to reflect real-time state. The cost shows up in callbacks and credits. This template models TutorProfile, SubjectOffer, LessonRequest, BackgroundCheck, and Booking on Back4app so you can launch a working tutor marketplace platform without rebuilding booking logic from scratch. The schema covers User (username, email, role, fullName), TutorProfile (user, headline, bio, hourlyRate, teachesOnline, isVerified, averageRating, reviewCount, featuredSubject), SubjectOffer (tutorProfile, subjectName, level, mode, baseRate, availabilityNotes, active), LessonRequest (student, subjectOffer, topic, preferredDateTime, durationMinutes, status, budget), BackgroundCheck (tutorProfile, checkVendor, status, referenceCode, completedAt, notes), Booking (student, tutorProfile, lessonRequest, scheduledAt, durationMinutes, status, meetingLink), and Review (student, tutorProfile, booking, rating, comment, wouldRecommend) with auth and marketplace workflows built in. Connect your preferred frontend and ship faster.
Best for:
How this Tutor Marketplace backend is organized
From the first intake to the final sign-off, tutor marketplace success depends on everyone working off the same facts — not the loudest update in the room.
The hub keeps TutorProfile, SubjectOffer, and LessonRequest language consistent so product, ops, and engineering mean the same thing when they say “record.”
Tutor Marketplace Features
Every technology card in this hub uses the same tutor marketplace backend schema with User, TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck, and Review.
TutorProfile management
TutorProfile stores headline, bio, hourlyRate, featuredSubject, and verified status.
SubjectOffer search
SubjectOffer links tutorProfile, subjectName, level, mode, and baseRate.
BackgroundCheck status tracking
BackgroundCheck captures tutorProfile, status, checkVendor, and completedAt.
LessonRequest intake
LessonRequest stores student, subjectOffer, topic, preferredDateTime, durationMinutes, status, and budget.
Booking and Review workflow
Booking and Review keep scheduled lessons and student feedback connected.
Why Build Your Tutor Marketplace Backend with Back4app?
Back4app gives you tutor, offer, booking, review, and screening primitives so your team can focus on matching learners with verified expertise instead of wiring infrastructure.
- •TutorProfile and SubjectOffer in one model: Store subjectName, level, mode, and baseRate in SubjectOffer while keeping TutorProfile records tied to each tutor.
- •Verification you can inspect: Track BackgroundCheck status and referenceCode so operators can show verified tutors without chasing spreadsheets.
- •Realtime discovery and booking updates: Use Live Queries for Booking and Review changes while REST and GraphQL stay available for every client.
Build the tutor marketplace backend once, then reuse the same contract across web, mobile, and operator tools.
Tutor Marketplace Benefits
A tutor marketplace backend that helps you launch with clearer matching signals and less schema churn.
Faster tutor matching
Start from TutorProfile, SubjectOffer, and LessonRequest instead of designing the marketplace flow from zero.
Verification visible to buyers
Use BackgroundCheck status to show who has passed screening before a Booking is confirmed.
Review-driven discovery
Surface Review rating and comment data so student feedback influences tutor visibility.
Cleaner booking records
Keep Booking records tied to LessonRequest, TutorProfile, and scheduledAt lesson times for operator audit trails.
Subject-level marketplace data
Store subjectName, level, mode, and baseRate in SubjectOffer so search and sort stay precise.
AI bootstrap workflow
Generate backend scaffolding and integration guidance fast with one structured prompt.
Ready to launch your tutor marketplace app?
Let the Back4app AI Agent scaffold your tutor marketplace backend and generate TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck, and Review flows from one prompt.
Free to start — 50 AI Agent prompts/month, no credit card required
Tutor Marketplace Tech Stack
Everything included in this tutor marketplace backend template.
Tutor Marketplace ER Model
Entity relationship model for the tutor marketplace backend schema.
Schema covering users, tutor profiles, subject offers, lesson requests, bookings, background checks, and reviews.
View diagram source
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
}
Tutor Marketplace Flow
Typical runtime flow for auth, SubjectOffer discovery, LessonRequest intake, Booking creation, and Review capture.
View diagram source
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 statusTutor Data Dictionary
Full field-level reference for every class in the tutor marketplace schema.
| Field | Type | Description | Required |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Auto |
| username | String | Account name used to sign in | |
| String | Email address for account access | ||
| password | String | Hashed password (write-only) | |
| role | String | Marketplace role such as buyer, tutor, or operator | |
| fullName | String | Display name shown on profiles and reviews | |
| createdAt | Date | Auto-generated creation timestamp | Auto |
| updatedAt | Date | Auto-generated last-update timestamp | Auto |
8 fields in User
Tutor Security and Permissions
How ACL and CLP strategy secures tutor profiles, background checks, bookings, and reviews.
Tutor-owned profile controls
Only the tutor linked in TutorProfile.user can edit their TutorProfile and SubjectOffer records.
Verification integrity
BackgroundCheck records should be created or updated by operator workflows or trusted Cloud Code.
Scoped marketplace access
Limit LessonRequest, Booking, and Review reads to the student, tutor, and operator roles that need them.
Tutor Schema (JSON)
Raw JSON schema definition ready to copy into Back4app or use as implementation reference.
{
"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
}
}
}
]
}Build Tutor App with AI Agent
Use the Back4app AI Agent to generate a real tutor marketplace app from this template, including frontend, backend, auth, and subject matching, background check, and review flows.
Create a tutor marketplace app backend on Back4app with this exact schema and behavior. Schema: 1. User: username, email, password, role, fullName. 2. TutorProfile: user (Pointer to User, required), headline, bio, hourlyRate, teachesOnline, isVerified, averageRating, reviewCount, featuredSubject. 3. SubjectOffer: tutorProfile (Pointer to TutorProfile, required), subjectName, level, mode, baseRate, availabilityNotes, active. 4. LessonRequest: student (Pointer to User, required), subjectOffer (Pointer to SubjectOffer, required), topic, preferredDateTime, durationMinutes, status, budget. 5. BackgroundCheck: tutorProfile (Pointer to TutorProfile, required), checkVendor, status, referenceCode, completedAt, notes. 6. Booking: student (Pointer to User, required), tutorProfile (Pointer to TutorProfile, required), lessonRequest (Pointer to LessonRequest, required), scheduledAt, durationMinutes, status, meetingLink. 7. Review: student (Pointer to User, required), tutorProfile (Pointer to TutorProfile, required), booking (Pointer to Booking, required), rating, comment, wouldRecommend. Security: - Tutors can edit their own TutorProfile and SubjectOffer records. BackgroundCheck updates should be handled by trusted Cloud Code or operator roles. Auth: - Sign-up, login, logout. Behavior: - List tutors, search subject offers, submit lesson requests, confirm bookings, and post reviews. Deliver: - Back4app app with schema, ACLs, CLPs; frontend for tutor profiles, subject search, booking requests, background check status, and student reviews.
Press the button below to open the Agent with this template prompt pre-filled.
This is the base prompt without a technology suffix. You can adapt the generated frontend stack afterward.
Tutor API Sandbox
Try REST and GraphQL endpoints against the tutor marketplace schema. Responses use mock data and do not require a Back4app account.
Uses the same schema as this template.
Pick Your Stack
Expand each card to see how to integrate TutorProfile, SubjectOffer, and LessonRequest with your chosen stack.
Flutter Tutor Marketplace Backend
React Tutor Marketplace Backend
React Native Tutor Marketplace Backend
Next.js Tutor Marketplace Backend
JavaScript Tutor Marketplace Backend
Android Tutor Marketplace Backend
iOS Tutor Marketplace Backend
Vue Tutor Marketplace Backend
Angular Tutor Marketplace Backend
GraphQL Tutor Marketplace Backend
REST API Tutor Marketplace Backend
PHP Tutor Marketplace Backend
.NET Tutor Marketplace Backend
What You Get with Every Technology
Every stack uses the same tutor marketplace backend schema and API contracts.
Unified tutor marketplace data structure
Manage User, TutorProfile, SubjectOffer, LessonRequest, Booking, BackgroundCheck, and Review with one contract.
Subject expertise search for tutor marketplace
Filter tutors by subject, level, price, and mode without rewriting your backend.
Background check visibility for tutor marketplace
Surface verified status before a student books a lesson.
Student review signals for tutor marketplace
Let ratings and comments influence marketplace ranking and trust.
Tutor Marketplace Stack Comparison
Compare setup speed, SDK style, and AI support across all supported technologies.
| Framework | Setup Time | Tutor Marketplace Benefit | SDK Type | AI Support |
|---|---|---|---|---|
| About 5 min | Single codebase for tutor marketplace on mobile and web. | Typed SDK | Full | |
| Under 5 minutes | Fast web dashboard for tutor discovery and bookings. | Typed SDK | Full | |
| ~3–7 min | Cross-platform mobile app for tutor marketplace. | Typed SDK | Full | |
| Rapid (5 min) setup | Server-rendered web app for tutor search and operator tools. | Typed SDK | Full | |
| ~3–5 min | Lightweight web integration for tutor marketplace. | Typed SDK | Full | |
| About 5 min | Native Android app for tutor search and booking. | Typed SDK | Full | |
| Under 5 minutes | Native iOS app for tutor marketplace. | Typed SDK | Full | |
| ~3–7 min | Reactive web UI for tutor matching. | Typed SDK | Full | |
| Rapid (5 min) setup | Enterprise web app for tutor marketplace operators. | Typed SDK | Full | |
| Under 2 min | Flexible GraphQL API for tutor marketplace. | GraphQL API | Full | |
| Quick (2 min) setup | REST API integration for tutor marketplace. | REST API | Full | |
| ~3 min | Server-side PHP backend for tutor marketplace. | REST API | Full | |
| ~3–7 min | .NET backend for tutor marketplace. | Typed SDK | Full |
Setup time reflects expected duration from project bootstrap to first TutorProfile or SubjectOffer query using this template schema.
Tutor Marketplace FAQs
Common questions about building a tutor marketplace backend with this template.
Ready to Build Your Tutor Marketplace App?
Start your tutor marketplace project in minutes. No credit card required.