FitMop/README.md

37 lines
2.1 KiB
Markdown

# 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.*