feat: Implement Analyze and Plan features, Smart Sync, Theming, and Optional Auth

This commit is contained in:
Moritz Graf
2026-01-01 14:22:48 +01:00
commit 8e55078c14
51 changed files with 5433 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
# Garmin Connect Login Setup
To sync your fitness data from Garmin Connect, you need to provide your credentials.
## Credentials Configuration
Create a `.env` file in the `backend/` directory with the following content:
```env
GARMIN_EMAIL=your_email@example.com
GARMIN_PASSWORD=your_password
```
> [!IMPORTANT]
> If you have Multi-Factor Authentication (MFA) enabled on your Garmin account, the integration will prompt you for the code during the first run. The session will be saved locally in `backend/.garth` to avoid repeated logins.
## Security Note
- The `.env` file is included in `.gitignore` and will never be committed.
- Your credentials are only used locally to authenticate with Garmin's official login service via the `garth` library.
+45
View File
@@ -0,0 +1,45 @@
# User Manual: Fitness Antigravity
Fitness Antigravity is a tool for managing your fitness data locally and getting AI-powered recommendations.
## Core Concepts
1. **Local Storage**: All data synced from Garmin or Withings is stored locally in `data/local/` as JSON files.
2. **Manual Sync**: You control when your data is updated by running the provided scripts.
3. **AI Recommendations**: Gemini analyzes your local history to suggest your next training focus.
## How to Use
### 1. Syncing Garmin Data
To download your latest workouts:
```bash
cd backend
python scripts/sync_garmin.py
```
*Note: Ensure your `.env` is configured (see [Garmin Login](garmin_login.md)).*
### 2. Creating Local Workouts
To design a strength training session:
```bash
cd backend
python scripts/create_workout.py
```
Follow the prompts to add exercises and reps. The workout will be saved in `data/local/workouts/`.
### 3. Getting Recommendations
To get advice on your next session:
```bash
cd backend
python scripts/recommend.py
```
### 4. Visualizing Data
To see your progress in the browser:
```bash
cd frontend
npm run dev
```
Open the provided URL (usually `http://localhost:5173`) to view the dashboard.
## Objectives
Your current objective is: **Trained, strong and endurance.** Gemini will tailor all recommendations to this goal.
+18
View File
@@ -0,0 +1,18 @@
# Withings Integration Setup
*Note: Withings integration is planned for a future update.*
## Requirements
To gather information from your Withings account, you will need:
1. A Withings Developer account.
2. A Client ID and Client Secret.
## Configuration
When implemented, you will add these to your `.env`:
```env
WITHINGS_CLIENT_ID=your_id
WITHINGS_CLIENT_SECRET=your_secret
```
## Data Sync
Withings data (weightings) will be stored in `data/local/withings/`.