Client portal: /my-bookings for logged-in clients #13
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
A client-facing portal at /my-bookings where registered clients can see their own booking history, track payment status, and download their signed contracts. Requires #10 and #12.
Access
lisilou-clients(orlisilou-photographers) group can viewPage layout (
src/my-bookings.html)Matches the portfolio color theme. Header shows client name and Logout button.
Active / upcoming bookings
Card layout (not a table — more client-friendly):
Past bookings
Collapsed accordion below active bookings. Same card layout, muted styling.
Empty state
If no bookings: friendly message + Book a Session button linking back to the main portfolio.
API endpoints
GET /api/client/bookings— returns only bookings whereclient_email = req.session.user.emailGET /api/client/bookings/:id/contract— streams signed PDF only ifclient_emailmatches session userBooking form integration
nginx
/my-bookings→ servesrc/my-bookings.html/api/client/→ proxy to api serviceAcceptance
Confirmed implemented in commit
84fdfdf(2026-07-16, overnight session): GET /api/my-bookings, owner-gated contract download at GET /api/my-bookings/:id/contract, src/my-bookings.html, nginx route. Closing — found this while picking up work from a separate session and reconciling repo state.