How neo193/oneclub-next works
One Club is a membership, benefits, events and partner-services application with public, member and staff experiences. The main user path runs from public membership information and authentication into a member portal, where members manage membership, pay, book events, browse benefits and request support. Staff workspaces administer members, events, partners, tiers, refunds and support. The graph reflects sampled code and the README; unsampled workspace internals are represented at their existing directory paths, without asserting their call details.
Main entry points: profile.ts Profile and access · server.ts Server data client · client.ts Browser data client · portal Member portal
Components 26
Public site
- Public pages
src/app/(public) - Public content UI
src/components/public - Enquiry form
src/components/public/enquiry-form.tsx
Identity
- Login and invitations
src/app/(auth) - Authentication UI
src/components/auth - Auth callback
src/app/auth/callback/route.ts
Member portal
- Member portal
src/app/(member)/portal - Member services
src/components/member - Event booking
src/components/member/event-booking-view.tsx - Membership payment
src/components/member/membership-payment.tsx
Staff operations
- Staff workspaces
src/app/(staff)/staff - Staff administration
src/components/staff - Diagnostics API
src/app/api/technical-diagnostics/route.ts
Services and data
- Payment client
src/lib/payments/razorpay.ts - Payment service
supabase/functions/razorpay-payments/index.ts - Account deletion
supabase/functions/account-deletion/index.ts - Profile and access
src/lib/auth/profile.ts - Server data client
src/lib/supabase/server.ts - Browser data client
src/lib/supabase/client.ts - Database contract
src/types/database.ts - Supabase
- Razorpay
- Cloudflare APIs
Other components
- Visitor
- Member
- Staff
Connections 35
- Visitor → Public pages: browses
README.md - Public pages → Public content UI: renders
src/app/(public)/about/page.tsx - Public pages → Enquiry form: offers enquiries
- Visitor → Login and invitations: signs in
- Login and invitations → Authentication UI: uses
- Login and invitations → Auth callback: continues authentication
- Auth callback → Server data client: exchanges session
src/app/auth/callback/route.ts - Auth callback → Profile and access: validates redirect
src/app/auth/callback/route.ts - Member → Member portal: uses
README.md - Member portal → Profile and access: requires profile
src/app/(member)/portal/page.tsx - Member portal → Server data client: reads claims and tiers
src/app/(member)/portal/page.tsx - Member portal → Member services: renders membership UI
src/app/(member)/portal/page.tsx - Member services → Event booking: provides event booking
- Member services → Membership payment: provides checkout
- Event booking → Browser data client: uses data client
src/components/member/event-booking-view.tsx - Event booking → Payment client: starts payment
src/components/member/event-booking-view.tsx - Membership payment → Payment client: starts payment
src/components/member/membership-payment.tsx - Payment client → Browser data client: gets session
src/lib/payments/razorpay.ts - Payment client → Payment service: calls service
src/lib/payments/razorpay.ts - Payment service → Supabase: processes payment data
- Payment service → Razorpay: processes checkout
- Staff → Staff workspaces: uses
README.md - Staff workspaces → Staff administration: presents workspaces
- Staff workspaces → Profile and access: uses profile and navigation
src/app/(staff)/staff/page.tsx - Staff administration → Browser data client: uses data client
src/components/staff/member-administration-workspace.tsx - Diagnostics API → Profile and access: checks access
src/app/api/technical-diagnostics/route.ts - Diagnostics API → Server data client: queries diagnostics
src/app/api/technical-diagnostics/route.ts - Diagnostics API → Cloudflare APIs: checks deployment and security
src/app/api/technical-diagnostics/route.ts - Server data client → Supabase: creates server client
src/lib/supabase/server.ts - Browser data client → Supabase: creates browser client
src/lib/supabase/client.ts - Profile and access → Server data client: loads profile
src/lib/auth/profile.ts - Profile and access → Database contract: types profile
src/lib/auth/profile.ts - Server data client → Database contract: types queries
src/lib/supabase/server.ts - Browser data client → Database contract: types queries
src/lib/supabase/client.ts - Account deletion → Supabase: handles deletion