Release-Vorbereitung: Proxy, Kostenoptimierung, Freemium, Store-Assets

- Backend-Proxy (Cloudflare Worker in proxy/): API-Key serverseitig,
  Modell-Whitelist, max_tokens-Deckel, Tageslimits pro Gerät und IP
- Modell-Split: Analyse auf Sonnet 5, Übersetzung/Antwort auf Haiku 4.5
- Bild-Downscaling auf 2000px vor dem Upload (ScanScreen)
- Expo SDK 56 -> 57 Upgrade
- Freemium: 3 Gratis-Analysen mit lokalem Zähler und Paywall-Hinweis
- Einstellungen: API-Key-Feld nur noch im Dev-Modus (NUTZT_PROXY)
- Build-Setup: Bundle-IDs, eas.json, Splash-Screen-Plugin
- Tests: jest-expo + 17 Tests für die Ampel-/Fristlogik
- Rechtliches: Datenschutzerklärung (Entwurf), Webseite (webseite/,
  live auf behoerdenklar.pages.dev), Store-Texte (store/)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 14:14:00 +02:00
parent 88c49e1b54
commit 9dc1d8d87b
26 changed files with 6587 additions and 480 deletions

46
webseite/impressum.html Normal file
View File

@@ -0,0 +1,46 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Impressum BehördenKlar</title>
<meta name="robots" content="noindex">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
color: #1a1a2e; background: #f4f8fb; line-height: 1.7;
}
.wrap { max-width: 640px; margin: 0 auto; padding: 32px 20px 64px; }
h1 { font-size: 28px; color: #144d8c; margin: 24px 0 16px; }
.karte {
background: #fff; border-radius: 16px; padding: 24px;
box-shadow: 0 2px 8px rgba(20, 77, 140, 0.08);
}
a { color: #1a6bc4; }
.zurueck { display: inline-block; margin-top: 24px; }
</style>
</head>
<body>
<div class="wrap">
<h1>Impressum</h1>
<div class="karte">
<p><strong>Angaben gemäß § 5 DDG:</strong></p>
<p style="margin-top: 12px;">
Justin Klein<br>
Am Schwimmbad 10<br>
67722 Winnweiler<br>
Deutschland
</p>
<p style="margin-top: 12px;">
E-Mail: <a href="mailto:behoerdenbriefhelfer@gmail.com">behoerdenbriefhelfer@gmail.com</a>
</p>
<p style="margin-top: 16px;">
<strong>Verantwortlich für den Inhalt:</strong><br>
Justin Klein (Anschrift wie oben)
</p>
</div>
<a class="zurueck" href="index.html">← Zurück zur Startseite</a>
</div>
</body>
</html>