Work/Case study
Booking & operations platform
From chat-based bookings to a complete operations platform.
I designed and developed a production booking and business-management platform that centralizes scheduling, customers, payments, staff, finance, analytics, and communication.

Problem
The studio ran appointments over chat. Scheduling, deposits, staff assignment, and follow-up lived in messages, which made the calendar hard to trust and the day expensive to reconstruct.
Solution
A Next.js production system with public booking and a role-based admin platform: slots, technicians, customers, payments, invoices, finance, analytics, and communication in one place.
Outcome
Appointments, customers, deposits, staff, and finance now live in one operations platform instead of being assembled from chat.
Role
Design and full-stack development
Architecture
Integrations
Engineering challenges
Replacing chat with a trustworthy calendar
Booking had to encode studio vs home service, dual technicians, express flows, and returning clients without leaving staff to reconcile the day from messages.
Permissions that match how a studio actually runs
SUPER_ADMIN, ADMIN, MANAGER, and STAFF each need different access to slots, finance, customers, and settings. Guards live on the API, not only in the UI.
Operations around the appointment
Deposits, invoices, quotations, media, feedback, bans, and audit logs had to sit on the same data model as the booking itself.
Features
Customer
- Browse services and book online
- Date, time slot, and nail technician selection
- Studio or home-service booking
- New and returning client flows
- Dual-technician booking
- Express manicure + pedicure flow
- Payment proof and nail photo uploads
- Booking confirmations and client feedback
- SEO pages, structured data, and Open Graph
Admin platform
- Dashboard and analytics
- Appointment calendar and slot management
- Create, edit, hide, and delete slots
- Confirmation, rescheduling, and completion workflows
- Deposit tracking, invoices, quotations, and finance
- Customer profiles, VIP notes, and client bans
- Staff and nail technician management
- Website media, feedback, audit logs, and settings
Authentication & security
- Credentials authentication and Google OAuth
- bcrypt password hashing and session management
- Custom role-based access control across SUPER_ADMIN, ADMIN, MANAGER, and STAFF
- RBAC API guards, request validation, and security headers
Data model
MongoDB / Mongoose collections include:
bookingsslotscustomersbannedclientsnailtechsusersquotationsmediaassetssettingsauditlogsanalyticseventspushsubscriptionspasswordresettokensclientfeedbackfeedbacklinksbookingcountersnotificationlogsIntegrations
- Cloudinary — payment proofs, nail photos, gallery and media
- Resend — booking, payment, and password-reset email
- Google Sheets API — pricing and spreadsheet backup
- Meta Pixel and Conversions API
- Web Push — admin notifications
- jsPDF — quotations and invoices
- Recharts — finance and dashboard visualization
Engineering
- Server-side API route handlers and a domain service layer
- Mongoose data models and authentication middleware
- RBAC API guards and Zod request validation
- Security headers
- Jest tests, lint, TypeScript checks, and GitHub Actions CI
- Production builds on Vercel