How toramiyuu/tzh-sports-centre works
This is a badminton and pickleball club portal combining court bookings, lessons, member self-service, and staff operations with shop, racket-stringing, and video-subscription features. The main customer flow is checking court availability, booking a slot, and viewing the resulting booking or receipt; members also manage lessons and absences, while staff administer schedules and billing. The graph follows the route and page structure in the tree. Sampled handlers confirm booking, availability, absence, and billing interactions with Prisma; other feature links reflect the available routes, not inspected call sites.
Main entry points: page.tsx Admin workspace · prisma.ts Application database · route.ts Court bookings · auth.ts Authentication
Components 22
User experience
- Court booking
app/booking/page.tsx - Member dashboard
app/member/page.tsx - Profile and billing
app/profile/page.tsx - Admin workspace
app/admin/page.tsx - Teacher dashboard
app/teacher/page.tsx - Leaderboard
app/api/leaderboard/route.ts
Bookings and lessons
- Court availability
app/api/availability/route.ts - Court bookings
app/api/bookings/route.ts - Recurring bookings
app/api/recurring-bookings/route.ts - Lesson scheduling
app/api/admin/lessons/route.ts - Weekly availability
app/api/member/weekly-availability/route.ts
Club operations
- Absence requests
app/api/absences/route.ts - Monthly billing
app/api/admin/monthly-payments/route.ts - Account administration
app/api/admin/accounts/route.ts
Commerce and media
- Shop orders
app/api/shop/orders/route.ts - Racket stringing
app/api/stringing/route.ts - Video subscriptions
app/api/videos/subscription/route.ts
Shared platform
- Authentication
lib/auth.ts - Validation and booking rules
lib/validation.ts - Application database
lib/prisma.ts
Other components
- Visitor or member
- Club staff
Connections 32
- Visitor or member → Court booking: opens
- Visitor or member → Member dashboard: uses
- Visitor or member → Profile and billing: manages account
- Club staff → Admin workspace: administers
- Club staff → Teacher dashboard: teaches
- Court booking → Court availability: checks slots
- Court booking → Court bookings: submits booking
- Court availability → Application database: reads schedules
- Court bookings → Authentication: checks session
- Court bookings → Validation and booking rules: validates input
- Court bookings → Application database: checks and creates bookings
- Member dashboard → Weekly availability: requests timetable
- Member dashboard → Absence requests: manages absences
- Profile and billing → Monthly billing: views billing
- Admin workspace → Court bookings: manages bookings
- Admin workspace → Recurring bookings: manages recurrence
- Admin workspace → Lesson scheduling: manages lessons
- Admin workspace → Monthly billing: administers payments
- Admin workspace → Account administration: manages accounts
- Teacher dashboard → Lesson scheduling: views lessons
- Weekly availability → Authentication: checks session
- Weekly availability → Application database: reads schedules
- Absence requests → Authentication: checks session
- Absence requests → Application database: reads and writes absences
- Monthly billing → Authentication: checks session
- Monthly billing → Application database: reads billing data
- Account administration → Authentication: checks session
- Account administration → Application database: manages accounts
- Visitor or member → Shop orders: shops
- Visitor or member → Racket stringing: orders stringing
- Visitor or member → Video subscriptions: subscribes
- Visitor or member → Leaderboard: views standings