TutorSync Live

Education

Original Idea

Tutor Booking Marketplace A web app marketplace with instant matching, scheduling, and built-in video sessions.

Product Requirements Document: TutorSync Live

Version: 1.0 (2026 Edition)
Status: Draft
Author: Senior Product Manager


1. Executive Summary

TutorSync Live is a high-performance, all-in-one marketplace designed to bridge the gap between students seeking academic assistance and professional tutors. Unlike fragmented solutions that require separate tools for discovery, payment, and video, TutorSync Live provides a unified "Click-to-Learn" experience. Built on a 2026 modern tech stack, it prioritizes sub-second discovery, low-latency WebRTC video, and automated financial safety for both parties.

2. Problem Statement

The current private tutoring market is fragmented. Students and parents struggle to find verified help in real-time, often managing a "Frankenstein" workflow of Google Sheets for scheduling, PayPal for payments, and Zoom for sessions. This leads to high cognitive load, payment disputes, and a lack of accountability. Tutors, conversely, waste 30% of their time on administrative overhead and risk revenue loss due to student no-shows.

3. Goals & Success Metrics

  • Booking Conversion Rate: Achieve a >15% conversion from "Search" to "Session Booked."
  • Time-to-Session: Average under 10 minutes for "Instant Match" bookings.
  • Trust Score: Maintain an average tutor rating of 4.7/5 stars.
  • Retention: 40% of students booking a second session within 30 days.
  • Performance: LCP (Largest Contentful Paint) < 1.2s using Next.js 16 Partial Pre-rendering.

4. User Personas

A. Sarah (The Busy Parent)

  • Profile: Parent of a 14-year-old struggling with Algebra.
  • Need: Needs to find a verified, safe tutor now who can explain concepts clearly.
  • Pain Point: Worrying about online safety and payment security.

B. Alex (The University Student)

  • Profile: 2nd-year Engineering student.
  • Need: Needs "just-in-time" help for a specific lab report due in 4 hours.
  • Pain Point: Traditional tutoring centers are closed or too expensive.

C. Marcus (The Professional Tutor)

  • Profile: Freelance Educator with a Master’s degree.
  • Need: A reliable platform to handle billing, scheduling, and high-quality video.
  • Pain Point: Chasing payments and managing timezone conflicts for international students.

5. User Stories

  • As a student, I want to filter tutors by subject, price, and immediate availability so I can get help right away.
  • As a tutor, I want my earnings held in escrow until the lesson ends so that I am guaranteed payment for my time.
  • As a parent, I want a COPPA-compliant platform so that my child’s data and privacy are protected.
  • As a tutor, I want a built-in whiteboard so I can visualize complex math formulas for my students.

6. Functional Requirements

6.1 Discovery & Matching

  • NeuralSearch: AI-powered search (via Algolia) that understands intent (e.g., "help with organic chem lab" vs just "chemistry").
  • Live Availability: Real-time visibility of "Online Now" tutors.
  • Verified Profiles: Badge system for background-checked (via Checkr) and credential-verified tutors.

6.2 The Virtual Classroom

  • Video: 1080p WebRTC video with low-latency global routing (Daily.co).
  • Whiteboard: Persistent, collaborative infinite canvas (tldraw SDK).
  • Session Recording: Automatic MP4 generation with custom layouts for student review.

6.3 Scheduling & Timezones

  • Triple-Store Pattern: All bookings stored with UTC Instant, Wall-clock time, and IANA Timezone ID to handle DST transitions.
  • Calendar Sync: Two-way sync with Google and Outlook.

6.4 Payments & Escrow

  • Automated Escrow: Funds captured at booking via Stripe Connect and transferred to the tutor's account only after "Session Complete" signal.
  • Global Payouts: Support for multi-currency payouts via Stripe Express.

7. Technical Requirements

7.1 Tech Stack (2026 Core)

  • Frontend: Next.js v16.1.3 (Turbopack, Stable PPR, React Compiler).
  • Backend: NestJS v11.1.12 (Fastify 5 engine, Optimized Module Resolution).
  • Database: PostgreSQL 17 via Prisma v7.2.0 (Rust-free, ESM-first, TypeScript Query Compiler).
  • Styling: Tailwind CSS v4.1.18 (Oxide engine, CSS-first config).
  • Auth: Clerk (RBAC via publicMetadata and JWT Session Claims).

7.2 Core Integrations

  • Video: Daily.co (VCS for composed recordings).
  • Search: Algolia (NeuralSearch & Virtual Replicas).
  • Payments: Stripe Connect (Separate Charges and Transfers pattern).
  • Real-time: Liveblocks (Whiteboard state synchronization).

8. Data Model

| Entity | Attributes | Relationships | | :--- | :--- | :--- | | User | id, email, role (STUDENT/TUTOR), timezone_id, metadata | 1:1 with TutorProfile | | TutorProfile | bio, subjects[], hourly_rate, rating, is_verified | 1:N with AvailabilitySlot | | Booking | id, student_id, tutor_id, start_utc, status, stripe_transfer_id | 1:1 with Review | | AvailabilitySlot | id, tutor_id, day_of_week, start_time_wall, end_time_wall | | | WhiteboardState | booking_id, snapshot_json, last_updated | 1:1 with Booking |

9. API Specification (Sample Endpoints)

  • GET /v1/tutors/search: Parameters: query, subject, availability_start. Returns Algolia-ranked results.
  • POST /v1/bookings: Body: tutorId, startTime, duration. Returns PaymentIntent client secret.
  • PATCH /v1/bookings/:id/complete: Trigger: Webhook from Video Provider or Manual. Logic: Executes Stripe Transfer.
  • GET /v1/availability/:tutorId: Returns expanded UTC slots for the next 30 days based on tutor's ZonedDateTime.

10. UI/UX Requirements

  • The "Discovery Grid": Skeleton screens for instant perceived performance. Tutor cards show "Response Time" and "Lessons Taught."
  • The Classroom: Split-screen layout. Left: Video feeds (30%). Right: Whiteboard/Resources (70%).
  • Mobile-First Dashboards: Tutors need a "One-tap" button to toggle availability.

11. Non-Functional Requirements

  • Security: COPPA 2026 compliance. No PII used for AI training without school/parent consent.
  • Scalability: Horizontal scaling of NestJS microservices; Prisma 7 handles high-concurrency connection pooling natively.
  • Availability: 99.99% uptime for the booking engine.

12. Out of Scope

  • Native iOS/Android Apps (Phase 1 focus is PWA via Next.js).
  • Group tutoring classes (>2 people).
  • Asynchronous video messaging.

13. Risks & Mitigations

| Risk | Mitigation | | :--- | :--- | | Payment Disputes | Automated logging of "Session Joined" metadata as proof for Stripe. | | DST Errors | Use of the Temporal API for all backend time calculations. | | Video Lag | Agora/Daily.co global mesh networks with AV1 codec fallback. |


14. Implementation Tasks

Phase 1: Project Setup & Architecture

  • [ ] Initialize project with Next.js 16.1.3 and Turbopack
  • [ ] Set up Tailwind CSS 4.1.18 with Oxide engine
  • [ ] Configure NestJS 11.1.12 with Fastify adapter
  • [ ] Set up Prisma 7.2.0 with PostgreSQL adapter
  • [ ] Initialize Clerk Auth with multi-role publicMetadata configuration

Phase 2: Core Identity & Discovery

  • [ ] Build User/Tutor Profile schema in Prisma
  • [ ] Implement Clerk Middleware for /student and /tutor route protection
  • [ ] Integrate Algolia NeuralSearch for tutor indexing
  • [ ] Create "Availability Expansion" logic using Node.js Temporal API
  • [ ] Build the Search Result Grid with Next.js Partial Pre-rendering (PPR)

Phase 3: Booking & Payments

  • [ ] Integrate Stripe Connect (Express/Standard) onboarding flow
  • [ ] Implement "Separate Charges and Transfers" logic in NestJS
  • [ ] Build the "Booking Calendar" UI component with timezone auto-detection
  • [ ] Create PostgreSQL tstzrange exclusion constraints to prevent double-booking
  • [ ] Implement Stripe Webhooks for payment and payout status sync

Phase 4: The Virtual Classroom

  • [ ] Integrate Daily.co WebRTC Video SDK
  • [ ] Build collaborative whiteboard using tldraw SDK + Liveblocks
  • [ ] Implement "Session Recording" trigger and storage in AWS S3
  • [ ] Create the "Post-Session Review" and rating system
  • [ ] Build the "Escrow Release" automation (triggered 15 mins after session end)

Phase 5: Compliance & Optimization

  • [ ] Implement 90-day data retention/deletion policy for COPPA 2026
  • [ ] Set up JSON Logging for high-throughput observability in NestJS
  • [ ] Optimize images via Next.js Image component for tutor avatars
  • [ ] Conduct end-to-end testing for cross-timezone DST transitions
  • [ ] Deploy Frontend to Vercel and Backend to AWS (App Runner/ECS)