Laravel application
Sessionbook
Session bookings with limited places and payment tracking.
The client brief
An independent tutor wants to offer a fixed set of appointment times, reserve one place per session and track payment confirmation.
The working application
- Customer accounts, session authentication, CSRF-protected forms and owner/staff access checks.
- Fixed UTC session slots, one-place reservations, overbooking checks and unpaid cancellation.
- Test-mode hosted checkout, server-calculated amounts, signed webhooks and duplicate-event handling.
- Password recovery/change, staff catalogue management, request search, scheduled expiry of new stock/place holds, security headers and automated authorization/payment regression tests.
Setup and technical notes
Run the application
The PHP app runs separately from this static portfolio. Start Sessionbook using its README, then open port 8003. On a local portfolio preview, the button below opens it directly.
Open local app / setupFrom the portfolio-projects folder:
node scripts/run-project.mjs sessionbook migrate node scripts/run-project.mjs sessionbook serve
Payment verification
Automated tests use mocked provider responses and locally signed events. Real provider test checkout, cancellation and webhook delivery still require private test credentials. No live-money processing or production deployment is claimed.
Project files
Download Laravel sourceSource excludes vendor dependencies, private environment values, databases, logs and real data. The README includes setup and verification boundaries. Planned domain: sessionbook.mylocalrig.com.
Project scope
No tax, shipping, refunds or subscriptions. Password recovery, staff catalogue management and scheduled expiry of new unpaid holds are implemented. Mail delivery and the scheduler require host configuration; test checkout still requires provider credentials. SQLite tests do not establish production database concurrency behavior. This application is a personal project.