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
publicMetadataand 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. ReturnsPaymentIntentclient 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'sZonedDateTime.
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
publicMetadataconfiguration
Phase 2: Core Identity & Discovery
- [ ] Build User/Tutor Profile schema in Prisma
- [ ] Implement Clerk Middleware for
/studentand/tutorroute 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
tstzrangeexclusion 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)