> ## Documentation Index
> Fetch the complete documentation index at: https://help.tutorbloc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tutorbloc

> Internal developer documentation for the Tutorbloc platform

Tutorbloc is the operating system for educators: crafted for one-to-one teaching with a suite of tools to manage clients and grow earnings. The platform consists of a **Laravel API** (backend) and a **Vue 2 SPA** (frontend client).

## What the API does

<CardGroup cols={2}>
  <Card icon="user-check" title="Tutor onboarding">
    Registration, identity verification (Onfido/Yoti), DBS criminal checks, qualification uploads, multi-step profile completion
  </Card>

  <Card icon="magnifying-glass" title="Search & discovery">
    Location-aware tutor search with subject, level, availability, distance, and lesson type filtering
  </Card>

  <Card icon="credit-card" title="Booking & payments">
    Lesson booking with Stripe payment processing, pre-authorization, 3D Secure, and automated payouts to tutors
  </Card>

  <Card icon="calendar" title="Lesson management">
    Scheduling, rescheduling (72hr advance notice), cancellation, refunds, and post-lesson review flows
  </Card>

  <Card icon="video" title="Video lessons">
    Zoom and Daily.co integration for online tutoring sessions
  </Card>

  <Card icon="bell" title="Notifications">
    Email (SMTP/Mailgun), push (APNS/FCM), and SMS (Twilio) notifications across all workflows
  </Card>
</CardGroup>

## User roles

The platform has four user roles, defined in `app/Models/v1/Role.php`:

| Role         | ID    | Description                                                           |
| ------------ | ----- | --------------------------------------------------------------------- |
| **Tutor**    | `1`   | Creates profile, sets availability, teaches lessons, receives payouts |
| **Student**  | `2`   | Searches tutors, books lessons, makes payments                        |
| **Parent**   | `3`   | Books lessons on behalf of children, manages child profiles           |
| **Internal** | `200` | Admin access for internal team operations                             |

There are also test roles: `TUTOR_TEST (100)` and `STUDENT_TEST (101)`.

## Quick links

<CardGroup cols={2}>
  <Card icon="laptop" href="/getting-started/local-setup" title="Local setup">
    Get the API running on your machine
  </Card>

  <Card icon="book" href="/getting-started/where-to-start" title="Where to start reading">
    The 5 files every new dev should read first
  </Card>

  <Card icon="sitemap" href="/architecture/overview" title="Architecture">
    How the codebase is structured
  </Card>

  <Card icon="triangle-exclamation" href="/devops/gotchas" title="Known gotchas">
    Non-obvious things that will trip you up
  </Card>

  <Card icon="browser" href="/frontend/overview" title="Frontend client">
    Vue 2 SPA — components, routes, and how it talks to the API
  </Card>

  <Card icon="plug" href="/api-reference/introduction" title="API endpoints">
    Every backend endpoint with auth, params, and responses
  </Card>
</CardGroup>
