Post

Edelweiss UI — Phone-First Fahrplan Map (CuraSoft)

edelweiss-ui: daily care routes on a map — Go API + Vue/MapLibre, read-only CuraSoft snapshot, deployed on client infra.

Edelweiss UI — Phone-First Fahrplan Map (CuraSoft)

Edelweiss ambulatory care · product edelweiss-ui · 2026
Role: Platform / product engineering via ProProdukt SL
Code: git.produktor.io/edelweiss/edelweiss-ui (private client org)

Phone-first map of daily Fahrpläne: who visits which patients, where, and when — built on a read-only CuraSoft / Edelweiss data snapshot plus geocoding, not a write-back into the care system.

What it is

LayerStackPublic edge
APIGo (stdlib HTTP)back.pro-dukt.de
UIVue 3 · Pinia · Vuetify · MapLibre GLui.pro-dukt.de
DataPostgres forensic snapshot + TempListe CSV + Photon geocoderon-prem host
OpsDocker Compose · Nginx Proxy Manager · Gitea Actions CInaj-arc-edelweiss

Access is gated by a shared Bearer key (rotated ops-side). Patient-related data stays on the client network; this post describes architecture only.

Why it exists

CuraSoft already holds routes and staff calendars. Field leads need a map + timeline on a phone without changing the source of truth. The UI loads day plans, staff history, patient search, and (newer) demand calendar estimates — with an explicit banner that estimates are not Abrechnung.

Architecture (short)

1
2
3
4
5
Browser (phone)
  → ui.pro-dukt.de  (SPA + /api proxy)
  → Go API          (host network)
       ├─ Postgres cs_edw (read-only)
       └─ Photon (local OSM geocode, DE)

Startup loads staff/patients, fuzzy-matches TempListe addresses, geocodes via Photon (cached), and parses route blobs on demand. Frontend: MapLibre layers, swipeable day strip, filters, stop lists — TDD with go test + bun test; CI in Gitea Actions.

OnlyOffice: #216 DE | Edelweiss | Fahrplan Map (edelweiss-ui) (Contacts: Edelweiss + Curasoft).

Stack

Go · Vue 3 · Vuetify · MapLibre · Postgres · Photon · Docker · Gitea

This post is licensed under CC BY 4.0 by the author.