16 KiB
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-v356, APP_VER 343)
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
Social Media Manager (2026-04-24)
- Neue Rolle
is_social_media— eigene Seite/social - Luna KI-Coach: Themen-Vorschläge, Fortschrittsbalken, rotierende Nachrichten
- Rasse des Tages: 1003 Wiki-Rassen = 2,75 Jahre täglicher Content mit Bild
- 🎾 Trainingstipp: 104 Übungen in 7 Kategorien, 3 Stil-Varianten
- 🛁 Pflegetipp: 43 Tipps rassenspezifisch, auch für normale User im Hundeprofil
- Diversitäts-Check (Warnung wenn Kategorie >40% dominiert)
- Post-Bestätigung mit Datum + URL, Ausstehend-Banner
- Medien-Upload (Kamera/Mediathek/Dateien), Instagram-Vorschau
- XP/Level-System (Rookie → 👑 Star)
- Admin: Social-Tracking (published/scheduled/ideas + letzte 10 Posts)
Pflege-System (2026-04-24)
pflege_tippsDB-Tabelle: 43 Tipps in 10 Kategorien (Fell, Krallen, Zähne, Ohren, Augen, Pfoten, Parasiten, Saisonal, Gesundheitsvorsorge, Welpen-Pflege)- Hundeprofil: 🛁 Pflegetipps — Tipp des Tages (saisonal) + vollständige Kategorieliste
- Rassen-Autocomplete im Hundeprofil mit Wiki-Match-Badge
dogs.rasse_idFK →wiki_rassenfür präzise Filterung
Breed-Enricher Wikipedia-grounded (2026-04-24)
- Korrektheit 2.3→~4.5 durch Wikipedia-Quelltext als Basis
- Claude Haiku extrahiert Fakten aus Wikipedia-Text (de/en Fallback)
ki_source('wikipedia_de/en'/'none'),ki_modelgetrackt- LLM-as-Judge Evaluator im Admin, Gemma-Reset-Button
- 1003 Rassen, limit=2000 (ein Rutsch)
- LM Studio: Mac 10.47.11.70:11435, Modell gemma-4-31b-it
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), dynamischesitemap.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
- Soft Launch mit Giftköder-Alarm allein → viral in Hundebesitzer-Facebook-Gruppen
- Ban Yaro (der echte Hund) als Maskottchen / erster Tagebuch-Eintrag
- Hundetrainer und Tierärzte als Multiplikatoren (Experten-Badge)
- VDH-Vereinskooperation für Event-Kalender → Backlinks + Traffic
- 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
- Domain banyaro.de registriert ✓
- Domain banyaro.app registriert ✓ (banyaro.com = japanisches Rhythm-Game "バンドやろうぜ!", kein Konflikt) Strategie: banyaro.app = primäre Domain, banyaro.de → Redirect auf .app
- 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