Skip to content

Getting Started

Eric Slutz edited this page Jun 24, 2026 · 4 revisions

Getting Started

This page is for contributors setting up PumpSync locally. PumpSync has two code repositories:

  • eslutz/PumpSync: iOS app, App Store/TestFlight metadata, screenshots, app legal docs, and iOS CI.
  • eslutz/PumpSync-Backend: ASP.NET Core backend API, Docker/Compose self-hosting, Azure Container Apps infrastructure, backend workflows, data deletion tooling, and hosted/demo operations.

Requirements

For the iOS app:

  • macOS with a current Xcode install that supports the iOS 26.0 deployment target.
  • Xcode command line tools selected with xcode-select.
  • XcodeGen installed locally.

For the backend:

  • The .NET SDK version pinned by global.json.
  • Docker for container/self-host validation.
  • Azure CLI and Bicep for hosted infrastructure validation.

Install XcodeGen once:

brew install xcodegen

Clone the Repositories

git clone https://github.com/eslutz/PumpSync.git
git clone https://github.com/eslutz/PumpSync-Backend.git

In the current maintainer workstation, the backend checkout may still be named PumpSync.demo; treat that directory as the PumpSync-Backend repository when its remote is https://github.com/eslutz/PumpSync-Backend.git.

iOS App Setup

From the iOS repository:

xcodegen generate
xcodebuild -list -project PumpSync.xcodeproj
xcodebuild test -project PumpSync.xcodeproj -scheme PumpSync -destination 'platform=iOS Simulator,name=iPhone 17,OS=latest'

project.yml is the XcodeGen source of truth for schemes, configurations, build settings, entitlements, and generated project files. Do not hand-edit generated Xcode project or scheme files unless XcodeGen cannot represent a setting.

Run xcodegen generate after adding, deleting, or renaming source/resource files or changing project settings.

Backend Setup

From the backend repository:

dotnet restore PumpSync.Backend.slnx
dotnet build PumpSync.Backend.slnx
dotnet test PumpSync.Backend.slnx

Run the API directly:

ASPNETCORE_URLS=http://localhost:8080 dotnet run --project src/PumpSync.Api/PumpSync.Api.csproj
curl http://localhost:8080/api/v1/capabilities
curl http://localhost:8080/health

Run the synthetic demo container:

cp .env.example .env
docker compose up --build
curl http://localhost:8080/api/v1/capabilities
curl http://localhost:8080/health

Backend URLs

PumpSync app-entered backend URLs should include /api unless a reverse proxy intentionally maps the backend API at the domain root. The app appends /v1/... endpoint paths.

Common base URLs:

Use Base URL
Local Docker/API http://localhost:8080/api
Hosted nonprod https://ca-pumpsync-nonprod-api.gentlesea-b1e8a783.eastus2.azurecontainerapps.io/api
Production release https://api.pumpsync.ericslutz.dev/api
Public demo https://demo.pumpsync.ericslutz.dev/api

Useful Links

Clone this wiki locally