How macromaster101/vero_salon_website works
Vero Salon is a salon marketing site and booking platform. Customers discover services, complete a five-step booking, and manage visits through account popups; staff, owners, and admins use role-specific operational dashboards. The graph preserves documented booking, account, review, content, scheduling, team, and notification capabilities. Some subsystem links rely on README descriptions because their implementation files were not sampled; those links are cited to the README rather than implying source inspection.
Main entry points: (site)/page.tsx Marketing site · actions.ts Booking actions · account-modals.tsx Account popups · (protected)/page.tsx Admin console
Components 26
Public salon site
- Marketing site
src/app/(site)/page.tsx - Service catalog
src/components/home/services-tabs.tsx - Home navigation
src/components/home/bottom-nav.tsx - Translations
src/lib/i18n/translations.ts
Booking and visits
- Booking wizard
src/components/booking/booking-wizard.tsx - Booking actions
src/app/book/actions.ts - Availability rules
src/lib/availability.ts - Visit management
src/app/account/booking-actions.ts
Accounts and identity
- Account popups
src/components/account/account-modals.tsx - Account actions
src/app/account/actions.ts - Avatar resolution
src/lib/avatar.ts - Auth and role guards
src/lib/supabase/auth.ts - Auth callback
src/app/auth/callback/route.ts
Salon operations
- Admin console
src/app/admin/(protected)/page.tsx - Staff desk
src/app/staff/page.tsx - Owner dashboard
src/app/owner/(protected)/page.tsx - Reviews
src/lib/reviews.ts - Site content
src/lib/content/get.ts
Data and integrations
- Salon data queries
src/lib/queries.ts - Server data client
src/lib/supabase/server.ts - Privileged data client
src/lib/supabase/admin.ts - Visit notifications
src/lib/notify/index.ts - Supabase database
Other components
- Customer
- Resend email
- WhatsApp API
Connections 31
- Customer → Marketing site: browses
- Marketing site → Service catalog: shows services
src/app/(site)/page.tsx - Marketing site → Booking wizard: opens booking
src/app/(site)/page.tsx - Booking wizard → Booking actions: submits booking
- Booking actions → Availability rules: checks slots
- Booking actions → Supabase database: stores booking
- Customer → Account popups: manages visits
- Account popups → Visit management: reschedules or cancels
- Account popups → Account actions: updates account
- Account popups → Avatar resolution: resolves avatar
src/components/account/account-modals.tsx - Auth callback → Server data client: exchanges session
src/app/auth/callback/route.ts - Auth callback → Auth and role guards: loads profile
src/app/auth/callback/route.ts - Auth and role guards → Server data client: reads session
src/lib/supabase/auth.ts - Auth and role guards → Supabase database: reads profile
src/lib/supabase/auth.ts - Customer → Admin console: administers salon
- Customer → Staff desk: manages own schedule
- Customer → Owner dashboard: manages salon
- Admin console → Supabase database: manages salon records
- Staff desk → Supabase database: updates assigned visits
- Owner dashboard → Supabase database: manages salon records
- Admin console → Reviews: moderates reviews
- Customer → Reviews: rates completed visits
- Admin console → Site content: edits site content
- Marketing site → Site content: loads content
src/app/(site)/page.tsx - Marketing site → Salon data queries: loads salon data
src/app/(site)/page.tsx - Salon data queries → Server data client: queries data
src/lib/queries.ts - Server data client → Supabase database: reads and writes
- Booking actions → Visit notifications: notifies visit changes
- Visit management → Visit notifications: notifies changes
- Visit notifications → Resend email: sends email
- Visit notifications → WhatsApp API: sends staff alerts