> ## 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.

# Tech Stack

> Languages, frameworks, and key libraries powering the API

## Core

| Layer            | Technology | Version                        |
| ---------------- | ---------- | ------------------------------ |
| Language         | PHP        | 7.2                            |
| Framework        | Laravel    | 5.7                            |
| Database         | MySQL      | 5.7                            |
| Cache & sessions | Redis      | Latest (via Predis client 1.1) |
| Web server       | Nginx      | Alpine                         |
| App server       | PHP-FPM    | 7.2-alpine3.11                 |
| Containerization | Docker     | docker-compose                 |

## Authentication

Custom Redis token guard — **not** Laravel Passport or Sanctum. See [Authentication](/architecture/authentication) for details.

| Package                        | Purpose                                |
| ------------------------------ | -------------------------------------- |
| `predis/predis` ^1.1           | Redis client for session token storage |
| `web-token/jwt-framework` ^2.1 | JWT token handling                     |

## Payments

| Package                  | Purpose                                                            |
| ------------------------ | ------------------------------------------------------------------ |
| `stripe/stripe-php` ^7.2 | Payment processing, subscriptions, Connect payouts, billing portal |

## Identity & verification

| Package                        | Purpose                                      |
| ------------------------------ | -------------------------------------------- |
| `onfido/api-php-client` ^4.1.3 | Identity document verification               |
| `yoti/yoti-php-sdk` ^3.1       | Identity verification (alternative provider) |

## Communication

| Package           | Purpose                                     |
| ----------------- | ------------------------------------------- |
| `twilio/sdk` ^6.9 | SMS phone number verification via Verify V2 |
| APNS (native)     | iOS push notifications                      |
| FCM (native)      | Android push notifications                  |
| SMTP / Mailgun    | Transactional email                         |

## Google services

| Package                      | Purpose                                       |
| ---------------------------- | --------------------------------------------- |
| `google/apiclient` ^2.12     | Calendar sync, OAuth2                         |
| Google Maps API (via Guzzle) | Geocoding, reverse geocoding, postcode lookup |

## File & media processing

| Package                           | Purpose                           |
| --------------------------------- | --------------------------------- |
| `league/flysystem-aws-s3-v3` ^1.0 | AWS S3 file storage               |
| `intervention/image` ^2.4         | Image processing and manipulation |
| `php-ffmpeg/php-ffmpeg` ^0.13.0   | Video processing                  |

## Utilities

| Package                                           | Purpose                                                        |
| ------------------------------------------------- | -------------------------------------------------------------- |
| `guzzlehttp/guzzle` ^6.3                          | HTTP client for external API calls                             |
| `calebporzio/parental` 0.9                        | Model inheritance (Tutor extends User)                         |
| `anthonymartin/geo-location` \~1.0                | Geolocation calculations                                       |
| `justbetter/laravel-pagination-with-havings` ^1.0 | Pagination with HAVING clauses                                 |
| `phlak/semver` 3.2.0                              | Semantic versioning                                            |
| `doctrine/dbal` ^2.9                              | Database abstraction (used for migration column modifications) |
| `fideloper/proxy` \~4.0                           | Trusted proxy handling                                         |

## Dev dependencies

| Package                                  | Purpose                      |
| ---------------------------------------- | ---------------------------- |
| `phpunit/phpunit` \~7.4                  | Testing framework            |
| `mockery/mockery` \~1.0                  | Mocking library              |
| `fzaninotto/faker` \~1.4                 | Test data generation         |
| `friendsofphp/php-cs-fixer` \~2.12       | Code style enforcement       |
| `mpociot/laravel-apidoc-generator` ^3.17 | API documentation generation |
| `filp/whoops` \~2.0                      | Error page handler           |

## Frontend assets (minimal)

Used primarily for email templates, not a full frontend:

| Package                 | Purpose                                        |
| ----------------------- | ---------------------------------------------- |
| `laravel-mix` ^1.0      | Webpack wrapper for asset compilation          |
| `vue` ^2.5.7            | Frontend framework (email template components) |
| `bootstrap-sass` ^3.3.7 | CSS framework                                  |
| `axios` ^0.17           | HTTP client                                    |
