How kyu-bai/macrosync works
MacroSync is a mobile fitness and nutrition app. Users authenticate, complete personal-goal onboarding, then track meals, hydration, weight, and workouts from the dashboard; they can also scan food, request recipes, use a location-aware food radar, and chat with an AI fitness assistant. The React Native app calls a FastAPI backend for account and tracking operations and Gemini-powered features, with Supabase as the documented data and auth service. Edges are limited to README statements and source-index/import or excerpt evidence; unsampled screen wiring is not asserted.
Main entry points: App.js App navigator · index.py FastAPI routes · api.js API configuration · StepThree.jsx Goal onboarding
Components 23
Mobile experience
- App navigator
Frontend/App.js - Authentication
Frontend/src/hooks/useAuthLogin.js - Sign-up flow
Frontend/src/hooks/useAuthSignUp.js - Settings
Frontend/src/screens/main/Settings.jsx - Notifications
Frontend/src/services/NotificationService.js
Setup and preferences
- Goal onboarding
Frontend/src/screens/onboarding/StepThree.jsx - Baseline setup
Frontend/src/hooks/useStepOneBaseline.js - Goal setup
Frontend/src/hooks/useStepTwoGoals.js - Dietary setup
Frontend/src/hooks/useStepThreeDietary.js - Language context
Frontend/src/context/LanguageContext.jsx
Tracking and discovery
- Dashboard tracking
Frontend/src/screens/main/Dashboard.jsx - Workout player
Frontend/src/screens/main/Workout.jsx - Food scanner
Frontend/src/screens/main/FoodScanner.jsx - Recipes and radar
Frontend/src/screens/main/DietRecipes.jsx - AI chatbot
Frontend/src/screens/main/ChatbotAI.jsx
API and services
- API configuration
Frontend/src/screens/config/api.js - Offline storage
Frontend/src/services/OfflineStorage.js - FastAPI routes
Backend/index.py - Translation catalog
Backend/translations_data.py - Supabase
- Gemini AI
- Resend email
Other components
- User
Connections 28
- User → App navigator: uses
README.md - App navigator → Authentication: routes to
Frontend/App.js - Authentication → API configuration: requests
Frontend/src/hooks/useAuthLogin.js - Sign-up flow → API configuration: requests
Frontend/src/hooks/useAuthSignUp.js - App navigator → Goal onboarding: routes to
Frontend/App.js - Goal onboarding → Baseline setup: uses
- Goal onboarding → Goal setup: uses
- Goal onboarding → Dietary setup: uses
Frontend/src/screens/onboarding/StepThree.jsx - App navigator → Dashboard tracking: routes to
Frontend/App.js - App navigator → Workout player: renders
Frontend/App.js - App navigator → Offline storage: reads cache
Frontend/App.js - Dashboard tracking → Offline storage: queues offline
Frontend/src/screens/main/Dashboard.jsx - Dashboard tracking → API configuration: requests
Frontend/src/screens/main/Dashboard.jsx - Workout player → API configuration: requests
Frontend/src/screens/main/Workout.jsx - App navigator → Food scanner: routes to
Frontend/App.js - App navigator → Recipes and radar: routes to
Frontend/App.js - App navigator → AI chatbot: routes to
Frontend/App.js - Food scanner → FastAPI routes: analyzes image
README.md - Recipes and radar → FastAPI routes: generates recipe
README.md - AI chatbot → FastAPI routes: sends message
Frontend/src/screens/main/ChatbotAI.jsx - API configuration → FastAPI routes: targets
Frontend/src/screens/config/api.js - Settings → Notifications: configures
Frontend/src/screens/main/Settings.jsx - Settings → Language context: uses
Frontend/src/screens/main/Settings.jsx - Language context → API configuration: fetches translations
Frontend/src/context/LanguageContext.jsx - FastAPI routes → Supabase: reads and writes
README.md - FastAPI routes → Gemini AI: uses AI
README.md - FastAPI routes → Resend email: sends OTP
README.md - FastAPI routes → Translation catalog: serves catalog
Backend/index.py