From 866118a86f37086809c568cfeb1d7ccafe4da3a6 Mon Sep 17 00:00:00 2001 From: Roberto Date: Wed, 3 Jun 2026 22:52:32 +0200 Subject: [PATCH 1/2] Update project README --- README.md | 140 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 93 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index a65fe98..5d1ba07 100644 --- a/README.md +++ b/README.md @@ -1,79 +1,125 @@ -# Interactieve Laravel CV Applicatie +# CV Roberto -Deze Laravel-applicatie is gebouwd als mijn interactieve en dynamische cv. In plaats van een statisch pdf-bestand, kun je hier real-time mijn: +Dit project is mijn interactieve CV en tegelijk een voorbeeld van hoe ik een Laravel-app opzet. -- **Vaardigheden** (met beoordeling en iconen) -- **Werkervaring** -- **Opleidingen** -- **Persoonlijke gegevens** -- **Tags & kernkwaliteiten** +Niet bedoeld als groot framework of demo met zoveel mogelijk patterns. Wel als compacte applicatie waarin je kunt zien hoe ik omga met CRUD, validatie, uploads, tests, statische analyse, formatting en CI. -zien — inclusief slimme automatisering, logging en Telegram-notificaties voor recruiterinteracties. +Live: [cv.robert.ooo](https://cv.robert.ooo) ---- +## Wat zit erin -## 🧰 Techniek & Stack +- 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. -- **Framework:** Laravel 12 -- **Frontend:** Tailwind CSS, Blade -- **DevOps-integraties:** Telegram alerts, Healthchecks, custom logging -- **CI/CD-ready:** Ondersteuning voor deploy hooks en jobs -- **Overige tools:** Docker, Nginx, Git, Redis, Cron, Promtail, Grafana +## Stack ---- +- Laravel 12 +- PHP 8.2+ +- Blade +- Tailwind CSS +- Pest +- Larastan level 7 +- Laravel Pint +- Blade Formatter +- Docker / Laravel Sail -## ⚙️ Installatie +## Kwaliteitschecks -1. **Clone deze repo:** +Deze checks horen groen te zijn voordat een merge logisch is: ```bash -git clone https://github.com/roberto-guagliardo/cv-app.git -cd cv-app +composer test +composer analyse +composer format:check +npm run format:check +npm run build ``` -2. **Installeer dependencies:** +In de workflow worden dezelfde checks afgedwongen: -```bash -composer install -npm install && npm run build -``` +- PHPUnit/Pest feature tests +- Larastan op level 7 +- PHP formatting via Pint +- Blade formatting via Blade Formatter -3. **Maak .env aan en configureer je database, storage en Telegram:** +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 -``` - -4. **Voer migraties & seeders uit:** - -```bash php artisan migrate --seed -``` - -5. **Geniet van de app:** - -```bash +npm run build php artisan serve ``` ---- +Met Sail: -## 🌐 Live Demo +```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 +``` -Wil je zien hoe het eruitziet? Bekijk mijn live cv op: +Voor de admin login kun je in `.env` deze waardes zetten en daarna opnieuw seeden: -➡️ [cv.robert.ooo](https://cv.robert.ooo) +```env +ADMIN_NAME="Admin" +ADMIN_EMAIL=admin@example.com +ADMIN_PASSWORD=changeme123 +``` ---- +## Development -## 📊 Bijdragen +PHP formatter: -Deze applicatie is persoonlijk en niet bedoeld voor publieke bijdragen, maar voel je vrij om de structuur of ideeën te gebruiken voor je eigen showcase-app. +```bash +composer format +composer format:check +``` ---- +Blade formatter: -## 💌 Contact +```bash +npm run format +npm run format:check +``` -Wil je mij benaderen voor een samenwerking of opdracht? -Gebruik het contactformulier op de site of stuur direct een bericht via [Telegram](https://t.me/robertguagliardo). +Tests en analyse: + +```bash +composer test +composer analyse +``` + +## Keuzes + +Controllers zijn bewust redelijk dun gehouden. Validatie zit in Form Requests, testdata komt uit factories en image handling blijft dicht bij de resource waar het bij hoort. + +De publieke personalia endpoint geeft ook hidden items terug. Dat is bewust: `hidden` betekent hier niet geheim, maar niet direct zichtbaar voor bots. Na een bewuste klik mag de waarde verschijnen. + +Skills worden niet op datum gesorteerd. Voor dit CV zegt type/groep meer dan aanmaakdatum. + +## Nog bewust open + +Dit project blijft in ontwikkeling. Dingen die ik apart zou oppakken: + +- npm audit warnings triagen +- request validation tests uitbreiden +- queue jobs testen met `Http::fake()` +- README/screenshots verder aanscherpen wanneer de UI definitief is + +## Contact + +Gebruik het contactformulier op de site of stuur me een bericht via [Telegram](https://t.me/robertguagliardo). -- 2.47.3 From 38943743aae4da47ef3fdac21105ca220293836a Mon Sep 17 00:00:00 2001 From: Roberto Date: Wed, 3 Jun 2026 22:59:54 +0200 Subject: [PATCH 2/2] Refine README content --- README.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/README.md b/README.md index 5d1ba07..0986122 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ Dit project is mijn interactieve CV en tegelijk een voorbeeld van hoe ik een Laravel-app opzet. -Niet bedoeld als groot framework of demo met zoveel mogelijk patterns. Wel als compacte applicatie waarin je kunt zien hoe ik omga met CRUD, validatie, uploads, tests, statische analyse, formatting en CI. - Live: [cv.robert.ooo](https://cv.robert.ooo) ## Wat zit erin @@ -103,23 +101,6 @@ composer test composer analyse ``` -## Keuzes - -Controllers zijn bewust redelijk dun gehouden. Validatie zit in Form Requests, testdata komt uit factories en image handling blijft dicht bij de resource waar het bij hoort. - -De publieke personalia endpoint geeft ook hidden items terug. Dat is bewust: `hidden` betekent hier niet geheim, maar niet direct zichtbaar voor bots. Na een bewuste klik mag de waarde verschijnen. - -Skills worden niet op datum gesorteerd. Voor dit CV zegt type/groep meer dan aanmaakdatum. - -## Nog bewust open - -Dit project blijft in ontwikkeling. Dingen die ik apart zou oppakken: - -- npm audit warnings triagen -- request validation tests uitbreiden -- queue jobs testen met `Http::fake()` -- README/screenshots verder aanscherpen wanneer de UI definitief is - ## Contact Gebruik het contactformulier op de site of stuur me een bericht via [Telegram](https://t.me/robertguagliardo). -- 2.47.3