# Ban Yaro — Die Hunde-Plattform > "Ban-yaro" ist ein Jedi-Meister aus der Clone-Wars-Ära (Wookieepedia/Jedipedia). > Der Name wurde von der Züchterin für einen Wurf vergeben — daher kein Namensrechts-Konflikt. --- ## Vision Ban Yaro ist die erste deutschsprachige All-in-One Hunde-Plattform: kein US-Konzern, kein App Store Zwang, DSGVO-konform, selbst gehostet. **Kern-Versprechen:** "Alles rund um deinen Hund — von Welpe bis Opa." --- ## Zielgruppe **Primär:** Deutschsprachige Hundebesitzer, 25-55 Jahre, smartphone-affin **Sekundär:** Hundeschulen, Tierärzte, Züchter, lokale Shops **Markt:** ~10 Mio. Hunde in Deutschland, ~34 Mio. in DACH --- ## Tech-Stack Konsistent mit akku-werkstatt (bewährt, bekannt): ``` Backend: FastAPI + SQLite (WAL-Modus) Frontend: Vanilla JS/HTML + CSS (PWA) Auth: JWT (HttpOnly Cookie + Bearer Token) Deploy: Docker auf Synology DS1621 Reverse: NPM (Nginx Proxy Manager) Domain: banyaro.de (zu registrieren) KI: LM Studio lokal + Claude API für komplexere Tasks Push: Web Push API (pywebpush) Maps: Leaflet.js + OpenStreetMap (kostenlos, kein Google-Lock) ``` ### PWA-First Strategie - Kein App Store nötig → sofort updatebar - "Zum Homescreen hinzufügen" auf iOS und Android - Offline-fähig via Service Worker - Web Share Target: App empfängt Fotos/Links aus anderen Apps --- ## Implementierungsstand (aktuell: 2026-04-24, SW by-v333, APP_VER 320) ### Fertig implementiert ✅ #### Sicherheit (2026-04-23) - JWT_SECRET Pflicht-Check, Rate-Limits (Login/Register/KI/Giftköder/Wiki) - Honeypot, robots.txt-Härtung, Wasserzeichen in KI-Texten - OG-Tag XSS, File-Upload-Limit, Path-Traversal-Schutz, Magic-Byte-Check - Port 5001 (DSM Admin) aus Internet entfernt, nur noch via WireGuard - Fail2ban auf NPM-Ebene (Scanner/404/Auth) #### Desktop Multi-Column Layout (≥1024px) - page-container: 680px → 860px global - Walks: Liste (340px) links + Karte rechts nebeneinander, View-Toggle ausgeblendet - Forum: Rubriken in 2 Zeilen (CSS Grid, ceil(n/2) Spalten, zentriert, minmax(0,1fr)) - Welcome: max-width 920px, Feature-Sections 2-spaltig (.welcome-sections grid) - Gesundheit, Admin, Karte-Legende: Tab-/Legende-Grid 2 Zeilen (gleiche CSS-Grid-Technik) - Hinweis: layout.css lädt vor components.css → ID-Selektor (#page-forum, #page-health, #page-admin, #page-map) nötig für Spezifität #### Infrastruktur - SSH-Port DS1621: 4711 (geändert von 22, 2026-04-24) #### Wetter & Umwelt-Alerts - GET /api/weather?lat=&lon= (Open-Meteo, 30-min TTL-Cache, kein API-Key) - Zecken-Warnung regelbasiert: März–Okt + Temp > 7°C (niedrig/mittel/hoch) - Wetterchip in Statusleiste: ☀ 9° Klar · 💧 0% · [Zecken-SVG-Icon] - Zecken-Icon: custom SVG (Phosphor-Stil, großer Körper, 4 Beinpaare) #### Badge-System (Header) - Avatar-Icon (oben rechts): roter Punkt bei persönlichen Mitteilungen (Chat, Freunde, Trainer, Sitting) - Burger-Icon: roter Punkt bei Giftköder/Verlorener Hund in der Nähe (via Geo-Alert-Check) - Nur Punkte, keine Zahlen — "Aktuelles" aus Sidebar entfernt - Backend: GET /api/notifications/badge → {personal, general} #### Giftköder-System - Push-Notification nur im 30km-Radius (statt send_push_to_all) - Standort-Tracking: push_subscriptions.last_lat/lon, aktualisiert beim Alerts-Check - Alert-Linie (Bottom-Nav): 4px, stärkerer Glow, 1.6s Puls - Nach Erledigen: Alert-Linie sofort weg (App.checkNearbyAlerts() nach resolve) - Karte und Liste refreshen sofort nach neuer Meldung #### Routen-Validierung (Anti-Cheat) - is_valid Flag auf routes-Tabelle (DEFAULT 1) - Durchschnittsgeschwindigkeit > 15 km/h → is_valid = 0 - Stats, Trophäen, Leaderboard filtern auf is_valid = 1 - Route wird trotzdem gespeichert; User bekommt neutralen Hinweis-Toast #### SEO & Auffindbarkeit - `robots.txt`, `llms.txt` (für KI-Crawler), dynamische `sitemap.xml` - Server-gerenderte Seiten (für Google/Crawler): `/info`, `/wiki/rassen`, `/wiki/rasse/{slug}`, `/knigge` - Open Graph + Twitter Card + JSON-LD in index.html - Breadcrumb-Structured-Data auf Rassen-Seiten - Google Search Console eingerichtet, 508 Seiten indexiert #### Navigation - Bottom-Nav: Karte · Routen · + · Tagebuch · Forum - Sidebar: Mein Hund (Tagebuch, Gesundheit, Übungen, Pläne) / Entdecken / Soziales / Community / Wissen (immer sichtbar, nicht mehr collapsible) - Welcome-Seite und Landing-Page auf gleiche 5-Gruppen-Struktur abgestimmt #### Wiki-Rassen - 500+ Rassen aus Wikidata/TheDogAPI - KI-Anreicherung via Claude API: Charakter, Vorkommen DE, technische Daten (Scheduler: 02:30 täglich, 20 Rassen) - "So einen hab ich" / "Interessiert mich" Community-Feature - Züchter-Verzeichnis (community-basiert, mit Moderation) - SSR-Detailseiten mit OG-Tags für jede Rasse #### Training - Session-Logging: Wiederholungen, Erfolgsquote (0-100%), Hundestimmung, Zufriedenheit (1-5) - Automatischer Tagebucheintrag bei Top-Training (≥80% + ≥4★) - Virtueller KI-Trainer: analysiert letzte 20 Sessions, 6h-gecacht - Trainingskalender (Habit-Tracker-Style, aktueller + letzter Monat) - Gamification ohne Druck: Badges, Stats-Banner, nur vorwärts zählende Streaks - Stats-API: Gesamteinheiten, Ø Erfolg, Streak, beste Übung #### Fortschritts-Lober - Jeden Montag 09:00: Claude API schreibt 2-3 Sätze Lob für die Vorwoche - Basiert auf: Tagebuch, Training, Gesundheitseinträge, Wochen-Gesamtzahl - Nur Lob, kein Rat, kein Druck — spricht über den Hund, nicht den Besitzer - Push-Notification + Karte im Tagebuch (dezent, wegklickbar) #### Hintergrund-Scheduler - Gesundheits-Reminder (08:00) - Giftköder-Archiv (03:00) - Wetter-Alert (07:30) - Meilenstein-Check (00:05) - Event-Import VDH (So 02:00) - Wiki KI-Anreicherung (02:30 täglich + Startup) - Wöchentlicher Lober (Mo 09:00) - 4× täglicher Status-Report per Mail (07:00 / 13:00 / 19:00 / 01:00) --- ## Feature-Roadmap ### Phase 1 — MVP (Version 1.0) *Ziel: Echter Nutzen ohne Community-Masse. Funktioniert auch für einen einzelnen Nutzer.* #### 1.1 Hunde-Profil & Tagebuch (Herzstück) - [ ] Hunde-Profil anlegen (Name, Rasse, Geburtstag, Foto, Chip-Nr.) - [ ] Tagebuch: Einträge mit Foto, Text, Datum, GPS-Ort (optional) - [ ] Milestone-Karten automatisch ("Ban Yaro ist heute 1 Jahr alt!") - [ ] Jahresrückblick-Generator (Premium) - [ ] PDF/Printbook-Export (Premium) - [ ] Öffentliches Profil optional (banyaro.de/hund/name) #### 1.2 Gesundheit & Impfpass - [ ] Impfungen, Entwurmungen, Tierarztbesuche digital - [ ] Medikamenten-Reminder (Push Notification) - [ ] Gewichtsverlauf-Chart - [ ] Einfacher Symptom-Checker (KI-gestützt, Triage: beobachten/Tierarzt/Notfall) #### 1.3 Giftköder-Alarm - [ ] Fundort melden (GPS + Foto + Beschreibung) - [ ] Push Notification für alle Nutzer im konfigurierbaren Radius - [ ] Karte mit aktiven Meldungen (OpenStreetMap/Leaflet) - [ ] Ablaufdatum (7 Tage ohne Bestätigung → automatisch inaktiv) - [ ] Bestätigungs- und Moderationssystem - [ ] Statistiken (Hotspots, saisonale Muster) #### 1.4 Wetter-Alert - [ ] Täglicher Push wenn Asphalt-Temperatur kritisch (>40°C) - [ ] Pollenflug-Alert (für allergische Hunde) - [ ] Gewitterwarnung mit Tipps für angstvolle Hunde - [ ] Datenquelle: Open-Meteo API (kostenlos) #### 1.5 NFC-Halsband-Tag - [ ] Hunde-Profil als öffentliche URL (ohne Login sichtbar) - [ ] Notfallkontakte ohne Nummer preiszugeben (vermittelt via App) - [ ] "Ich habe diesen Hund gefunden" Button → Owner bekommt Push + Finder-Standort - [ ] NFC-Tags als physisches Produkt anbieten (Shop-Integration, erste Monetarisierung) --- ### Phase 2 — Community (Version 2.0) *Ziel: Netzwerkeffekte aufbauen. Features die besser werden je mehr Nutzer dabei sind.* #### 2.1 Gassi-Community - [ ] Gassi-Treffen erstellen (Ort, Zeit, Hunde willkommen) - [ ] Live-Standort teilen während Spaziergang (opt-in) - [ ] Gassi-Route aufzeichnen (GPS-Track) - [ ] Routen bewerten (Untergrund, Schatten, Leinenpflicht, Sicherheit) - [ ] Routen filtern (Dauer, Schwierigkeit, hundefreundlich) #### 2.2 Verlorener Hund - [ ] Alert mit Foto + letzter GPS-Position - [ ] Alle Nutzer im Radius alarmieren - [ ] KI-Foto-Abgleich (ist das derselbe Hund?) - [ ] Automatische Meldung an Tierheime in der Region - [ ] "Held des Tages" Badge für erfolgreiche Finder #### 2.3 Hundesitting-Netzwerk - [ ] Sitter-Profil (Erfahrung, eigene Hunde, Kapazität) - [ ] Buchungsanfragen + Kalender - [ ] Bewertungen + verifizierte Buchungen - [ ] Provision: 8% (vs. 20% bei Rover/Pawshake) - [ ] Notfall-Netzwerk: Vertrauenspersonen definieren #### 2.4 Forum - [ ] Rassen-basierte Sub-Foren - [ ] Lokale Boards (PLZ-basiert) - [ ] KI-Zusammenfassung langer Threads - [ ] Experten-Badge (Tierarzt, Trainer verifiziert) - [ ] "Ähnliche Fragen" (KI-Duplikat-Erkennung) #### 2.5 Hundefreundliche Orte - [ ] Crowd-sourced Datenbank (differenziert: darf rein? Wasser? Leine?) - [ ] Foto vom Eingangsbereich - [ ] "War mit großem Hund da" spezifische Bewertungen - [ ] Negativbewertungen möglich ("Schild sagt ja, Personal sagt nein") --- ### Phase 3 — Wissen & Content (Version 2.5) *Ziel: SEO-Traffic, Nutzerbindung auch ohne aktive Community-Nutzung* #### 3.1 Hunde-Wiki - [ ] Rassen-Datenbank (Charakter, Gesundheit, Pflege) - [ ] "Passt diese Rasse zu mir?" Quiz - [ ] Gesundheits-Wiki (Zecken mit RKI-Risikogebiete-Karte, Vergiftungen, Erste Hilfe) - [ ] Recht & Regeln (Leinenpflicht, Rasselisten, Hundsteuer je Bundesland) - [ ] Community-Erfahrungsberichte je Rasse - [ ] Züchter-Verzeichnis (VDH-verifiziert) #### 3.2 Hunde-Knigge - [ ] Begegnungen (fremder Hund, Kinder, Radfahrer) - [ ] Öffentliche Orte (ÖPNV-Regeln je Stadt) - [ ] "Was wäre richtig?" Community-Szenarien mit Abstimmung - [ ] KI-Situationsberater - [ ] Haftpflicht-Ratgeber (Verbindung zu Versicherungspartner) #### 3.3 Events & Kultur - [ ] Agility-Turniere, Hundeausstellungen (VDH-Kalender scrapen) - [ ] Hundefilme (Datenbank + "Stirbt der Hund?" Rubrik) - [ ] Hundeberühmtheiten (historisch + Instagram/TikTok) - [ ] "Hund des Monats" Community-Voting --- ### Phase 4 — Smart Features (Version 3.0) *Ziel: Premium-Differenzierung, Daten-Netzwerk-Effekte* #### 4.1 Futter-Intelligence - [ ] Barcode-Scanner → Inhaltsstoffe gegen Hunde-Profil prüfen - [ ] Personalisiertes Rating (Rasse, Alter, Allergien) - [ ] Preis-Tracking (Zooplus, Fressnapf, Zooroyal) - [ ] Preisalarm via Push - [ ] Nachhaltigkeits-Score - [ ] Sammelbestellung (Gruppe kauft zusammen → Mengenrabatt) #### 4.2 Smart Collar Integration - [ ] Tractive API → GPS-Tracks in Ban Yaro einlesen - [ ] Fi Collar Integration - [ ] Automatisch: Route → Tagebuch - [ ] Geofence-Alarm → Notfall-Netzwerk aktivieren #### 4.3 EU-Reisepass - [ ] Einreiseregeln je Land (automatisch aktuell gehalten) - [ ] Checkliste für eigenen Hund ("Was brauche ich für Spanien?") - [ ] Zeitplan mit Tierarzt-Reminder - [ ] PDF-Export #### 4.4 Erziehungs-KI - [ ] Tägliches Trainings-Tagebuch (30-Sekunden-Eintrag) - [ ] Muster-Erkennung über Zeit ("Du trainierst erfolgreich morgens") - [ ] Vergleich mit anderen Hunden gleicher Rasse (anonym) - [ ] Automatischer Trainingsplan --- ## Monetarisierung ``` FREEMIUM-MODELL: Kostenlos (immer): - Hunde-Profil (max. 1 Hund) - Giftköder-Alarm - Verlorener Hund - Wiki & Knigge - Forum - Grundfunktionen Tagebuch Premium — "Ban Yaro Plus" ~4,99€/Monat: - Unbegrenzte Hunde-Profile - Tagebuch PDF/Printbook-Export - Jahresrückblick - Symptom-Checker unlimitiert - Preisalarm (unbegrenzt viele Produkte) - Futter-Barcode Scanner - Smart Collar Integration - EU-Reisepass Checkliste - Erziehungs-KI Provisions-Modell: - Hundesitting: 8% Provision (vs. 20% Rover) Physische Produkte: - NFC-Halsband-Tags: ~6€ Stück (Marge ~70%) - Jahresrückblick als gedrucktes Fotobuch (Partnerschaft) Partner-Modell (später): - Hundeschulen-Verzeichnis (verifizierter Badge) - Tierarzt-Telemedizin Weiterleitung (Affiliate) - Versicherungspartner (Haftpflicht-Ratgeber → Lead) ``` --- ## Go-to-Market ### Launch-Strategie 1. **Soft Launch** mit Giftköder-Alarm allein → viral in Hundebesitzer-Facebook-Gruppen 2. **Ban Yaro** (der echte Hund) als Maskottchen / erster Tagebuch-Eintrag 3. **Hundetrainer und Tierärzte** als Multiplikatoren (Experten-Badge) 4. **VDH-Vereinskooperation** für Event-Kalender → Backlinks + Traffic 5. **TikTok/Instagram** mit "Stirbt der Hund?" Film-Rubrik → virales Potential ### SEO-Angriffspunkte - "Giftköder [Stadt]" — stark lokaler Suchbegriff, hohe Emotion - "Hundefreundliche Restaurants [Stadt]" - "[Rasse] Erziehungstipps" - "Hund nach [Land] reisen" --- ## Technische Architektur (Detail) ``` ban-yaro/ ├── backend/ │ ├── main.py # FastAPI App │ ├── models.py # SQLite Datenbankmodelle │ ├── auth.py # JWT Auth │ ├── push.py # Web Push (pywebpush) │ ├── maps.py # Leaflet/OSM Helpers │ ├── ki.py # KI-Integration (lokal + Claude) │ ├── scraper/ │ │ ├── weather.py # Open-Meteo API │ │ ├── events.py # VDH Turnierkalender │ │ └── prices.py # Futter-Preise (Phase 4) │ └── static/ │ ├── index.html # SPA Shell │ ├── manifest.json # PWA Manifest │ ├── sw.js # Service Worker │ ├── shared.css # Design System │ └── pages/ # HTML-Seiten je Feature │ ├── docker-compose.yml ├── Dockerfile └── PROJEKT.md # Diese Datei ``` ### Datenbank-Kernmodelle ``` users → id, email, pw_hash, rolle, push_sub, created_at dogs → id, user_id, name, rasse, geburtsdatum, chip_nr, foto tagebuch → id, dog_id, datum, text, foto, gps_lat, gps_lon, typ gesundheit → id, dog_id, typ, datum, naechstes_datum, notiz giftkoedar → id, user_id, lat, lon, foto, beschreibung, bestaetigt, expires_at routen → id, user_id, gps_track (JSON), bewertung, tags events → id, titel, datum, ort_lat, ort_lon, typ, quelle orte → id, name, lat, lon, typ, hund_erlaubt, bewertung forum_posts → id, user_id, dog_id, thread_id, text, created_at ``` --- ## Nächste Schritte - [x] Domain banyaro.de registriert ✓ - [x] Domain banyaro.app registriert ✓ (banyaro.com = japanisches Rhythm-Game "バンドやろうぜ!", kein Konflikt) Strategie: banyaro.app = primäre Domain, banyaro.de → Redirect auf .app - [x] Forgejo-Repo angelegt ✓ SSH: ssh://git@dsm.motocamp.de:2222/rene/banyaro.git HTTPS: https://git.motocamp.de/rene/banyaro.git - [ ] Docker-Grundstruktur aufsetzen (wie akku-werkstatt) - [ ] Phase 1 Feature 1.1 beginnen: Hunde-Profil + Tagebuch - [ ] Design-System definieren (Farben, Fonts — Hunde-Feeling aber modern) --- *Erstellt: 2026-04-12* *Stack: FastAPI + SQLite + Vanilla PWA, Deploy auf DS1621*