Skip to content

Integrations and data flows

  • Hosts the API and site deployments.
  • GitHub Actions publish web bundles or container updates into Azure-hosted environments.
  • Stores uploaded photo bytes.
  • Stores avatar bytes.
  • Does not replace the relational data store.
  • Holds structured platform data.
  • Acts as the system of record for photos, profiles, swings, courses, and logs.

The long-term AI architecture is intentionally split into stages:

  1. Lie Analysis Agent classifies the lie and returns structured observations.
  2. Stance Recommendation Agent combines the lie result with distance, swing averages, and other context to produce actionable guidance.

Used for course discovery, import, and refresh. The API adapts this data into the platform’s course entities.

Used for identity across golfer-facing surfaces and staff workflows.

Used to convert the final recommendation into immediate spoken guidance.

Client -> /api/photos/upload -> PhotoService -> Blob Storage + PostgreSQL
|
+-> ShotAnalysisPipeline -> Foundry / fallback
Client -> /api/profiles/{userId} -> ProfileService -> EfProfileRepository -> PostgreSQL
CSV upload -> SwingDataService -> parser + summaries -> PostgreSQL

When a new integration is added, prefer a narrow infrastructure adapter plus an application service boundary. That keeps vendor-specific concerns out of controllers and domain entities.