How donthamgopinathreddy-jpg/cotrainr works
Cotrainr is a Flutter fitness and wellness app for clients, trainers, and nutritionists, combining fitness consistency, guidance, tracking, and community. The documented user journey begins with sign-in, then branches into discovering providers and requesting connections, and using the app’s quest, social, and profile areas. Sampled backend functions support lead handling, entitlements, video sessions, Zoom account connection, and push delivery. The README describes additional app capabilities, but Flutter source is absent from the supplied tree, so their internal wiring cannot be verified; those branches are shown at documented directory level.
Main entry points: lib Cotrainr app · home Home navigation · create-video-session/index.ts Video sessions · zoom-oauth-callback/index.ts Zoom connect callback
Components 22
Mobile app
- Cotrainr app
lib - Sign-in and signup
lib/pages/auth - Home navigation
lib/pages/home
Fitness and community
- Provider discovery
lib/pages/discover - Quests and challenges
lib/pages/quest - Social feed
lib/pages/cocircle - User profile
lib/pages/profile
Supabase services
- Provider leads
supabase/functions/create-lead/index.ts - Lead status
supabase/functions/update-lead-status/index.ts - Plan entitlements
supabase/functions/get-entitlements/index.ts - Video sessions
supabase/functions/create-video-session/index.ts - Zoom connect start
supabase/functions/zoom-oauth-start/index.ts - Zoom connect callback
supabase/functions/zoom-oauth-callback/index.ts - Zoom disconnect
supabase/functions/zoom-disconnect/index.ts - Push delivery
supabase/functions/send-push-notification/index.ts - Verification file links
supabase/functions/get-verification-signed-url/index.ts
External integrations
- Supabase database
- Supabase Storage
- Zoom
- Firebase Cloud Messaging
Other components
- Client
- Trainer or nutritionist
Connections 28
- Client → Cotrainr app: uses
- Trainer or nutritionist → Cotrainr app: uses
- Cotrainr app → Sign-in and signup: navigates
- Cotrainr app → Home navigation: opens
- Home navigation → Provider discovery: navigates
- Home navigation → Quests and challenges: navigates
- Home navigation → Social feed: navigates
- Home navigation → User profile: navigates
- Sign-in and signup → Supabase database: authenticates via
- Provider discovery → Provider leads: creates request
- Provider leads → Supabase database: calls RPC
- Lead status → Supabase database: calls RPC
- Cotrainr app → Lead status: updates lead
- Cotrainr app → Plan entitlements: requests limits
- Plan entitlements → Supabase database: reads plans
- Cotrainr app → Video sessions: creates session
- Video sessions → Supabase database: writes session
- Video sessions → Zoom: creates meeting
- Cotrainr app → Zoom connect start: requests auth URL
- Zoom connect start → Zoom connect callback: redirects via OAuth
- Zoom connect callback → Zoom: exchanges code
- Zoom connect callback → Supabase database: stores tokens
- Cotrainr app → Zoom disconnect: disconnects account
- Zoom disconnect → Supabase database: deletes tokens
- Push delivery → Supabase database: reads preferences
- Push delivery → Firebase Cloud Messaging: sends messages
- Cotrainr app → Verification file links: requests link
- Verification file links → Supabase Storage: creates signed URL