Demo data + screenshots (voor docs-contributors)
Bijgewerkt op 2026-04-22
Wil je deze handleiding verrijken met screenshots? Dit artikel legt uit hoe je lokaal een demo-environment opzet met realistische fake data zodat je veilig kan screenshotten zonder echte gastgegevens.
Waarom een aparte demo DB?
- Privacy: echte gastnamen + emails mogen nooit in screenshots belanden
- Veiligheid: geen echte emails, Telegrams, Channex pushes tijdens het klikken
- Reproduceerbaar: iedereen die de docs bijwerkt heeft dezelfde dataset
Setup in 3 commando's
1. Genereer de demo-database
php artisan demo:setup
Dit creëert database/demo.sqlite met:
- 1 admin user (
demo@bedflow.eu/demo123) - 4 kamers (Kamer 1–4 met realistische prijzen)
- 10 producten (wellness, honesty bar, extras)
- 25 debiteuren met fake Belgische namen (Jan Jansen, Marie Dupont, Sophie De Smet, …)
- ~40 boekingen verdeeld over verleden, heden, toekomst
- Proforma facturen met variabele betaalstatus (onbetaald / voorschot / volledig)
- Kalenderdata (booked + available cells)
- 3 housekeepers (Cindy V., Asra M., Els B.) + 2 weken schema
- 10 email automatisaties — allemaal
enabled=false(veiligheidsrail) - Settings met redelijke defaults + alle externe API's leeg
2. Configureer .env.demo
cp .env.demo.example .env.demo
# Pas DB_DATABASE aan naar het absolute pad van je demo.sqlite
php artisan key:generate --env=demo
3. Start de demo-server
php artisan serve --env=demo --port=8001
Open http://localhost:8001 en login met demo@bedflow.eu / demo123.
Screenshots nemen
Welke tool je ook gebruikt (Mac Cmd+Shift+5, ShareX, een puppeteer script, …) — save de screenshots naar:
public/docs/images/{categorie}/{artikel-slug}.png
En voeg in de frontmatter van het bijhorende .md bestand toe:
---
title: …
screenshot: docs/images/03-boekingen/handmatig-boeking-aanmaken.png
---
Veiligheidsrails
De demo data seeder zorgt dat:
- Geen enkele email automation is enabled — er vertrekt dus niks tijdens het klikken
MAIL_MAILER=login.env.demo— zelfs als per ongeluk eenMail::send()zou vuren landt het instorage/logs/laravel.log, niet in een echte mailbox- Externe credentials leeg — Stripe, Channex, Telegram, TextMeBot kunnen geen calls doen
QUEUE_CONNECTION=sync— jobs runnen inline, geen Redis nodig, geen stale async state
Resetten
php artisan demo:setup
Wipet en hermaakt alles.
Production protection
De command weigert te draaien in APP_ENV=production. Als je toch absoluut-zeker-moet: --force. Doe dit nooit op tourist.openview.be.