Impulse AI Docs
Intern dokumentasjon
skipLink.label

Lokalt utviklingsmiljo

Denne guiden dekker alt du trenger for a sette opp et komplett lokalt utviklingsmiljo for Impulse AI, inkludert backend, database og iOS/KMP-utvikling.

Forutsetninger

heading.anchorLabel

Installer folgende verktoy for du starter:

VerktoyVersjonInstallasjon
Node.js22+brew install node@22
pnpm9+npm install -g pnpm
Docker DesktopNyestedocker.com
Xcode16+Mac App Store (for iOS-utvikling)
JDK17brew install openjdk@17
Doppler CLINyestebrew install dopplerhq/cli/doppler
Supabase CLINyestebrew install supabase/tap/supabase
GitHub CLINyestebrew install gh

Klone og installer

heading.anchorLabel
Terminal window
# 1. Klone repoet
git clone git@github.com:<org>/im.git
cd im
# 2. Installer avhengigheter
pnpm install

Doppler-oppsett (hemmeligheter)

heading.anchorLabel

Impulse AI bruker Doppler for a haandtere hemmeligheter og miljovaribler. Ingen .env-filer commites.

Terminal window
# 1. Logg inn i Doppler
doppler login
# 2. Koble til prosjektet (i repo-roten)
doppler setup
# Velg prosjekt: im
# Velg config: dev

Etter oppsett kjorer du alle kommandoer gjennom Doppler:

Terminal window
# Start utvikling med injiserte hemmeligheter
doppler run -- pnpm dev
# Eller start kun API
doppler run -- pnpm --filter api dev

Start lokale tjenester

heading.anchorLabel

Impulse AI bruker Supabase (PostgreSQL + Auth) og Redis lokalt via Docker.

Terminal window
# Start Docker-containere (Supabase + Redis)
pnpm docker:start
# Verifiser at alt kjorer
pnpm db:status
pnpm docker:verify

Forste gangs oppsett

heading.anchorLabel
Terminal window
# Kjor alle migrasjoner og seed-data
pnpm db:reset
# Generer TypeScript-typer fra databaseskjema
pnpm db:types

Kjor utvikling

heading.anchorLabel
Terminal window
# Start alle apper (API + web)
doppler run -- pnpm dev
# Eller start kun det du trenger
doppler run -- pnpm --filter api dev # Kun API
doppler run -- pnpm --filter @im/console dev # Kun Console
doppler run -- pnpm --filter @im/landing dev # Kun Landing
PortTjenesteBeskrivelse
3001API (Fastify)Backend API-server
3003LandingOffentlig nettside
3004ConsoleIntern kontrollrom
5173Docs (Starlight)Denne dokumentasjonen
54323Supabase StudioDatabaseadministrasjon (GUI)
54332PostgreSQLDatabasetilkobling
6380RedisCache og jobbkoer

Dev API token (auth bypass)

heading.anchorLabel

For raskere testing av API-et uten autentisering:

Terminal window
# 1. Generer en dev-token
openssl rand -hex 32
# 2. Legg til i Doppler (dev config) eller apps/api/.env.local
# DEV_API_TOKEN=din-genererte-token
# 3. Bruk i API-kall
curl -H "X-Dev-Token: din-genererte-token" http://localhost:3001/api/v1/impulses

Tilgjengelige testbrukere (fra seed.sql):

TierUser IDE-post
trial11111111-1111-1111-1111-111111111111trial@test.rm
foundation22222222-2222-2222-2222-222222222222foundation@test.rm
mastery33333333-3333-3333-3333-333333333333mastery@test.rm
partner44444444-4444-4444-4444-444444444444partner@test.rm

Du kan spesifisere bruker-tier med header:

Terminal window
curl -H "X-Dev-Token: token" -H "X-Dev-User-Tier: trial" http://localhost:3001/api/v1/impulses

KMP/iOS-utvikling med Cursor

heading.anchorLabel

iOS-appen kan utvikles i Cursor (eller VS Code) uten a apne Xcode GUI, ved hjelp av Sweetpad og xcode-build-server.

Installer Homebrew-verktoy

heading.anchorLabel
Terminal window
# LSP utenfor Xcode (autocomplete, jump to definition)
brew install xcode-build-server
# Pen output fra xcodebuild
brew install xcbeautify
# Swift-formattering (valgfritt)
brew install swiftformat

Installer Cursor-extensions

heading.anchorLabel

Apne Cursor, ga til Extensions (CMD+SHIFT+X):

  1. Swift (sswg.swift-lang) — syntax highlighting og Swift-stotte
  2. Sweetpad (sweetpad.hyzyla.dev) — bygg, kjor og administrer schemes fra Cursor

Generer Build Server Config

heading.anchorLabel
1. Apne repo-roten (im/) i Cursor
2. CMD+SHIFT+P -> "Sweetpad: Generate Build Server Config"
3. Bygg minst en gang (neste steg) for at LSP skal fungere
1. Pin Sweetpad-panelet i sidebaren
2. Velg target "iosApp" og destination (simulator/enhet)
3. CMD+SHIFT+B = Build & Run
EndringOppdatering
Swift-filerFull build (CMD+SHIFT+B) eller hot reload med InjectionIII
KMP (shared)Alltid full build (CMD+SHIFT+B)
1. Bygg og kjor appen (CMD+SHIFT+B)
2. F5 eller Run & Debug -> "Attach to running app (SweetPad)"
3. Sett breakpoints i Swift-koden

Hot reload med InjectionIII (kun Swift)

heading.anchorLabel

Prosjektet er allerede konfigurert med nodvendige linker-flagg og DebugInjection.swift.

  1. Installer InjectionIII fra Mac App Store
  2. Bygg og kjor appen en gang (CMD+SHIFT+B)
  3. Start InjectionIII.app -> File -> Open -> velg apps/mobile-kmp/iosApp
  4. Rediger Swift-fil -> lagre (CMD+S) -> simulator oppdateres (~1s)

Sweetpad-feilsoking

heading.anchorLabel

Hvis Sweetpad ikke finner prosjektet fra repo-roten:

  1. CMD+SHIFT+P -> Sweetpad: Generate Build Server Config, eller
  2. Opprett apps/mobile-kmp/.vscode/settings.json:
{
"sweetpad.workspacePath": "iosApp/iosApp.xcodeproj",
"sweetpad.build.scheme": "iosApp",
"sweetpad.build.configuration": "Debug"
}
Terminal window
# Apne prosjektet i Cursor fra terminal
cursor .
cursor apps/mobile-kmp
# Verifiser Cursor Agent CLI
agent --version

For a installere shell-kommandoene: Cursor -> CMD+SHIFT+P -> “Install ‘cursor’ to shell”.

Stoppe tjenester

heading.anchorLabel
Terminal window
# Stopp Docker-containere
pnpm docker:stop
# Stopp Supabase
pnpm db:stop