# Fitness Antigravity Your personal fitness coach powered by Gemini CLI, Garmin Connect, and Withings. ## Features - **Data Sync**: Sync your Garmin workouts and Withings weightings locally. - **Visualization**: Beautiful Vue JS frontend to track your progress. - **Strength Training**: Create custom Garmin strength workouts locally. - **Gemini Recommendations**: Get AI-driven training advice for endurance and strength. - **100% Test Coverage**: Robust Python backend with full unit test coverage. ## Project Structure - `backend/`: Python source code and unit tests. - `frontend/`: Vue JS web application. - `data/local/`: Local storage for synced fitness data. - `docs/`: Detailed documentation and setup guides. ## Setup Instructions ### Quick Start (FitMop) 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. Enter your Garmin credentials in the UI. They will be stored securely in `.env_garmin`. ### Manual Backend Setup 1. Navigate to `backend/`. 2. Install `uv` if you haven't: `brew install uv`. 3. Install dependencies: `uv sync`. ### Frontend 1. Navigate to `frontend/`. 2. Install dependencies: `npm install`. 3. Start the dev server: `npm run dev`. ## Usage - Run sync scripts manually to update local data. - Use the CLI/TUI in `backend/` to create workouts and get recommendations. ## Documentation - [Garmin Login Setup](docs/garmin_login.md) - [Withings Integration](docs/withings_login.md) - [User Manual](docs/user_manual.md)