Shipped: a booking and payments platform for a south-west London plumbing business
I'm Denislav, a .NET developer in Chessington, south-west London. This year I co-founded Plumbing Handyman Surrey, a plumbing and handyman business, and built the platform it runs on. It has been open to the public since October.
What it does
- A customer picks a service and a one-hour slot, adds photos and pays a £50 deposit by card. Bigger work goes through a quote request.
- The owner runs the business without a developer: every job and its money in one list, a calendar of slots, numbered PDF invoices with a link to pay the balance online, and a monthly export for the accountant.
The two problems that took the most thought
- A slot must never be sold twice. The booking runs in a database transaction with a concurrency token, so two people clicking the same slot in the same second cannot both get it.
- A payment counts only after Stripe's signed webhook confirms it. An unpaid booking frees its slot after 15 minutes, so a customer who closes the checkout page does not block the calendar.
How it is built and shipped
- ASP.NET Core MVC on .NET 10, Entity Framework Core, SQL Server…