diff --git a/backend/main.py b/backend/main.py index e0ff450..93a4f28 100644 --- a/backend/main.py +++ b/backend/main.py @@ -327,7 +327,7 @@ MEDIA_DIR = os.getenv("MEDIA_DIR", "/data/media") os.makedirs(MEDIA_DIR, exist_ok=True) app.mount("/media", StaticFiles(directory=MEDIA_DIR), name="media") -APP_VER = "732" # muss mit APP_VER in app.js übereinstimmen +APP_VER = "733" # muss mit APP_VER in app.js übereinstimmen @app.get("/api/version") async def app_version(): diff --git a/backend/static/index.html b/backend/static/index.html index ac88024..5782464 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -578,7 +578,7 @@ - + diff --git a/backend/static/js/app.js b/backend/static/js/app.js index e969406..5f77fd1 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '732'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '733'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.4.0'; // ← semantische Version, wird bei make release gesetzt const IS_STAGING = location.hostname === 'staging.banyaro.app'; diff --git a/backend/static/landing.html b/backend/static/landing.html index 9bf8b5d..4e590e0 100644 --- a/backend/static/landing.html +++ b/backend/static/landing.html @@ -391,8 +391,32 @@ box-shadow: 0 2px 12px rgba(0,0,0,.07); } .outcome-card .oc-icon { - font-size: 2rem; - margin-bottom: 0.75rem; + font-size: 0; /* Emoji-Fallback ausblenden */ + width: 3rem; + height: 3rem; + background: var(--primary-light); + border-radius: 14px; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 1rem; + flex-shrink: 0; + } + .outcome-card .oc-icon svg { + width: 1.6rem; + height: 1.6rem; + color: var(--primary); + } + .feature-card .feature-icon svg { + width: 1.4rem; + height: 1.4rem; + color: var(--primary); + } + .feature-card .feature-icon { + font-size: 0; + display: flex; + align-items: center; + justify-content: center; } .outcome-card h3 { font-size: 1.05rem; @@ -521,42 +545,58 @@
Ein Tagebuch das wirklich lebt — Fotos, GPS-Orte, Stimmungen. Schau in einem Jahr zurück und erinnere dich an jeden besonderen Moment.
Wo ist der nächste Mülleimer? Gibt es einen Kotbeutelspender? Mein Hund hat Durst — wo kann er trinken? Die Karte hat alle Antworten.
Speichere deine schönsten Strecken und teile sie mit anderen. Oder lass dir täglich eine neue Route vorschlagen — 2, 4 oder 6 km, direkt navigierbar.
Nicht einfach nur Wetter — ein Gassi-Score von 1–10. Zu heiß, zu windig, Regen im Anzug? Du weißt es bevor du die Tür aufmachst.
Impfpass, Tierarztbesuche, Medikamente — alles digital. Und was kostet mein Hund mich eigentlich? Ausgaben-Tracker inklusive.
104 Übungen mit Schritt-für-Schritt-Anleitungen. Der KI-Trainer analysiert euren Stand täglich und beantwortet auch spezielle Probleme — wie ein Profi, immer dabei.
Ein Forum nur für Hundemenschen. Fragen stellen, Erfahrungen teilen, lokale Gassi-Treffen organisieren — ohne Algorithmen, ohne Werbung.
Du musst da oder dort hin — finde jemanden der auf deinen Hund aufpasst. Hundesitting-Vermittlung mit nur 8% Provision statt 20% bei anderen.
Täglich wechselndes Foto deines Hundes, aktuelle Stats, nächster Termin, Gewicht, Übung des Tages.
Fotos, Videos, Texte und GPS-Orte — alle Momente mit deinem Hund. Kalender-, Karten- und Medien-Ansicht.
Impfungen, Tierarztbesuche, Medikamente digital verwalten. Automatische Erinnerungen per Push-Notification.
104 Übungen, Einheiten loggen, Fortschritt in 5 Stufen. Virtueller Trainer mit täglichen Empfehlungen, Streaks und Abzeichen.
KI-gestützte Ersteinschätzung: beobachten, Tierarzt oder Notfall?
43 rassenspezifische Pflegetipps in 10 Kategorien — Tipp des Tages automatisch ausgewählt.
7-Tage-Wetter, tägliche Bewertung 1–10 für Gassi-Eignung, automatische Zecken-Warnung.
Kalorienbedarf berechnen, BARF-Guide, Giftliste und KI-Futterberater.
Reisecheckliste und EU-Länder-Guide mit länderspezifischen Einreiseregeln und Impfvorschriften.
Öffentliche Profilseite für jeden Hund. Finder kontaktiert dich anonym — ohne deine Nummer preiszugeben.
GPS-Meldungen mit Foto, sofortige Push-Notification für alle Nutzer im Umkreis.
Sofortalarm für alle Nutzer in der Nähe — mit Foto, letzter GPS-Position und direktem Kontakt.
Täglich neue Rundroute — 2, 4 oder 6 km ab deinem Standort. Berechnet via OpenRouteService.
Spontane oder geplante Gassi-Treffen erstellen und finden.
Öffentlich lesbar ohne Anmeldung. Kategorien nach Rasse, Region, Gesundheit und Erziehung.
1003 Hunderassen — Wikipedia-grounded und von KI angereichert. Community-Fotos und Rassen-Quiz.
Stammbaum bis 4 Generationen, Gesundheitstests, Gentests — alles für Käufer sichtbar. Die erste Plattform die Zucht wirklich transparent macht.
Der Tierschutz-Check läuft bei jeder Verpaarung automatisch. Nicht abschaltbar — weil die Tiere zählen. Dein stärkstes Argument gegenüber Käufern.
Wurfbörse, Welpen-Verwaltung, automatischer Kaufvertrag. Interessenten schreiben direkt per Chat — du hast alles an einem Ort.
Jeder Züchter auf Ban Yaro wurde geprüft. Stammbaum und Gesundheitstests öffentlich einsehbar — bevor du fragst.
Kein Umweg über Kleinanzeigen. Schreib direkt per Nachricht, sieh Fotos der Eltern und des Wurfs.
Starte direkt mit Tagebuch, Training und Gesundheitsakte. Alles bereit für den ersten Tag.
Ebersberg, Bayern. Ein-Mann-Projekt von René Degelmann — mit großem Herz für Hunde.
@@ -984,7 +1036,7 @@Alle Daten bleiben in Deutschland. Kein US-Konzern, kein Datenhändler.
@@ -992,7 +1044,7 @@Vollständige Datenschutzerklärung, keine Tracker, keine Werbung.
@@ -1000,7 +1052,7 @@hallo@banyaro.app — kein Support-Ticket-System, echte Menschen.
diff --git a/backend/static/sw.js b/backend/static/sw.js index e03773b..0659e84 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -3,7 +3,7 @@ Offline-Cache + Push Notifications + Tile-Cache ============================================================ */ -const CACHE_VERSION = 'by-v732'; +const CACHE_VERSION = 'by-v733'; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache