FixDirect is een project ontwikkeld voor het vak Practice Enterprise 1 aan Thomas More.
FixDirect is een platform dat mensen die hulp nodig hebben bij kleine klusjes verbindt met handige klussers.
Gebruikers kunnen klusjes plaatsen, offertes ontvangen van klussers, realtime chatten en betalingen veilig verwerken via een escrow-systeem.
- PHP 8.2+
- Laravel Herd (of Valet/Homestead)
- Node.js 18+
- Composer
- SQLite
composer install
npm installcp .env.example .env
php artisan key:generatephp artisan migrate --seedphp artisan storage:linkphp artisan reverb:start
npm run devBezoek daarna:
http://fixdirect.test(of je eigen geconfigureerde Herd-domein)
FixDirect gebruikt Stripe voor escrow-betalingen. Tijdens lokale development kan Stripe in testmodus gebruikt worden zodat er geen echte betalingen gebeuren.
- Maak een account aan op https://dashboard.stripe.com
- Zet "Test mode" aan
- Ga naar Developers → API keys
- Voeg de keys toe aan
.env
STRIPE_KEY=pk_test_...
STRIPE_SECRET=sk_test_...Stripe gebruikt webhooks om betalingen te bevestigen na checkout.
# Windows
winget install Stripe.StripeCLI
# macOS
brew install stripe/stripe-cli/stripestripe loginstripe listen --forward-to http://fixdirect.test/stripe/webhook --events checkout.session.completed,payment_intent.succeededDe CLI geeft een webhook secret terug:
whsec_abc123...Voeg deze toe aan .env:
STRIPE_WEBHOOK_SECRET=whsec_abc123...Opmerking: deze secret verandert telkens wanneer
stripe listenopnieuw wordt gestart.
- Maak een klusje aan
- Laat een andere gebruiker een bieding maken
- Accepteer de bieding
- Klik op "Betalen"
- Gebruik deze testkaart:
4242 4242 4242 4242Met:
- een willekeurige toekomstige datum
- een willekeurige CVC
Na de betaling stuurt Stripe een webhook en wordt de betaling in escrow geplaatst.
Wanneer het klusje voltooid wordt, wordt de betaling vrijgegeven aan de klusser.
Wanneer er geen STRIPE_SECRET ingesteld is, gebruikt de applicatie automatisch een fake payment flow.
Hiermee kunnen betalingen gesimuleerd worden zonder Stripe, handig voor snelle testing.
Chatberichten en prijsvoorstellen werken realtime via Laravel Reverb.
Start de websocket server met:
php artisan reverb:startGebruik volgende instellingen in .env:
BROADCAST_CONNECTION=reverb
REVERB_APP_ID=fixdirect
REVERB_APP_KEY=fixdirect-key
REVERB_APP_SECRET=fixdirect-secret
REVERB_HOST=localhost
REVERB_PORT=8080
REVERB_SCHEME=httpDe finale versie van het project bevindt zich op de main branch.
Na het indienen worden er geen wijzigingen meer gemaakt aan de main branch.
Nieuwe experimenten of verdere ontwikkeling gebeuren in aparte branches.