How ghostmadi/clover works
Clover combines a web cabinet and public site with a mobile app, supporting social posts and profiles, messaging, booking, attendance, venue planning, resources, and administration. The tree and README establish these product areas, but the sampled source is concentrated in web authentication, admin APIs, and media uploads; links among the unsampled feature modules are therefore omitted. The clearest traced workflow is an authenticated web media upload through a same-origin route, which obtains an upload URL from an Edge Function and sends bytes to R2.
Main entry points: admin Admin console · upload/route.ts Upload proxy · auth Web authentication · callback/route.ts Auth callback
Components 21
Social
- Feed and posts
web/src/features/feed - Profiles and clusters
web/src/features/profile - Chat
web/src/features/chat - Notifications
web/src/features/notifications
Workspaces
- Booking
web/src/features/booking - Attendance
web/src/features/attendance - Venue planning
web/src/features/venue - Resources
web/src/features/resources
Platform services
- Web authentication
web/src/app/auth - Auth callback
web/src/app/auth/callback/route.ts - Media upload client
web/src/lib/r2-storage.ts - Upload proxy
web/src/app/api/r2/upload/route.ts - Upload URL function
supabase/functions/get-upload-url/index.ts - Cloudflare R2
- Supabase services
Administration
- Admin console
web/src/features/admin - Admin login and registration
web/src/app/api/admin/login/route.ts - Support inbox API
web/src/app/api/admin/support/route.ts - Platform analytics API
web/src/app/api/admin/stats/route.ts - Quiz admin API
web/src/app/api/admin/honest-quiz/route.ts
Other components
- User
Connections 25
- User → Web authentication: signs in
- Web authentication → Auth callback: returns via
- Auth callback → Supabase services: exchanges code
- User → Media upload client: uploads media
- Media upload client → Upload proxy: posts file
- Upload proxy → Supabase services: gets upload URL
- Upload proxy → Upload URL function: invokes
- Upload proxy → Cloudflare R2: puts bytes
- User → Feed and posts: browses posts
- User → Profiles and clusters: views profiles
- User → Chat: messages
- User → Notifications: checks alerts
- User → Booking: books services
- User → Attendance: tracks attendance
- User → Venue planning: plans venue
- User → Resources: browses resources
- User → Admin console: administers
- Admin console → Admin login and registration: authenticates via
- Admin console → Support inbox API: manages support
- Admin console → Platform analytics API: requests metrics
- Admin console → Quiz admin API: reviews quiz runs
- Admin login and registration → Supabase services: checks admin
- Support inbox API → Supabase services: reads and updates
- Platform analytics API → Supabase services: queries metrics
- Quiz admin API → Supabase services: queries runs