Skip to content
99ersstudio
All work
Mobile Apps/Live

TGA-Assistent

Guided four-Gewerk Auslegungs- und Orientierungstool für SHK-Profis. Heizung, Lüftung, Kälte, Sanitär. 258 Tests, PDF-Export, offline.

4
Gewerke
258
tests
19
test suites

The problem

The existing apps in the SHK / building-services market each cover only one slice — manufacturer catalogues, formula calculators, training apps, or normsdatenbanken. None of them sit in front of a planner who has just walked into a Heizungsraum and wants a fast, explainable orientation: how big is the heat load, what kühllast does the Serverraum need, what Luftwechselrate does this Versammlungsraum want, where do I have to plan the Trinkwasser-Zapfstellen. Reproducing DIN / VDI / VOB / BKI text would be a legal minefield, and full design-grade Auslegung is outside the scope of a phone app — but a guided orientation tool with own-authored Richtwerte and clear Disclaimer is exactly the gap.

How we built it

  1. 01Built a four-Gewerk tree (Heizung, Lüftung, Kälte, Sanitär) on a consistent four-level pattern: `Rubriken → Arten → Detail (V/N/Normen) → Auslegung`. Each Gewerk lives in its own `src/data/<gewerk>/` and `app/<gewerk>/` folder so a fifth one is a copy-paste-and-fill task.
  2. 02Kept all engine logic in pure TypeScript under `src/lib/engine/` — `estimateHeatDemand`, `estimateCost`, `identifySystem`, `assessNeeds`, plus an `explain` module that emits the per-factor breakdown used in the result UI. 258 ts-jest tests across 19 suites cover engine, costs, climate, traverse, integration pipelines, tree integrity.
  3. 03Wrote every Richtwert ourselves (W/m² base values, correction factors, Kosten-Bänder, Luftwechsel- and Zapfstellen-Tabellen) so we don't reproduce DIN / VDI / VOB / BKI text. Every result screen carries an explicit Disclaimer that the output is rough orientation, not normative Auslegung.
  4. 04Added smart features that pay for themselves on every run: PLZ → Klimazone auto-lookup, Fördermittel hints (BEG / KfW) inlined on result screens, Warmwasser-Bedarfsberechnung, Heizkörper-Orientierung, HTML → PDF export for Heizlast + Kosten via a share wrapper, and an offline AsyncStorage history of past assessments.
  5. 05Shipped v1.0.0 with branding, eas.json profiles (preview APK / production app-bundle / dev client), GitHub Actions CI (lint + test on push/PR), a manual `build-apk.yml` workflow, and Play Store listing + Datenschutz copy ready to go.

Outcome

v4.0 complete — all four Gewerke active, all Rubriken populated. Lüftung: 5 Rubriken, 25 Systeme, 8 Normen, Luftwechsel-Tabelle (22 Raumtypen). Heizung: 6 Subflows (Heizlast, Kosten, Identify, Needs, Checks, Warmwasser, Heizkörper). Kälte: 3 Rubriken, 11 Systeme, 7 Normen, Kühllast-Richtwerte. Sanitär: 3 Rubriken, 12 Systeme, 9 Normen, Zapfstellen + Anschlusswerte. 258 of 258 tests passing, German UI throughout with proper umlauts, no external state-management library, no backend.

Stack

React NativeExpoTypeScriptts-jestAsyncStorage

Expo 52 · React Native 0.76 · TypeScript strict · ts-jest · AsyncStorage for offline history · HTML → PDF via the platform share sheet · GitHub Actions for CI + APK builds · EAS for store builds.

Next up

v5.0 planned: DWD Open Data for precise location-specific Klimadaten, BKG Open Data for extended PLZ-Geo-Mapping, Destatis Baupreisindex for time-indexed Kosten-Bänder, plus a Pilot-Firmen-Feldback loop to calibrate the Kosten-Bänder. All four require a network stack, which the current offline-only build deliberately avoids.

More case studies