PROJEKT.md: Stand 2026-04-24, SW by-v333, Wetter/Badges/Anti-Cheat/Desktop-Tabs

This commit is contained in:
rene 2026-04-24 11:04:17 +02:00
parent 9151c14306
commit e0b4914e20

View file

@ -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ärzOkt + 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`