Skip to content

andy-esch/desirelines

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

741 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desire Lines

Desire Lines

Your fitness goals made visible

A web app that transforms your Strava data into visual progress tracking. Set annual goals, watch your cumulative progress climb against your target "desire line."

Features

  • Goal Visualization - Set distance targets, track progress in real-time
  • Strava Integration - Automatic activity import via webhooks
  • Multi-Sport Support - Cycling, running, yoga, and more
  • Modern Stack - React frontend, Go/Python backend, Google Cloud Run

Quick Start

# Complete local setup
./scripts/ops/setup/setup-local.sh

# Or manually:
uv sync
cd packages/dispatcher && go mod download
cp .env.example .env

Prerequisites

  • uv - Python package manager
  • Go 1.25+
  • Pants - Build system
  • just - Task runner
  • Docker, Terraform, Google Cloud SDK

Development

We use just as our task runner. Commands default to fast native tools (uv, go, npm) but can optionally use Pants.

just test            # Run all tests (native tools)
just lint            # Lint all code (native tools)
just web-dev         # Start web dev server
just --list          # List all available commands

# Use Pants for specific commands
just py-test --pants
just go-test --pants

For full environment orchestration (Docker):

just start           # Backend pipeline with PubSub emulator
just start-frontend  # Frontend + API gateway + Postgres

Architecture

packages/
├── web/           # React frontend
├── apigateway/    # Go REST API
├── dispatcher/    # Go webhook receiver
└── stravapipe/    # Python event processors (bq-inserter, postgres-writer)

schemas/
├── proto/         # Cross-language type definitions
├── database/      # PostgreSQL migrations
└── bigquery/      # BigQuery table schemas

Data Flow: Strava webhook → dispatcher → PubSub → stravapipe → PostgreSQL/BigQuery → apigateway → web

Documentation

Contributing

This project is in active development. Contributions welcome!

About

Fitness goal tracking

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •