Review System
Overview
Section titled “Overview”PinTeach supports reviews from two sources:
- PinTeach: Students submit reviews via in-app prompts after sessions
- External: Teachers import from Preply, Italki, Verbling, Google Business, Trustpilot
Review Data Model
Section titled “Review Data Model”reviews
Section titled “reviews”| Field | Type | Description |
|---|---|---|
| rating | integer | 1-5 stars (required) |
| title | varchar | Optional title |
| body | text | Review content |
| quickTags | jsonb | Tag array (e.g., “patient”, “fun”) |
| source | enum | pinteach, preply, italki, etc. |
| status | enum | pending, approved, hidden, flagged |
| isFeatured | boolean | Highlighted on profile |
| isAnonymous | boolean | Student identity hidden |
| teacherResponse | text | Public teacher reply |
Review Requests
Section titled “Review Requests”review_requests — Solicitation system with channels:
- in_app: Shown in student portal
- email: Sent via email
- link: Shareable review link
Token-based verification with expiration.
Teacher Dashboard
Section titled “Teacher Dashboard”/teacher/reviews has 5 tabs:
- Overview: KPIs + rating distribution + recent reviews
- All: Full list with search + status/source filters
- Requests: Send review solicitations to students
- Import: Import external reviews from other platforms
- Settings: Moderation and display preferences
Actions
Section titled “Actions”| Action | Description |
|---|---|
| Approve | Move from pending → approved |
| Hide | Move to hidden (not visible publicly) |
| Feature | Highlight on teacher profile |
| Respond | Add public teacher response |
| Delete | Remove review entirely |
Review Settings
Section titled “Review Settings”Per-teacher config (review_settings, 1:1):
| Setting | Default | Description |
|---|---|---|
| autoRequestEnabled | false | Auto-send request after sessions |
| autoApprove | true | Auto-approve new reviews |
| minAutoApproveRating | 3 | Min rating for auto-approve |
| showOnProfile | true | Display reviews on profile |
| notifyOnNewReview | true | Email on new review |
Embeddable Widgets
Section titled “Embeddable Widgets”The Widget System supports reviews widgets with 4 layouts:
- Grid: Card grid layout
- Carousel: Horizontal slider
- List: Vertical list
- Wall: Masonry wall
Configurable: accent color, max reviews, min rating, sort order, show/hide fields.
Embed via iframe with postMessage resize support.
Public Reviews Endpoint
Section titled “Public Reviews Endpoint”GET /public/:slug/reviews — Returns approved reviews for a teacher’s public profile and widgets.
Query Parameters
Section titled “Query Parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
| rating | integer | — | Filter by star rating (1-5) |
| source | string | — | Filter by review source |
| dateFrom | string (ISO date) | — | Filter reviews created on or after this date |
| dateTo | string (ISO date) | — | Filter reviews created on or before this date |
| sortBy | string | createdAt | Sort field |
| page | integer | 1 | Page number |
| limit | integer | 10 | Results per page |
All parameters are optional. dateFrom and dateTo accept ISO date strings and work alongside the other filters.
Student Review Flow
Section titled “Student Review Flow”- Student completes a session
- Review request appears (if auto-request enabled, after configurable delay)
- Student rates (1-5 stars) + optional quickTags + body text
- Review submitted with status based on settings (pending or approved)
- Teacher gets notification (if enabled)