# Changelog Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert. Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/), und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/). ## [33.0.0] - 2026-07-03 ### Favoriten, Persistenz, echte Filter & Modul-Architektur #### Added - **Echte Favoriten**: Stern-Button an jeder Station speichert sie in localStorage; Favoriten erscheinen auf dem Home-Screen und öffnen mit einem Tap die Abfahrten. (Vorher war der Button eine Attrappe mit `alert()`.) - **Teilen-Button**: Nutzt die native Teilen-Funktion des Geräts (Web Share API), Fallback: in Zwischenablage kopieren. - **Persistenz über App-Starts**: Letzte Station und letzte Route werden gemerkt und beim Start wiederhergestellt - ohne API-Call; geladen wird erst beim Öffnen der jeweiligen View. - **Zeitwahl in der Routensuche**: "Abfahrt um" / "Ankunft bis" mit Datum/Uhrzeit (leer = jetzt). - **Offline-Modus für Abfahrten**: Letzte Daten werden lokal gespeichert; ohne Verbindung werden sie mit Banner "Stand: vor X min" angezeigt. - **Tastatur-Navigation** in allen Stationsvorschlägen (Pfeiltasten, Enter, Escape). - **aria-Labels** für alle Icon-Buttons und Eingabefelder, `aria-live` für Statusanzeigen, sichtbarer Tastatur-Fokus. #### Fixed - **Verkehrsmittel-Filter der Routensuche funktionieren jetzt wirklich**: Die Auswahl wurde vorher komplett ignoriert (kein `products`-Parameter in der API-URL). Fähren bleiben bewusst aktiv, da es keinen Button dafür gibt. - **ReferenceError bei jedem Tastendruck behoben**: Der Search-Hint-Handler referenzierte eine Variable außerhalb ihres Scopes. - **Fake-Daten entfernt**: Zufällige Gleisnummern, erfundene "GPS-Genauigkeit ±10m" und Alert-Attrappen (Export, Kalender) wurden angezeigt, als wären es echte Informationen. - **Auto-Refresh bricht bei Fehlern nicht mehr permanent ab**: Exponentieller Backoff (30s → 60s → ... max 5min), automatische Erholung. #### Changed - **Code in 5 Module aufgeteilt** (`js/api.js`, `app.js`, `livemap.js`, `changelog.js`, `extras.js`); geteilter Zustand zentral in api.js deklariert. - **Live-Map-Marker werden bewegt statt neu erzeugt** (per tripId wiederverwendet): flüssigere Karte, offene Popups bleiben beim Update offen. - **Radar-Ergebnisanzahl an Zoom gekoppelt** (80/140/200): kleinere API-Responses bei hohem Zoom. - **Parallax-Effekt mit requestAnimationFrame gedrosselt** (max. 1 Update pro Frame statt pro Mausbewegung). - **Alle console.log-Ausgaben entfernt** (Fehler/Warnungen bleiben). ## [32.0.0] - 2026-07-02 ### Stabilität, Fehlerbehebungen & API-Optimierung #### Fixed - **Kritisch: ReferenceError-Crash behoben**: `const originalSearchJourneys = searchJourneys` referenzierte eine nie existierende Funktion. Der Fehler brach die Ausführung des restlichen Scripts ab (Hover-System, GPS-Handling u.a. luden nie). - **Kritisch: Service Worker installierte sich nie**: Die Cache-Liste enthielt `/DotMatrix.ttf` (Datei existiert nicht), wodurch `cache.addAll()` komplett fehlschlug. Dateien werden jetzt einzeln gecacht und Fehler toleriert. - **Doppeltes View-Switch-System entfernt**: Zwei konkurrierende `switchView`-Implementierungen und doppelte Menü-Handler feuerten bei jedem Klick beide. Jetzt gibt es genau ein generisches System, das alle Views (inkl. Developer) kennt. - **Doppelte `escapeHtml`-Definition entfernt**: Die zweite Version escapte keine Anführungszeichen (Risiko in HTML-Attributen). - **Changelog wurde bis zu 13× parallel geladen**: Drei redundante Lade-Mechanismen (switchView, MutationObserver, Tab-Handler) konkurrierend. Jetzt zentraler Guard, lädt genau einmal. - **Fragiler `navigator.geolocation`-Override entfernt**: `Object.defineProperty` auf navigator wirft in manchen Browsern. GPS-Buttons werden auf Desktop weiterhin versteckt. - **Pull-to-Refresh** löst nur noch in der Abfahrten-View aus. - **Endlos-Logging entfernt**: Hover-Statistiken wurden alle 30s dauerhaft in die Konsole geschrieben. #### Removed - **DotMatrix-Font komplett entfernt**: Font-Datei existierte nicht mehr im Projekt; alle Referenzen aus CSS (19 Stellen), HTML-Featureliste und Service Worker entfernt. Fallback ist überall 'Courier New', monospace. #### Changed - **Zentrale API-Schicht (`apiFetch`)**: Alle VBB-API-Aufrufe laufen jetzt durch eine Funktion mit: - **Hartem Rate-Limit von 90 Requests/Minute** (API erlaubt 100 – 10 Puffer) - **Response-Cache mit TTL pro Endpoint** (Stationssuche 6h, Nearby 2min, Abfahrten 15s, Radar 10s, Trips 60s, Journeys 30s) - **Request-Deduplizierung**: identische parallele Anfragen werden nur einmal gefeuert - **Cache-Fallback**: bei erreichtem Limit werden notfalls leicht veraltete Daten geliefert statt Fehler - **Polling pausiert im Hintergrund**: Abfahrten-Auto-Refresh (30s) und Live-Map-Radar (15s) laufen nur, wenn der Tab sichtbar UND die jeweilige View aktiv ist. Bei Rückkehr in den Tab wird einmalig aufgefrischt. - **Live-Map-Filter arbeiten lokal**: Filter-Klicks rendern die bereits geladenen Fahrzeugdaten neu, statt einen neuen Radar-Request auszulösen. - **Radar-Koordinaten werden gerundet** (3 Dezimalstellen) für stabile Cache-Treffer bei minimalen Kartenbewegungen. - **Service Worker: Network-first für App-Shell**: Nach einem Update bekommen Nutzer sofort neues HTML/JS/CSS; offline greift der Cache. API-Requests werden vom SW bewusst nicht gecacht (macht `apiFetch`). - **Autocomplete-Debounce** von 300ms auf 400ms erhöht (weniger Requests beim Tippen). - **XSS-Schutz**: Stationsnamen, Liniennamen und Richtungen aus der API werden vor dem Einfügen ins HTML escaped. - **Nutzerfreundliche Fehlermeldungen** bei erreichtem API-Limit statt kryptischer Fehler. ## [31.0.0] - 2026-02-10 ### Developer View & Auto-Changelog System #### Added - **Developer View mit Tab-System**: Neue Entwickler-Ansicht mit 3 Tabs - Changelog: Automatisch geladene Versionshistorie - Info: App-Informationen, Statistiken, Status - Features: Detaillierte Feature-Beschreibungen mit Collapsibles - **Automatisches Changelog-Loading**: CHANGELOG.md wird automatisch gefetcht und gerendert - **Markdown-zu-HTML Konverter**: Vollständiger Parser für Markdown-Syntax - Überschriften (h1-h6) - Fettdruck (**bold**) und Kursiv (*italic*) - Code-Blöcke (``` ```) und Inline-Code (`code`) - Listen (geordnet und ungeordnet) - Links [text](url) - Blockquotes (>) - Horizontale Linien (---) - Tabellen - **GitHub-Style Formatierung**: Changelog sieht aus wie auf GitHub - Hierarchische Überschriften mit Border-Bottom - Gelbe Highlights für wichtige Begriffe - Grüner Code-Text auf schwarzem Hintergrund - Responsive Typography - **Mobile-Optimierungen für Developer View**: - Kompaktere Layouts für kleine Bildschirme - Touch-optimierte Tab-Navigation (min 44px) - Horizontal scrollbare Tabs mit Scroll-Hint Animation - Bessere Lesbarkeit durch angepasste Font-Größen - Stack-Layout für Info-Boxen - Full-Width GitHub-Link Button - Landscape-Mode Support #### Changed - **Changelog-Verwaltung**: Nur noch CHANGELOG.md pflegen - keine HTML-Duplikate mehr - **Developer-Tabs Design**: Premium-Look mit Gradienten und Animationen - 3D-Button-Effekt mit Schatten - Smooth Transform-Animationen - Aktiver Tab hebt sich durch Gold-Gradient ab - Hover-Effekte auf Desktop - **Tab-Content Animation**: Fade-in beim Tab-Wechsel (0.4s cubic-bezier) - **Info-Boxen**: 2-Spalten-Layout auf Desktop, Stack auf Mobile - **Typography**: Optimierte Font-Größen für alle Breakpoints - Mobile: 12-14px - Tablet: 14-16px - Desktop: 15-18px #### Fixed - **CSS Duplikat-Fehler**: Doppelte Mobile Media Query (Zeile 2040-2130) entfernt - **Markdown Parsing**: Korrekte Konvertierung von verschachtelten Listen - **UTF-8 Encoding**: CHANGELOG.md ohne Zeichenfehler (ä, ö, ü) - **Tab-Switching**: Changelog lädt nur einmal beim ersten Öffnen - **Touch-Feedback**: Optimierte :active States für Mobile - **Scroll-Verhalten**: Smooth horizontal scrolling für Tabs mit -webkit-overflow-scrolling #### Technical Details - **Neue JavaScript-Funktionen**: - `loadChangelog()`: Fetcht und rendert CHANGELOG.md - `markdownToHtml()`: Konvertiert Markdown zu HTML (230 Zeilen) - `parseInline()`: Konvertiert inline Markdown (bold, italic, code, links) - `escapeHtml()`: Sicheres HTML-Escaping für Code-Blöcke - **CSS-Ergänzungen**: +200 Zeilen für Markdown-Formatierung - **Responsive Breakpoints**: - Mobile: < 768px - Tablet: 768-1023px - Desktop: 1024px+ - Extra Small: < 360px - Landscape Mobile: < 768px & orientation: landscape - **Performance**: Changelog cached nach erstem Load - **Browser-Support**: Chrome 80+, Safari 12+, Firefox 75+ --- ## [30.0.0] - 2026-02-10 ### Major Release - Code-Trennung & Desktop-Optimierung #### Added - **Modulare Dateistruktur**: Projekt in separate HTML, CSS und JS Dateien aufgeteilt - **Desktop-Optimierungen**: Responsive Layouts für verschiedene Bildschirmgrößen - Tablet/Desktop (768px+): 900px Container - Large Desktop (1200px+): 1100px Container mit 2-Spalten Layout - Extra Large (1600px+): 1400px Container mit 3-Spalten Layout - **Hover-Effekte**: Desktop-optimierte Interaktionen - Navigation Items - Buttons und Filter - Abfahrts-Items - Journey Results - **Live-Map Desktop-Layout**: Controls links positioniert statt oben - **Home View Desktop**: 3-Spalten Navigation auf großen Bildschirmen - **README.md**: Umfassende Dokumentation der Projektstruktur - **CHANGELOG.md**: Versionsverwaltung und Änderungsprotokoll #### Changed - **Dateistruktur**: - `index.html`: Von 4.698 auf 390 Zeilen reduziert - `styles.css`: 2.467 Zeilen (vorher inline) - `script.js`: 1.992 Zeilen (vorher inline) - **Container-Breiten**: Desktop-optimierte max-widths - Vorher: 1200px (zu breit) - Jetzt: 900px (Tablet), 1100px (Desktop), 1400px (XL) - **Navigation-Menü**: Von 280px auf 320px verbreitert - **Header-Schrift**: Desktop-Größen erhöht (36px -> 38px) - **Detail-Modal**: Responsive Breiten je nach Bildschirmgröße - Tablet: 900px - Desktop: 1100px - Extra Large: 1300px #### Fixed - **Z-Index Issue**: Popups und Modals werden jetzt korrekt über dem Header angezeigt - Header: z-index 10000 - Detail-Modal: z-index 10005 - Detail-Header: z-index 10006 - Leaflet-Popups: z-index 10010 - **Desktop-Layout**: Fehlende Optimierungen für große Bildschirme korrigiert - **Live-Map Controls**: Bessere Positionierung auf Desktop #### Technical Details - CSS-Dateigröße: 2.467 Zeilen (inkl. Desktop-Optimierungen) - JavaScript unverändert: 1.992 Zeilen - HTML-Struktur: Sauber getrennt, 390 Zeilen - Caching-Vorteile: Browser können CSS/JS separat cachen --- ## [29.0.0] - 2026-02-09 ### Vorherige Version (Monolithisch) - Alle Code in einer `index.html` Datei - 4.698 Zeilen insgesamt - Funktionale PWA mit allen Features - Optimiert für Mobile #### Features (bereits vorhanden) - Echtzeit-Abfahrten VBB/BVG - Routenplanung - Live-Fahrzeugverfolgung (Radar) - Service Worker (Offline-Fähigkeit) - PWA Manifest (Installierbar) - HTTPS Development Server - DotMatrix Font Integration - Dark Mode Design - Touch-optimiert für Mobile - Pull-to-Refresh - Leaflet.js Karten-Integration - BVG-Linienfarben - Fahrzeug-Filter (U-Bahn, Bus, Tram, S-Bahn, Regional) --- ## [28.0.0] - 2026-02-08 ### Live-Map Feature #### Added - **Live-Fahrzeugverfolgung**: Echtzeit-Karte mit Leaflet.js - **Fahrzeug-Marker**: Farbcodierte Marker für verschiedene Verkehrsmittel - U-Bahn: Blau - S-Bahn: Grün - Bus: Rot/Rosa - Tram: Orange - Regional: Grau - **Fahrzeug-Filter**: Toggle für verschiedene Verkehrsmitteltypen - **Live-Updates**: Automatisches Refresh alle 10 Sekunden - **Popup-Informationen**: Linie, Richtung, Verspätung beim Klick auf Marker - **Map Controls**: Filter-Buttons über der Karte #### Changed - **Navigation**: Neuer "Radar" Menüpunkt - **API-Calls**: Optimiert für Live-Daten (radar endpoint) - **Performance**: Marker-Clustering für bessere Performance #### Fixed - **Memory Leaks**: Alte Marker werden korrekt entfernt - **Map-Rendering**: Korrekte Tile-Layer Initialisierung --- ## [27.0.0] - 2026-02-07 ### Journey Planner Enhancements #### Added - **Umsteigezeiten-Warnung**: Farbcodierte Hinweise bei knappen Umstiegen - Grün: Ausreichend Zeit (5+ Minuten) - Orange: Knapp (3-5 Minuten) - Rot: Sehr knapp (< 3 Minuten) - **Zwischenstopps**: Anzeige aller Haltestellen auf der Route - **Platform-Informationen**: Gleis/Steig-Anzeige für alle Stops - **Journey-Details Modal**: Detaillierte Ansicht mit allen Informationen - **Swap-Button**: Von/Nach Felder tauschen per Button #### Changed - **Journey-Layout**: Verbesserte Darstellung der Verbindungen - **Icon-System**: Einheitliche Verkehrsmittel-Icons - **Touch-Targets**: Größere Buttons für bessere Bedienbarkeit #### Fixed - **Zeitberechnung**: Korrekte Berechnung von Umsteigezeiten - **API-Parsing**: Robusteres Parsing von Journey-Daten --- ## [26.0.0] - 2026-02-06 ### Departure Filters #### Added - **Verkehrsmittel-Filter**: Filter nach U-Bahn, S-Bahn, Bus, Tram - **Linien-Filter**: Filter nach spezifischen Linien (U1, U2, etc.) - **Filter-Persistenz**: Einstellungen werden gespeichert - **Filter-Counter**: Anzeige der gefilterten Abfahrten #### Changed - **Filter-UI**: Neue Filter-Leiste unter der Suche - **Performance**: Optimiertes Filtern ohne neu zu laden --- ## [25.0.0] - 2026-02-05 ### BVG Line Colors #### Added - **Original BVG-Farben**: Authentische Linienfarben - U-Bahn: Linienspezifische Farben (U1-U9) - S-Bahn: Grün - Bus: Rot/Rosa - Tram: Orange - RE/RB: Grau - **Color-Mapping**: Vollständige Farbtabelle für alle Linien - **Badge-Design**: Farbige Linien-Badges #### Changed - **Line-Badge Styling**: Größere, besser lesbare Badges - **Contrast**: Optimierter Kontrast für alle Farben --- ## [24.0.0] - 2026-02-04 ### Pull-to-Refresh #### Added - **Pull-to-Refresh Gesture**: Native-ähnliche Aktualisierung - **Refresh-Spinner**: Visuelles Feedback beim Aktualisieren - **Touch-Events**: touchstart, touchmove, touchend Handler - **Haptic Feedback**: Vibration bei erfolgreicher Aktualisierung #### Changed - **Scroll-Verhalten**: -webkit-overflow-scrolling für smoothes Scrolling - **Performance**: Debounced Refresh-Events --- ## [23.0.0] - 2026-02-03 ### Platform Information #### Added - **Gleis/Steig-Anzeige**: Anzeige der Abfahrtsplattform - **Platform-Icon**: Symbol für Gleis/Steig - **Platform-Badge**: Formatierte Darstellung #### Changed - **Departure-Layout**: Mehr Platz für Platform-Info - **API-Integration**: Korrekte Platform-Daten von VBB API --- ## [22.0.0] - 2026-02-02 ### Journey Planner #### Added - **Routenplaner**: Von/Nach Suche implementiert - **Journey-Results**: Anzeige von Verbindungen - **Journey-Legs**: Detaillierte Anzeige aller Teilstrecken - **Time-Display**: Abfahrts- und Ankunftszeiten - **Duration**: Gesamtdauer der Verbindung - **Transfers**: Anzahl der Umstiege #### Changed - **Navigation**: Neuer "Route" Menüpunkt - **API-Calls**: Integration von journeys endpoint --- ## [21.0.0] - 2026-02-01 ### Departure Details Modal #### Added - **Detail-View**: Modal mit ausführlichen Informationen - **Trip-Informationen**: Linie, Richtung, Betreiber - **Stop-Sequence**: Alle folgenden Haltestellen - **Remarks**: Hinweise und Störungen - **Close-Button**: Einfaches Schließen des Modals #### Changed - **Modal-Styling**: Fullscreen-Modal mit z-index Optimierung - **Scroll-Verhalten**: Smooth scrolling in Stop-List --- ## [20.0.0] - 2026-01-31 ### Auto-Refresh #### Added - **Automatische Aktualisierung**: Abfahrten refreshen alle 30 Sekunden - **Last-Update Timestamp**: Anzeige der letzten Aktualisierung - **Pause on Background**: Refresh stoppt bei Hintergrund-Tab - **Visual-Indicator**: Animierter Refresh-Status #### Changed - **Performance**: Optimierte API-Calls (nur Diffs laden) - **Battery-Saving**: Intelligentes Refresh-Verhalten --- ## [19.0.0] - 2026-01-30 ### Delay Information #### Added - **Verspätungsanzeige**: Rot hervorgehobene Delays - **Delay-Badge**: Minute-genaue Verspätung - **Cancelled-Status**: Markierung ausgefallener Fahrten - **On-Time Badge**: Grüner Badge bei pünktlichen Fahrten #### Changed - **Color-Scheme**: Rot für Delays, Grün für On-Time - **Departure-Layout**: Mehr Platz für Delay-Info --- ## [18.0.0] - 2026-01-29 ### GPS Location Search #### Added - **GPS-Button**: Automatische Standorterkennung - **Nearby-Stops**: Nächstgelegene Haltestellen finden - **Distance-Display**: Entfernung in Metern - **Permission-Handling**: Browser-Berechtigungen für Standort - **Loading-State**: Visuelles Feedback während GPS-Suche #### Changed - **Search-Layout**: GPS-Button neben Suchfeld - **API-Integration**: nearby endpoint #### Fixed - **Permission-Errors**: Bessere Fehlerbehandlung bei verweigerten Berechtigungen --- ## [17.0.0] - 2026-01-28 ### Station Autocomplete #### Added - **Live-Suche**: Autocomplete während der Eingabe - **Fuzzy-Search**: Fehlertolerante Suche - **Product-Tags**: Anzeige verfügbarer Verkehrsmittel - **Keyboard-Navigation**: Arrow-Keys für Auswahl - **Click-Outside**: Schließen bei Klick außerhalb #### Changed - **Suggestions-UI**: Besseres Dropdown-Design - **API-Calls**: Debounced requests (300ms) - **Performance**: Caching von Search-Results --- ## [16.0.0] - 2026-01-27 ### Real-time Departures #### Added - **VBB API Integration**: Anbindung an v6.vbb.transport.rest - **Departure-List**: Chronologische Abfahrtsliste - **Line-Badges**: Farbige Linien-Anzeige - **Direction-Display**: Fahrtrichtung/Endhaltestelle - **Time-Display**: Abfahrtszeit in Minuten oder absolut #### Changed - **API-Endpoint**: Wechsel zu VBB Transport REST API v6 - **Data-Structure**: Neue JSON-Struktur --- ## [15.0.0] - 2026-01-26 ### DotMatrix Font #### Added - **DotMatrix Font**: Original BVG-Schriftart integriert - **Font-Loading**: @font-face mit Fallback - **Typography**: Einheitliche Schrift in gesamter App #### Changed - **Font-Stack**: 'DotMatrix', 'Courier New', monospace - **Letter-Spacing**: Optimiert für Lesbarkeit --- ## [14.0.0] - 2026-01-25 ### Dark Mode Design #### Added - **Dark Theme**: Schwarzer Hintergrund (#000) - **BVG Yellow**: Primärfarbe #FFED00 - **Color-Scheme**: Vollständiges Farbkonzept - **Contrast**: WCAG-konforme Kontraste #### Changed - **Gesamtes UI**: Umstellung auf Dark Mode - **Button-Styles**: Gelb auf Schwarz - **Input-Fields**: Schwarzer Hintergrund --- ## [13.0.0] - 2026-01-24 ### Navigation System #### Added - **Sidebar-Navigation**: Slide-out Menu - **View-Switching**: Navigation zwischen verschiedenen Ansichten - **Active-States**: Hervorhebung aktiver View - **Smooth-Transitions**: Animierte View-Wechsel - **Overlay**: Backdrop beim geöffneten Menu #### Changed - **App-Structure**: Multi-View Architecture - **Menu-Icon**: Hamburger-Button im Header --- ## [12.0.0] - 2026-01-23 ### PWA Manifest #### Added - **manifest.json**: PWA Manifest-Datei - **App-Icons**: Icons in verschiedenen Größen - **Standalone-Mode**: App läuft ohne Browser-UI - **Theme-Color**: #FFED00 (BVG Yellow) - **Background-Color**: #000000 (Black) - **Display**: standalone - **Orientation**: portrait-primary #### Changed - **HTML Meta-Tags**: PWA-spezifische Meta-Tags --- ## [11.0.0] - 2026-01-22 ### Service Worker #### Added - **Service Worker**: Offline-Fähigkeit - **Cache-First Strategy**: Schnelle Ladezeiten - **Offline-Page**: Custom Offline-Seite - **Cache-Update**: Automatische Cache-Updates - **Background-Sync**: Sync bei Netzwerk-Reconnect #### Changed - **Loading-Performance**: Deutlich schnellere App --- ## [10.0.0] - 2026-01-21 ### HTTPS Development Server #### Added - **HTTPS-Server**: Node.js Server mit SSL - **Auto-SSL**: Automatische Zertifikatserstellung - **Mobile-Testing**: Echter HTTPS-Zugriff vom Handy - **Hot-Reload**: Automatisches Neuladen bei Änderungen #### Changed - **Development-Workflow**: Einfacheres Mobile-Testing --- ## [9.0.0] - 2026-01-20 ### Touch Optimizations #### Added - **Touch-Targets**: Minimum 44x44px für alle interaktiven Elemente - **Tap-Highlights**: Custom Highlight-Colors - **Touch-Feedback**: Active-States für Touch - **Gesture-Support**: Grundlegende Touch-Gesten #### Changed - **Button-Sizes**: Größere Buttons für Touch - **Spacing**: Mehr Abstand zwischen Elementen --- ## [8.0.0] - 2026-01-19 ### Responsive Design #### Added - **Mobile-First**: Optimierung für Smartphones - **Breakpoints**: 768px, 1024px, 1200px - **Fluid-Typography**: Skalierbare Schriftgrößen - **Flexible-Layouts**: CSS Grid & Flexbox #### Changed - **Gesamtes Layout**: Responsive für alle Bildschirmgrößen --- ## [7.0.0] - 2026-01-18 ### Station Search #### Added - **Search-Input**: Textfeld für Stationssuche - **Search-Button**: Suche-Button - **Clear-Button**: X zum Leeren des Suchfelds - **Loading-State**: Spinner während der Suche #### Changed - **UI-Layout**: Suchfeld prominent im Header --- ## [6.0.0] - 2026-01-17 ### Error Handling #### Added - **Error-Messages**: Benutzerfreundliche Fehlermeldungen - **API-Error-Handling**: Try-Catch für API-Calls - **Network-Error-Detection**: Offline-Erkennung - **Retry-Logic**: Automatisches Wiederholen bei Fehler #### Changed - **User-Experience**: Besseres Feedback bei Problemen --- ## [5.0.0] - 2026-01-16 ### Loading States #### Added - **Loading-Spinner**: Animierter Lade-Indikator - **Skeleton-Screens**: Platzhalter während des Ladens - **Progressive-Loading**: Schrittweises Laden von Daten #### Changed - **UX**: Klares Feedback während Ladezeiten --- ## [4.0.0] - 2026-01-15 ### API Integration #### Added - **Fetch-API**: Integration von VBB API - **CORS-Handling**: Cross-Origin Requests - **Rate-Limiting**: Respektierung von API-Limits - **Error-Responses**: Handling von API-Fehlern #### Changed - **Data-Flow**: Asynchrone Datenverarbeitung --- ## [3.0.0] - 2026-01-14 ### Basic Styling #### Added - **CSS-Framework**: Custom CSS ohne Framework - **Color-Variables**: CSS Custom Properties - **Typography**: Schrift-Hierarchie - **Button-Styles**: Einheitliche Button-Designs #### Changed - **Visual-Design**: Erste Styling-Implementierung --- ## [2.0.0] - 2026-01-13 ### HTML Structure #### Added - **Semantic-HTML**: Header, Main, Footer - **Meta-Tags**: Viewport, Description, etc. - **HTML5-Elements**: Article, Section, Nav - **Accessibility**: ARIA-Labels wo nötig #### Changed - **Document-Structure**: Semantisches HTML --- ## [1.0.0] - 2026-01-12 ### Initial Release #### Added - **Project-Setup**: Initiales Git-Repository - **Basic-HTML**: Einfache HTML-Struktur - **README**: Projekt-Dokumentation - **License**: MIT-Lizenz --- ## Projektinformationen **Entwickelt von:** Aaron K. & Claude (Anthropic) **Lizenz:** MIT **Repository:** [github.com/Serverlele30/VBB-Status-Web-App](https://github.com/Serverlele30/VBB-Status-Web-App) ### Mitwirkende - **Aaron K.** - Projektleitung, Konzept, Testing, Entwicklung - **Claude (Anthropic)** - Entwicklung, Code-Optimierung --- ## Geplante Features / Roadmap ### v32.0.0 (geplant) - API-Error Handling verbessern - Favoriten-Stationen speichern - Benachrichtigungen bei Verspätungen - Dark/Light Mode Toggle ### v33.0.0 (Ideen) - Barrierefreiheit (A11y) Audit - Mehrsprachigkeit (Englisch) - Export von Routen als iCal/PDF - Teilen-Funktion für Verbindungen - Integration mit Kalender-Apps - Offline-Modus mit Service Worker Cache --- ## Versionsschema Dieses Projekt verwendet [Semantic Versioning](https://semver.org/lang/de/): - **MAJOR** (z.B. 31.x.x): Grundlegende Änderungen, neue Features - **MINOR** (z.B. x.1.x): Neue Features, abwärtskompatibel - **PATCH** (z.B. x.x.1): Bug-Fixes, kleine Verbesserungen --- ## Support & Feedback Bei Fragen oder Problemen: 1. [GitHub Issues](https://github.com/Serverlele30/VBB-Status-Web-App/issues) 2. README konsultieren 3. Code-Kommentare lesen **Viel Erfolg mit der VBB Netz Status App!**