Table of Contents
Tech Stack
| Layer | Technology | Version |
|---|---|---|
| Backend Framework | Laravel | 12.x |
| Language | PHP | 8.4 |
| Auth | firebase/php-jwt (HS256) | ^7.0 |
| Frontend Framework | Vue 3 (Composition API) | ^3.5 |
| State Management | Pinia | ^2.3 |
| Routing (SPA) | Vue Router | ^4.5 |
| CSS | TailwindCSS | 4.x (Vite plugin) |
| Build Tool | Vite | 7.x |
| Production Database | MariaDB | — |
| Development/Offline DB | SQLite | — |
| Queue / Cache | Redis (Production), Sync/File (Local) | — |
| Deployment | Docker (Multi-Stage Build) | — |
| Fonts | @fontsource/space-grotesk, @fontsource/ibm-plex-mono | — |
Quality Gates
All three gates must be green before every commit.
Tests (Pest + PHPUnit)
composer test
# entspricht: php artisan config:clear && php artisan test
The test driver is SQLite:memory:
. Test files are located attests/Feature/
andtests/Unit/
.
Static Analysis (PHPStan Level 8)
vendor/bin/phpstan analyse --memory-limit=1G
Level 8 requires complete type annotations — all Eloquent relationships are annotated with generic PHPDoc types.
Code Style (Laravel Pint)
vendor/bin/pint --test # nur prüfen
vendor/bin/pint # automatisch fixen