How rhellokitty/bookingkosan works
BookingKosan is a Laravel boarding-house discovery and reservation application, with a separate bill-payment API and a Filament administration panel. The customer flow searches and views properties, collects booking and customer details, saves a transaction, and redirects to Midtrans; customers can later look up a booking. Payment notifications update transaction or bill state, and the legacy transaction callback can send WhatsApp confirmation. Controller and service excerpts establish the main calls; routes and several subsystems were not sampled, so their wiring is not inferred.
Main entry points: BookingController.php Booking flow · PaymentWebhookHandler.php Payment webhook handler · BoardingHouseController.php Property browsing · TransactionRepository.php Transaction repository
Components 28
Property discovery
- Property browsing
app/Http/Controllers/BoardingHouseController.php - Home page
app/Http/Controllers/HomeController.php - Property pages
resources/views/pages/boarding-house - Home view
resources/views/pages/home.blade.php - Property queries
app/Repositories/BoardingHouseRepository.php - Category and city
app/Http/Controllers/CategoryController.php - Category and city pages
resources/views/pages/category/show.blade.php
Booking workflow
- Booking flow
app/Http/Controllers/BookingController.php - Booking pages
resources/views/pages/booking - Booking validation
app/Http/Requests/CustomerInformationStoreRequest.php - Transaction repository
app/Repositories/TransactionRepository.php - Booking transactions
app/Models/Transaction.php - Session store
Payments
- Transaction callback
app/Http/Controllers/Api/MidtransController.php - Bill payment API
app/Http/Controllers/Api/BillPaymentController.php - Payment service
app/Services/Payments/PaymentService.php - Payment webhook handler
app/Services/Payments/PaymentWebhookHandler.php - Status mapping
app/Services/Payments/PaymentStatusMapper.php - Bill settlement
app/Services/Payments/BillPaymentService.php - Payment attempts
app/Models/PaymentTransaction.php - Webhook logs
app/Models/PaymentWebhookLog.php - Bills
app/Models/Bill.php
Administration
- Filament resources
app/Filament/Resources - Admin dashboard
app/Filament/Widgets
Other components
- Customer
- Midtrans
- Twilio WhatsApp
- Admin user
Connections 28
- Customer → Property browsing: browses
- Property browsing → Property queries: queries
- Property browsing → Category and city: loads filters
- Property browsing → Property pages: renders
- Home page → Home view: renders
- Category and city → Category and city pages: renders
- Customer → Booking flow: books
- Booking flow → Transaction repository: saves and reads
- Booking flow → Property queries: loads property
- Booking flow → Booking validation: validates
- Booking flow → Booking pages: renders
- Transaction repository → Session store: reads and writes
- Transaction repository → Booking transactions: creates and queries
- Booking flow → Midtrans: creates payment
- Midtrans → Booking flow: redirects back
- Midtrans → Transaction callback: notifies
- Transaction callback → Booking transactions: updates status
- Transaction callback → Twilio WhatsApp: sends WhatsApp
- Customer → Bill payment API: requests bill payment
- Bill payment API → Payment service: initiates payment
- Bill payment API → Bills: loads bill
- Payment webhook handler → Status mapping: maps status
- Payment webhook handler → Payment attempts: reads and updates
- Payment webhook handler → Webhook logs: records notification
- Payment webhook handler → Bill settlement: settles bill
- Bill settlement → Bills: marks paid
- Admin user → Filament resources: manages records
- Admin user → Admin dashboard: views dashboard