Owner login, the bookings dashboard and password reset
Create the owner's account by hand, add a login protected by Turnstile, lock /admin in layers with proxy.ts, requireOwner() and owner-only RLS, build a phone-first dashboard where the owner confirms, completes and cancels bookings, add the safe password reset from Lesson 10.7, and prove every lock from the outside.
Why this matters
Right now bookings land in a table that only you can see, in the Supabase dashboard. A salon owner will never open Supabase. She needs a page on her phone, between clients, that shows today's and tomorrow's requests and lets her tap Confirm after she's messaged the customer.
That page holds every customer's name and phone number, so it's the most protected part of the site. You built the protection for Adjoa in Module 9 and tightened it in Module 10. It's the same here, in the same layers:
You'll copy the generic parts from Adjoa's Kitchen (the session helper, the door, the owner check and the reset link handler) and build the business-specific pages by prompt, from business.ts.
In the full lesson
- The idea in plain English
- Do it
- Check it worked
- Understand what AI wrote
- Quick check
- What you can do now
The step-by-step, the prompt to copy, the video and the check-it-worked list, for every lesson in all 15 modules. GHS 399 ($40), paid once by mobile money or card, yours to keep.