From e0b4914e202f12e9f7fa0340baaa8ac0b3dfd65a Mon Sep 17 00:00:00 2001 From: rene Date: Fri, 24 Apr 2026 11:04:17 +0200 Subject: [PATCH] PROJEKT.md: Stand 2026-04-24, SW by-v333, Wetter/Badges/Anti-Cheat/Desktop-Tabs --- PROJEKT.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/PROJEKT.md b/PROJEKT.md index 5e46d19..033b096 100644 --- a/PROJEKT.md +++ b/PROJEKT.md @@ -46,7 +46,7 @@ Maps: Leaflet.js + OpenStreetMap (kostenlos, kein Google-Lock) --- -## Implementierungsstand (aktuell: 2026-04-23, SW by-v319, APP_VER 307) +## Implementierungsstand (aktuell: 2026-04-24, SW by-v333, APP_VER 320) ### Fertig implementiert ✅ @@ -62,7 +62,36 @@ Maps: Leaflet.js + OpenStreetMap (kostenlos, kein Google-Lock) - 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) -- Hinweis: layout.css lädt vor components.css → für Forum-Tabs ID-Selektor #page-forum nötig (Spezifität) +- 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`