Boat excursion booking platform
Technologies
Features
Overview
Web platform built for booking boat excursions in Lampedusa, designed to combine limited-availability booking logic with e-commerce capabilities. Users can book daily excursion slots, complete online payments, and manage changes or refunds. The system includes a dedicated admin dashboard to handle bookings, availability, pricing, and day-to-day operations, with special focus on UX to stand out from more standardized solutions.
Role
End-to-end design and development of the platform: application architecture, frontend and backend, booking logic, payment/refund integration, and admin dashboard.
What I did
Designed and built a daily-slot booking system handling dates, availability, and booking state. Integrated Stripe for online payments, full and partial refunds, and payment/booking status synchronization. Implemented commerce capabilities: experience catalogue, checkout discount codes, and newsletter integration for marketing communications. Built an admin dashboard to manage bookings, update prices, configure schedules/availability, and monitor excursion status. Implemented operational workflows for single and bulk admin-side refunds. Designed a custom UX with contextual micro-interactions to improve the booking flow.
Problems solved
Bookings and availability
The system had to handle concurrent booking attempts on the same slot. I designed the logic to keep availability, confirmations, and booking state aligned, preventing conflicts between user-side and admin-side operations.
Booking race conditions
To prevent double confirmations under simultaneous requests, booking was implemented as an atomic backend operation with data consistency checks.
Operational refund handling
Refund handling required controlled workflows, especially for manual dashboard interventions. I implemented single and bulk refund flows while preserving consistency across payment, booking, and operational state.
Other projects
A selection of other work that helps clarify my technical approach.