Skip to content

ShaoLongFei/GarminReport

Repository files navigation

GarminReport

Language: English | 中文

GarminReport turns your Garmin activity and health data into a polished annual report page. It is built for personal use with a privacy-first workflow and publication-ready visuals.

Live Demo

Why GarminReport

  • Narrative annual dashboard (Overview, Sports, Health, Year-over-Year)
  • Rich chart set plus 3D/2D contribution-style visualizations
  • One-click print and PDF export
  • Responsive layout for desktop and mobile
  • Local-first data flow for better privacy control

Screenshot

Sports Analysis (Desktop):

Sports Analysis Desktop

Quick Start

  1. Configure env:
cp .env.example .env
  1. Install dependencies:
python -m pip install -r requirements.txt
  1. Fill credentials in .env:
GARMIN_EMAIL=
GARMIN_PASSWORD=
GARMIN_CN=false
  1. Pull Garmin data (at least two consecutive years for YoY comparison):
python fetch_garmin_data.py --years 2024,2025

If only one year is pulled, previous-year comparison fields will be missing.

  1. Build yearly analysis:
python analyze_report_data.py --year 2025
  1. Generate report page:
python generate_report.py --year 2025

Privacy & Safety

  • garmin_report_*/ is ignored by default.
  • Secrets (.env, *.pem, *.key, *.p12) are ignored.
  • output/ is ignored except output/screenshots/*.png (for README demos).

Project Structure

requirements.txt            # Runtime dependencies
requirements-dev.txt        # Dev/test dependencies
fetch_garmin_data.py        # Pull raw Garmin data
analyze_report_data.py      # Build yearly aggregated analysis
generate_report.py          # Render final annual report HTML
templates/                  # HTML/CSS/JS templates and assets
tests/                      # Unit tests
output/screenshots/         # Demo screenshots tracked for README

Testing

python -m pip install -r requirements-dev.txt
python -m pytest tests -q

About

登录 garmin 账号,自动拉取数据并生成年度报表

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors