back to the projects

Apple Health Tracker

My Apple Watch data, charted in Slack every day

Apple Health Tracker screenshot
Apple Health Tracker

Overview

Every hour, the Auto Export app sends my steps, calories, heart rate and sleep from Apple Health to a small FastAPI server, which stores them in SQLite. Once a day, a scheduled job runs the stats, draws the charts with Matplotlib and posts them in a Slack channel of my own. The data comes from my Apple Watch and a calorie tracking app, Calorie Striker.

Why I built this

I'm a bit obsessed with collecting data about myself, between the Apple Watch and a calorie tracking app. I wanted to do something with all of it. Daily charts in Slack are the first step.

How it works

  • Collection. The Apple Watch and a calorie tracking app record steps, calories, heart rate, sleep and more.
  • Hourly export. The Auto Export app sends the new data to the API every hour.
  • Storage. A FastAPI backend receives the metrics and stores them in SQLite.
  • Daily analysis. A scheduled job runs the stats and draws the charts with Matplotlib.
  • Slack. The charts land in a personal Slack channel every day.

Tech stack

Backend

Python FastAPI SQLAlchemy SQLite

Data & Visualization

Pandas NumPy Matplotlib

Infrastructure

Docker APScheduler Slack SDK