- UI: Polish PlanView toggles, buttons, and fix missing icons (running/activity). - Backend: Fix route shadowing in main.py, add startup route check, and improve API test coverage. - Tests: Add Playwright E2E smoke test, eslint-plugin-import, and integrate all into 'make check'. |
||
|---|---|---|
| .gemini | ||
| backend | ||
| data/local | ||
| docs | ||
| frontend | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| CONTRIBUTING.md | ||
| GEMINI.md | ||
| Makefile | ||
| README.md | ||
| fitmop.sh | ||
README.md
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/: FastAPI service, Garmin integration, and Recommendation Engine.
- frontend/: Vue.js 3 Single Page Application.
- data/local/: Local JSON storage for privacy-first training data.
Documentation
- System Architecture - Essential reading for developers.
- Software Best Practices - Guidelines for linting, testing, and error handling.
- Garmin Setup - How to connect your account.
Setup Instructions
Quick Start
The easiest way to run the entire project is using the FitMop orchestrator:
- Run
bash fitmop.sh. - Open
http://localhost:5173in your browser. - 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.