# Fitness Antigravity (FitMop) Your personal fitness coach powered by **Google Gemini AI**, **Garmin Connect**, and **Withings**. FitMop provides a unified dashboard for analyzing activity trends, creating advanced Garmin workouts, and chatting with an AI coach that has direct access to your training data. ## Features - **📊 AI-Driven Analytics**: Deep insights into your training history via the Gemini 2.0 Flash engine. - **🔄 Garmin Sync**: Automated local synchronization of your Garmin activities and profile. - **🏋️ Advanced Workout Builder**: Drag-and-drop visual editor for creating complex Garmin strength and endurance workouts. - **🤖 AGENTIC AI Coach**: Chat with an AI that performs function calls to analyze your data and suggest improvements. - **🛡️ Modern Standards**: 100% test pass rate, strict linting (Ruff/ESLint), and global error handling. ## Project Structure - **[backend/](file:///Users/moritz/src/fitness_antigravity/backend/)**: FastAPI service, Garmin integration, and Recommendation Engine. - **[frontend/](file:///Users/moritz/src/fitness_antigravity/frontend/)**: Vue.js 3 Single Page Application. - **[data/local/](file:///Users/moritz/src/fitness_antigravity/backend/data/local/)**: Local JSON storage for privacy-first training data. ## Documentation - **[System Architecture](file:///Users/moritz/src/fitness_antigravity/ARCHITECTURE.md)** - Essential reading for developers. - **[Software Best Practices](file:///Users/moritz/src/fitness_antigravity/CONTRIBUTING.md)** - Guidelines for linting, testing, and error handling. - **[Garmin Setup](file:///Users/moritz/src/fitness_antigravity/docs/garmin_login.md)** - How to connect your account. ## Setup Instructions ### Quick Start The easiest way to run the entire project is using the **FitMop** orchestrator: 1. Run `bash fitmop.sh`. 2. Open `http://localhost:5173` in your browser. 3. Complete the setup guide on the dashboard. ### Commands - **Lint Backend**: `cd backend && uv run ruff check . --fix` - **Lint Frontend**: `cd frontend && npm run lint` - **Run Tests**: `npm run test` (frontend) / `uv run pytest` (backend) --- *Built with ❤️ for better fitness through data.*