# CV Roberto Dit project is mijn interactieve CV en tegelijk een voorbeeld van hoe ik een Laravel-app opzet. Live: [cv.robert.ooo](https://cv.robert.ooo) ## Wat zit erin - Publieke CV-pagina met werkervaring, opleidingen, skills en personalia. - Adminomgeving om CV-data te beheren. - Afbeeldingsuploads via Spatie Media Library. - Contactformulier met queue job voor Telegram-notificaties. - Klikbare verborgen personalia, zodat bots de waarde niet direct in de HTML zien. - Feature tests voor de belangrijkste controllerflows. - CI-checks voor tests, Larastan en formatting. ## Stack - Laravel 12 - PHP 8.2+ - Blade - Tailwind CSS - Pest - Larastan level 7 - Laravel Pint - Blade Formatter - Docker / Laravel Sail ## Kwaliteitschecks Deze checks horen groen te zijn voordat een merge logisch is: ```bash composer test composer analyse composer format:check npm run format:check npm run build ``` In de workflow worden dezelfde checks afgedwongen: - PHPUnit/Pest feature tests - Larastan op level 7 - PHP formatting via Pint - Blade formatting via Blade Formatter Skipped tests zijn alleen acceptabel als dat bewust is, zoals disabled registratieflows. Larastan en formatting moeten gewoon groen zijn. ## Lokaal draaien ```bash cp .env.example .env composer install npm ci php artisan key:generate php artisan migrate --seed npm run build php artisan serve ``` Met Sail: ```bash cp .env.example .env ./vendor/bin/sail up -d ./vendor/bin/sail artisan key:generate ./vendor/bin/sail artisan migrate --seed npm ci npm run build ``` Voor de admin login kun je in `.env` deze waardes zetten en daarna opnieuw seeden: ```env ADMIN_NAME="Admin" ADMIN_EMAIL=admin@example.com ADMIN_PASSWORD=changeme123 ``` ## Development PHP formatter: ```bash composer format composer format:check ``` Blade formatter: ```bash npm run format npm run format:check ``` Tests en analyse: ```bash composer test composer analyse ``` ## Contact Gebruik het contactformulier op de site of stuur me een bericht via [Telegram](https://t.me/robertguagliardo).