How contactstudiodistrict-eng/studiodistrict works
StudioDistrict is a Chennai studio discovery and booking marketplace. Customers search live studios, inspect profiles, submit booking requests, receive owner confirmation through WhatsApp, pay online, and follow booking status. Owners create listings and approve requests; admins moderate listings and process payouts. Supabase stores marketplace state, while Razorpay, Twilio, Cloudinary, email, referrals, favourites, and reviews support surrounding capabilities. The graph combines documented product behavior with sampled route ownership; unsampled UI-to-route wiring is shown only where the README makes it explicit.
Components 29
Studio Discovery
- Discovery UI
app/page.tsx - Studio Search API
app/api/studios/route.ts - Studio Profile
app/studios/[id]/page.tsx - Favourites API
app/api/favourites/route.ts
Owner Operations
- Owner Onboarding
app/studio/onboard/page.tsx - Studio Management API
app/api/studios/[id]/route.ts - Image Signing API
app/api/cloudinary/sign/route.ts - Admin Console
app/admin/page.tsx
Booking Lifecycle
- Booking Form
app/studios/[id]/book/page.tsx - Booking API
app/api/bookings/route.ts - Booking Status
app/bookings/[id]/page.tsx - Owner Reply Handler
app/api/twilio/webhook/route.ts
Payments Rewards
- Payment Form
app/bookings/[id]/pay/PaymentForm.tsx - Payment Verification
app/api/razorpay/verify/route.ts - Payment Webhook
app/api/razorpay/webhook/route.ts - Payout Operations
app/api/admin/payouts/[id]/process/route.ts - Referral API
app/api/referral/route.ts
Platform Services
- Review API
app/api/review/[bookingId]/route.ts - Review Scheduler
app/api/cron/review-requests/route.ts - Login
app/login/page.tsx - Supabase Helpers
lib/supabase/server.ts - WhatsApp Messaging
lib/whatsapp.ts
Other components
- Customer
- Studio Owner
- Administrator
- Twilio WhatsApp
- Razorpay
- Cloudinary
- Supabase Data
Connections 40
- Customer → Discovery UI: browses studios
- Discovery UI → Studio Search API: requests search
- Studio Search API → Supabase Data: reads studios
- Customer → Studio Profile: opens profile
- Customer → Favourites API: saves studio
- Favourites API → Supabase Data: stores favourite
- Studio Owner → Owner Onboarding: creates listing
- Owner Onboarding → Studio Management API: submits studio
- Studio Management API → Supabase Data: writes listing
- Owner Onboarding → Image Signing API: requests upload
- Image Signing API → Cloudinary: signs upload
- Studio Management API → WhatsApp Messaging: notifies admin
- Customer → Booking Form: requests booking
- Booking Form → Booking API: submits booking
- Booking API → Supabase Data: creates booking
- Booking API → WhatsApp Messaging: notifies owner
- WhatsApp Messaging → Twilio WhatsApp: sends WhatsApp
- Studio Owner → Twilio WhatsApp: replies YES/NO
- Twilio WhatsApp → Owner Reply Handler: dispatches reply
- Owner Reply Handler → Supabase Data: updates booking
- Owner Reply Handler → WhatsApp Messaging: sends payment link
- Customer → Payment Form: pays booking
- Payment Form → Razorpay: starts checkout
- Razorpay → Payment Verification: returns payment
- Payment Verification → Supabase Data: records payment
- Payment Verification → WhatsApp Messaging: confirms booking
- Razorpay → Payment Webhook: posts event
- Payment Webhook → Supabase Data: updates payment
- Payment Webhook → Payout Operations: creates payout
- Administrator → Admin Console: moderates platform
- Admin Console → Studio Management API: approves studios
- Admin Console → Payout Operations: processes payouts
- Referral API → Supabase Data: reads rewards
- Payment Verification → Referral API: credits referral
- Review Scheduler → Supabase Data: creates requests
- Customer → Review API: submits review
- Review API → Supabase Data: stores review
- Customer → Login: signs in
- Login → Supabase Helpers: authenticates user
- Booking Status → Supabase Data: reads status