What the API does
Tutor onboarding
Registration, identity verification (Onfido/Yoti), DBS criminal checks, qualification uploads, multi-step profile completion
Search & discovery
Location-aware tutor search with subject, level, availability, distance, and lesson type filtering
Booking & payments
Lesson booking with Stripe payment processing, pre-authorization, 3D Secure, and automated payouts to tutors
Lesson management
Scheduling, rescheduling (72hr advance notice), cancellation, refunds, and post-lesson review flows
Video lessons
Zoom and Daily.co integration for online tutoring sessions
Notifications
Email (SMTP/Mailgun), push (APNS/FCM), and SMS (Twilio) notifications across all workflows
User roles
The platform has four user roles, defined inapp/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 |
TUTOR_TEST (100) and STUDENT_TEST (101).
Quick links
Local setup
Get the API running on your machine
Where to start reading
The 5 files every new dev should read first
Architecture
How the codebase is structured
Known gotchas
Non-obvious things that will trip you up
Frontend client
Vue 2 SPA — components, routes, and how it talks to the API
API endpoints
Every backend endpoint with auth, params, and responses