Add files via upload

This commit is contained in:
Serverlele30 authored and GitHub committed 2026-02-10 10:49:35 +01:00
1 parent fbd97dc9d5
commit 3688c5743e
5 files changed
+887 -365

No files matched your search

+104 -363
View File
@@ -1,391 +1,132 @@
# Changelog # Changelog
All notable changes to this project will be documented in this file. Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/).
## [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] - 2025-12-31 ## [29.0.0] - 2026-02-09
### ✨ Added ### Vorherige Version (Monolithisch)
- **GitHub-Integration:** Links zur Repository auf der Home-Page - Alle Code in einer `index.html` Datei
- **Changelog GitHub-Link:** "📖 Alle Updates & Code auf GitHub" Button nach neuesten Updates - 4.698 Zeilen insgesamt
- **Footer GitHub-Link:** "⭐ Star on GitHub" unter "Made with ❤️" - Funktionale PWA mit allen Features
- **Hover-Effekte:** Interaktive Buttons mit Animations - Optimiert für Mobile
### 🎨 Changed ### Features (bereits vorhanden)
- GitHub-Links mit BVG-Farbschema (Gelb/Schwarz) - ✅ Echtzeit-Abfahrten VBB/BVG
- Responsive Buttons für Mobile & Desktop - ✅ 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] - 2025-12-31 ## Projektinformationen
### 🐛 Fixed **Entwickelt von:** Aaron K. & Claude (Anthropic)
- **Bug-Fix:** Abfahrten-View nicht mehr beim ersten Laden sichtbar **Lizenz:** MIT
- Home-View ist jetzt korrekt die einzige aktive View beim Start **Repository:** https://github.com/Serverlele30/VBB-Status-Web-App
### ✨ Changed ### Mitwirkende
- **Header-Title:** "Live-Nahverkehr für Berlin & Brandenburg" statt "ECHTZEIT-ABFAHRTSMONITOR" - Aaron K. - Projektleitung, Konzept, Testing
- **Credits:** Aaron K. & Claude (Anthropic) im Header erwähnt - Claude (Anthropic) - Entwicklung, Code-Optimierung
- **Navigation-Hinweis:** Pfeil entfernt für klareren Text
- **Font-Credit:** Nur @NikBLN gelb und verlinkt (nicht "DotMatrix by")
### 📝 Added
- Vollständige README.md für GitHub
- GitHub-formatiertes CHANGELOG.md
--- ---
## [26.0] - 2025-12-31 ## Geplante Features / Roadmap
### ✨ Added ### v31.0.0 (geplant)
- **Kombinierte Hero-Box:** Navigation + Hero in einer Box - [ ] API-Error Handling verbessern
- **Pfeil zeigt nach rechts:** Richtung zum Menü-Button - [ ] Favoriten-Stationen speichern
- [ ] Benachrichtigungen bei Verspätungen
- [ ] Dunkles/Helles Theme umschaltbar
- [ ] Historische Daten und Statistiken
### 🎨 Changed ### v32.0.0 (Ideen)
- Kompakteres Design durch kombinierte Box - [ ] Barrierefreiheit (A11y) Audit
- Text "oben rechts" statt "hier oben" - [ ] Mehrsprachigkeit (Englisch)
- [ ] Export von Routen als iCal/PDF
- [ ] Teilen-Funktion für Verbindungen
- [ ] Integration mit Kalender-Apps
--- ---
## [25.0] - 2025-12-31 ## Versionsschema
### ✨ Added Dieses Projekt verwendet [Semantic Versioning](https://semver.org/lang/de/):
- **Home/Landing-Page:** Neue Startseite beim App-Load
- **Navigation-Hinweis:** Pfeil zeigt zum Menü-Button
- **Quick-Info Cards:** 3 Feature-Cards (Desktop nebeneinander, Mobile untereinander)
- **Features-Box:** Detaillierte technische Features
- **Two-Column Layout:** Updates | Info nebeneinander (Desktop)
### 🎨 Changed - **MAJOR** (X.0.0): Breaking Changes, große Architekturänderungen
- "Info" statt "Credits" als Box-Titel - **MINOR** (0.X.0): Neue Features, abwärtskompatibel
- VBB-Gebiet korrekt: "Berlin & Brandenburg" - **PATCH** (0.0.X): Bugfixes, kleine Verbesserungen
- Kompaktere Paddings und Fonts (~20% kleiner)
--- ---
## [24.0] - 2025-12-31 ## Support & Feedback
### ✨ Added Bei Fragen oder Problemen:
- **Two-Column Layout:** Changelog und Credits nebeneinander 1. GitHub Issues: https://github.com/Serverlele30/VBB-Status-Web-App/issues
2. README konsultieren
3. Code-Kommentare lesen
### 🎨 Changed **Viel Erfolg mit der VBB Netz Status App! 🚇🚌🚊**
- Verbesserte Home-Page mit kompakterem Design
- Intro-Text statt Feature-Cards
---
## [23.0] - 2025-12-31
### ✨ Added
- **Home-Screen:** Erste Version der Landing-Page
- **Feature-Übersicht:** 4 Feature-Cards mit Icons
- **Changelog:** Integriert auf Home-Page
- **Credits:** Vollständige Attribution
---
## [22.0] - 2025-12-31
### ✨ Added
- **Dynamischer Page-Title:** Browser-Tab zeigt aktive View
- "VBB Netz Status - Abfahrten"
- "VBB Netz Status - Route"
- "VBB Netz Status - Live-Map"
---
## [21.0] - 2025-12-31
### ✨ Added
- **Dynamische Bounds:** Live-Map lädt nur sichtbare Fahrzeuge
- **API-Optimierung:** Bis zu 69% weniger Daten bei Zoom-in
- **Auto-Reload beim Map-Bewegen:** Immer aktuelle Fahrzeuge im Sichtbereich
### 🎯 Changed
- 15% Puffer-Zone um Map-Bounds für smooth UX
- Effizientere API-Calls
---
## [20.0] - 2025-12-31
### ✨ Added
- **Leaflet Map Integration:** Interaktive Karte statt statischer Einbettung
- **Custom Marker:** Fahrzeuge als Custom Icons mit Linienfarben
### 🎨 Changed
- Verbesserte Map-Performance
- Bessere Mobile-Unterstützung
---
## [19.0] - 2025-12-31
### ✨ Added
- **Echte BVG-Farben:** Authentische Linienfarben für 40+ Linien
- U-Bahn: U1-U9 Original-Farben
- S-Bahn: Grün + Ringbahn Orange
- Tram: Metro-Tram Rot + Tram Gelb
- Bus: Gelb + Metro-Bus Rot
- **Linienbezeichnung unter Icon:** Mit echter Farbe
- **Touch-optimiert:** Keine Zoom-Buttons auf Mobile
### 🎨 Changed
- Farbschema für alle Verkehrsmittel aktualisiert
- Bessere visuelle Unterscheidung
---
## [18.0] - 2025-12-31
### ✨ Added
- **Linien-basierte Filterung:** U-Bahn, S-Bahn, Tram, Bus separat
- **Präzise Station-Line Mappings:** Custom extrahierte Daten für 1000+ Stationen
### 🎨 Changed
- Verbesserte Filter-Funktionalität
- Genauere Linien-Zuordnungen
---
## [17.0] - 2025-12-31
### ✨ Added
- **Live-Update Intervall:** 30 Sekunden Auto-Refresh
- **Manueller Refresh-Button:** In Live-Map View
### 🎨 Changed
- Optimierte Update-Strategie
- Bessere Performance bei Live-Updates
---
## [16.0] - 2025-12-31
### ✨ Added
- **Live-Map Feature:** Echtzeit-Fahrzeugverfolgung
- Dark-Mode Karte (CartoDB)
- Filter nach Fahrzeugtyp
- Live-Positions-Updates
- **3-Tab Navigation:** Abfahrten | Route | Live-Map
### 🎨 Changed
- Navigation erweitert um Live-Map Tab
- UI angepasst für 3 Views
---
## [15.0] - 2025-12-31
### ✨ Added
- **Detaillierte Fußwege:** Distanz + Gehzeit für alle Walking-Legs
- **Robuste Stationserkennung:** Funktioniert auch bei unvollständigen Namen
### 🎨 Changed
- Verbesserte Journey-Details
- Klarere Fußweg-Darstellung
---
## [14.0] - 2025-12-31
### ✨ Added
- **Garantierte 5 Min Umstiegszeit:** Alle Routen mit mindestens 5 Min Transfer
- **Intelligente Route-Berechnung:** API-Parameter optimiert
### 🎨 Changed
- Realistischere Routenplanung
- Weniger verpasste Anschlüsse
---
## [13.0] - 2025-12-31
### ✨ Added
- **Routenplaner-View:** Neue Tab für Journey-Planning
- **Start/Ziel-Suche:** Mit GPS-Unterstützung
- **Alternative Routen:** Mehrere Optionen anzeigen
### 🎨 Changed
- 2-Tab Navigation: Abfahrten | Route
- Optimierte Layout-Struktur
---
## [12.0] - 2025-12-31
### ✨ Added
- **Auto-Refresh Toggle:** An/Aus Schalter im Header
- **Smart Value Update:** Nur Values ändern, kein Re-Render
### 🎯 Changed
- Performantere Refresh-Strategie
- Weniger DOM-Manipulation
---
## [11.0] - 2025-12-31
### ✨ Added
- **30s Auto-Refresh:** Automatische Aktualisierung alle 30 Sekunden
- **Countdown-Anzeige:** "Auto-Refresh in: 28s"
### 🎨 Changed
- Immer aktuelle Abfahrten ohne manuellen Refresh
---
## [10.0] - 2025-12-31
### ✨ Added
- **Pull-to-Refresh:** Touch-basiert auf Mobile
- **Haptic Feedback:** Vibration bei Aktionen (navigator.vibrate)
- **Loading-Spinner:** Während Refresh
### 🎨 Changed
- Native App-ähnliches Verhalten
- Bessere Mobile-UX
---
## [9.0] - 2025-12-31
### ✨ Added
- **Detaillierte Trip-Modal:** Per Tap auf Abfahrt
- **Alle Zwischenstopps:** Mit Ankunfts-/Abfahrtszeiten
- **Swipe-to-Close:** Auf Mobile
### 🎨 Changed
- Mehr Informationen pro Trip
- Bessere Detail-Ansicht
---
## [8.0] - 2025-12-31
### ✨ Added
- **Autocomplete-Suche:** Live-Vorschläge während Eingabe
- **Keyboard-Navigation:** ↑↓ + Enter
- **Touch-optimiert:** Große Tap-Targets
### 🎯 Changed
- Schnellere Stations-Suche
- Bessere UX
---
## [7.0] - 2025-12-31
### ✅ Added
- **Offline-Modus:** Gespeicherte Abfahrten anzeigen
- **Offline-Indikator:** "📵 Offline-Modus" Banner
- **localStorage Caching:** Letzte Abfahrten speichern
### 🎨 Changed
- App funktioniert auch ohne Internet
- Cached Daten als Fallback
---
## [6.0] - 2025-12-31
### ✨ Added
- **Service Worker:** PWA-Funktionalität
- **Offline-Caching:** Statische Assets cached
- **Install-Prompt:** "Als App installieren"
### 🎨 Changed
- App ist jetzt installierbar
- Funktioniert offline
---
## [5.0] - 2025-12-31
### ✨ Added
- **GPS-Standort:** Automatische Station finden
- **"Standort verwenden" Button:** Mit Loading-State
- **Fehlerbehandlung:** Wenn GPS fehlschlägt
### 🎨 Changed
- Schnellerer Zugriff auf nahegelegene Stationen
- Weniger manuelle Suche nötig
---
## [4.0] - 2025-12-31
### ✨ Added
- **Kategorie-Filter:** U-Bahn, S-Bahn, Tram, Bus, Fähre
- **Default: Alle außer Bus/Fähre:** Weniger "noise"
- **Toggle-Buttons:** An/Aus für jede Kategorie
### 🎨 Changed
- Übersichtlichere Abfahrten-Liste
- Fokus auf wichtige Linien
---
## [3.0] - 2025-12-31
### ✨ Added
- **Verspätungen:** Rot markiert mit Delay-Info
- **Ausfälle:** Durchgestrichen mit "Fällt aus"
- **Gleis/Steig:** Bei verfügbar angezeigt
### 🎨 Changed
- Mehr Informationen pro Abfahrt
- Bessere visuelle Unterscheidung
---
## [2.0] - 2025-12-31
### ✨ Added
- **Live-Abfahrten:** Echtzeit-Daten von VBB API
- **Relativer Countdown:** "in 3 Min" statt absoluter Zeit
- **Verkehrsmittel-Icons:** 🚇🚊🚋🚌⛴️
### 🎨 Changed
- Funktionale Abfahrtsanzeige
- Echte Daten statt Mockups
---
## [1.0] - 2025-12-30
### ✨ Added
- **Initial Release**
- **Basic HTML/CSS/JS Structure**
- **BVG-Styling:** DotMatrix Font + Gelb/Schwarz
- **Responsive Design:** Mobile-First
### 🎨 Changed
- Basis-Framework erstellt
- Design-System etabliert
---
## Legende
- ✨ **Added:** Neue Features
- 🎨 **Changed:** Änderungen an bestehenden Features
- 🐛 **Fixed:** Bug-Fixes
- 🎯 **Improved:** Performance/UX-Verbesserungen
- ✅ **Completed:** Fertiggestellte Features
- ⚠️ **Deprecated:** Veraltete Features
- 🗑️ **Removed:** Entfernte Features
---
## Contributing
Wenn du einen Bug findest oder ein Feature vorschlagen möchtest, öffne bitte ein [GitHub Issue](https://github.com/Serverlele30/VBB-Status-Web-App/issues).
---
Made with ❤️ for Berlin & Brandenburg
+469
View File
@@ -0,0 +1,469 @@
# 🤝 Contributing Guide
Danke, dass du zu VBB Netz Status beitragen möchtest! Diese Anleitung hilft dir, loszulegen.
## 📋 Inhaltsverzeichnis
- [Code of Conduct](#code-of-conduct)
- [Wie kann ich beitragen?](#wie-kann-ich-beitragen)
- [Entwicklungsumgebung](#entwicklungsumgebung)
- [Coding Standards](#coding-standards)
- [Pull Request Prozess](#pull-request-prozess)
- [Bug Reports](#bug-reports)
- [Feature Requests](#feature-requests)
---
## 🤝 Code of Conduct
### Unsere Versprechen
- Respektvoller Umgang mit allen Contributors
- Konstruktive, freundliche Diskussionen
- Fokus auf das Beste für das Projekt und die Community
- Akzeptanz von konstruktiver Kritik
### Unerwünschtes Verhalten
- Beleidigungen oder persönliche Angriffe
- Trolling oder provozierende Kommentare
- Veröffentlichung privater Informationen
- Unprofessionelles Verhalten
---
## 💡 Wie kann ich beitragen?
### 1. Code Contributions
- **Bugfixes**: Behebe bekannte Bugs aus Issues
- **Features**: Implementiere neue Features (nach Diskussion)
- **Optimierungen**: Verbessere Performance oder Code-Qualität
- **Tests**: Füge Tests hinzu (falls vorhanden)
### 2. Dokumentation
- **README verbessern**: Ergänze fehlende Informationen
- **Code-Kommentare**: Dokumentiere komplexe Funktionen
- **Tutorials**: Erstelle Anleitungen für Nutzer
- **Übersetzungen**: Hilf bei mehrsprachiger Unterstützung
### 3. Design
- **UI/UX Verbesserungen**: Optimiere Benutzeroberfläche
- **Icons & Assets**: Erstelle/verbessere Icons
- **Responsive Design**: Verbessere Mobile/Desktop Layouts
- **Accessibility**: Erhöhe Barrierefreiheit
### 4. Testing
- **Bug Testing**: Teste auf verschiedenen Geräten
- **Browser Compatibility**: Prüfe verschiedene Browser
- **Performance Testing**: Messe Ladezeiten & Optimierungen
- **User Feedback**: Sammle Rückmeldungen von Nutzern
---
## 🔧 Entwicklungsumgebung
### Setup
1. **Repository forken**
```bash
# Auf GitHub: Fork-Button klicken
```
2. **Dein Fork klonen**
```bash
git clone https://github.com/DEIN_USERNAME/VBB-Status-Web-App.git
cd VBB-Status-Web-App
```
3. **Upstream Repository hinzufügen**
```bash
git remote add upstream https://github.com/Serverlele30/VBB-Status-Web-App.git
```
4. **Dependencies installieren**
```bash
npm install
```
5. **Development Server starten**
```bash
npm start
```
### Entwicklungs-Workflow
1. **Neuen Branch erstellen**
```bash
git checkout -b feature/deine-feature-beschreibung
# oder
git checkout -b fix/bug-beschreibung
```
2. **Änderungen vornehmen**
- Editiere `index.html`, `styles.css`, `script.js`
- Teste lokal: `https://localhost:3000`
3. **Regelmäßig committen**
```bash
git add .
git commit -m "feat: Kurze Beschreibung der Änderung"
```
4. **Mit Upstream synchronisieren**
```bash
git fetch upstream
git rebase upstream/main
```
5. **Push zu deinem Fork**
```bash
git push origin feature/deine-feature-beschreibung
```
---
## 📝 Coding Standards
### HTML
```html
<!-- ✅ Gut: Saubere Struktur, semantisches HTML -->
<section class="departure-list" aria-label="Abfahrten">
<article class="departure-item">
<h3>Alexanderplatz</h3>
</article>
</section>
<!-- ❌ Schlecht: Keine Semantik, unleserlich -->
<div class="dl"><div class="di"><div>Alexanderplatz</div></div></div>
```
### CSS
```css
/* ✅ Gut: BEM-ähnliche Konvention, kommentiert */
/* Departure Item Container */
.departure-item {
padding: 15px;
background-color: #0a0a0a;
}
.departure-item__header {
display: flex;
justify-content: space-between;
}
/* ❌ Schlecht: Unklar, keine Kommentare */
.di {
padding: 15px;
}
```
### JavaScript
```javascript
// ✅ Gut: Beschreibende Namen, Kommentare, Error Handling
async function loadDepartures(stationId) {
try {
const response = await fetch(`${API_BASE}/stops/${stationId}/departures`);
if (!response.ok) throw new Error('API Error');
const data = await response.json();
return data.departures;
} catch (error) {
console.error('Failed to load departures:', error);
showErrorMessage('Abfahrten konnten nicht geladen werden');
return [];
}
}
// ❌ Schlecht: Kryptische Namen, kein Error Handling
async function ld(s) {
const r = await fetch(`${API_BASE}/stops/${s}/departures`);
return await r.json();
}
```
### Commit Messages
Folge [Conventional Commits](https://www.conventionalcommits.org/):
```bash
# Format: <type>(<scope>): <subject>
# Typen:
feat: # Neues Feature
fix: # Bugfix
docs: # Dokumentation
style: # Formatierung (kein Code-Change)
refactor: # Code-Refactoring
perf: # Performance-Verbesserung
test: # Tests hinzufügen
chore: # Build, Dependencies
# Beispiele:
git commit -m "feat(live-map): Add vehicle type filter"
git commit -m "fix(departures): Handle empty API response"
git commit -m "docs(readme): Update installation instructions"
git commit -m "style(css): Format departure items"
git commit -m "perf(api): Cache API responses for 30s"
```
---
## 🔀 Pull Request Prozess
### 1. Vorbereitung
- [ ] Code funktioniert lokal
- [ ] Keine Console Errors
- [ ] Responsive Design getestet
- [ ] Code kommentiert
- [ ] CHANGELOG.md aktualisiert (bei größeren Changes)
### 2. Pull Request erstellen
1. Gehe zu deinem Fork auf GitHub
2. Klicke "Pull Request" → "New Pull Request"
3. Base: `Serverlele30/VBB-Status-Web-App` → `main`
4. Compare: `dein-username/VBB-Status-Web-App` → `dein-branch`
### 3. PR Beschreibung
```markdown
## Beschreibung
Kurze Zusammenfassung der Änderungen
## Typ der Änderung
- [ ] Bugfix
- [ ] Neues Feature
- [ ] Breaking Change
- [ ] Dokumentation
## Wie getestet?
- [ ] Chrome Desktop
- [ ] Firefox Desktop
- [ ] Safari Mobile
- [ ] Chrome Mobile
## Screenshots (falls UI-Änderungen)
[Screenshot hier einfügen]
## Checklist
- [ ] Code folgt Style Guide
- [ ] Selbst-Review durchgeführt
- [ ] Kommentare hinzugefügt
- [ ] CHANGELOG.md aktualisiert
- [ ] Keine neuen Warnings
```
### 4. Review Prozess
- Maintainer werden deinen PR prüfen
- Möglicherweise werden Änderungen angefragt
- Nach Approval: Merge in main branch
- Branch kann gelöscht werden
---
## 🐛 Bug Reports
### Gutes Bug Report Template:
```markdown
**Beschreibung des Bugs**
Kurze, klare Beschreibung was passiert.
**Reproduktion**
Schritte um den Bug zu reproduzieren:
1. Gehe zu '...'
2. Klicke auf '...'
3. Scrolle nach '...'
4. Sieh Fehler
**Erwartetes Verhalten**
Was sollte stattdessen passieren?
**Screenshots**
Falls zutreffend, füge Screenshots hinzu.
**Umgebung:**
- Browser: [z.B. Chrome 120, Firefox 121]
- OS: [z.B. Windows 11, macOS 14, iOS 17]
- App Version: [z.B. v30.0.0]
- Mobile/Desktop: [z.B. iPhone 15 Pro]
**Zusätzlicher Kontext**
Console Errors, Network Logs, etc.
```
### Bug Issue erstellen:
1. Gehe zu: https://github.com/Serverlele30/VBB-Status-Web-App/issues
2. Klicke "New Issue"
3. Label: `bug`
4. Fülle Template aus
---
## 💡 Feature Requests
### Gutes Feature Request Template:
```markdown
**Problem/Motivation**
Welches Problem würde dieses Feature lösen?
Beispiel: "Es ist schwierig, Favoriten-Stationen zu speichern..."
**Vorgeschlagene Lösung**
Wie könnte das Feature implementiert werden?
Beispiel: "Ein 'Favoriten'-Button neben jeder Station..."
**Alternativen**
Welche anderen Lösungen hast du in Betracht gezogen?
**Mockups/Wireframes**
Falls vorhanden, füge Design-Ideen hinzu.
**Zusätzlicher Kontext**
Andere Apps die ähnliche Features haben, etc.
```
### Feature Request erstellen:
1. Gehe zu Issues
2. Label: `enhancement`
3. Diskutiere Feature mit Maintainern
4. Nach Approval: Implementierung starten
---
## 🎨 Design Guidelines
### Farbschema
```css
/* Primärfarben */
--yellow: #FFED00; /* BVG Gelb */
--black: #000000; /* Hintergrund */
--white: #FFFFFF; /* Text */
/* Linienfarben (BVG Standard) */
--u1: #55A823; /* U1 Grün */
--u2: #C00000; /* U2 Rot */
--u3: #028D4C; /* U3 Grün */
/* ... siehe styles.css für alle Linien */
/* Graustufen */
--gray-dark: #1a1a1a;
--gray-medium: #333333;
--gray-light: #666666;
```
### Typografie
```css
/* Hauptschrift: DotMatrix (Retro BVG-Look) */
font-family: 'DotMatrix', 'Courier New', monospace;
/* Größen */
--text-xs: 10px;
--text-sm: 12px;
--text-base: 14px;
--text-lg: 16px;
--text-xl: 20px;
--text-2xl: 24px;
--text-3xl: 32px;
```
### Spacing
```css
/* 4px Base Unit */
--spacing-1: 4px;
--spacing-2: 8px;
--spacing-3: 12px;
--spacing-4: 16px;
--spacing-5: 20px;
--spacing-6: 24px;
```
---
## 🧪 Testing Checklist
Vor Pull Request:
### Browser Compatibility
- [ ] Chrome (neueste Version)
- [ ] Firefox (neueste Version)
- [ ] Safari (neueste Version)
- [ ] Edge (neueste Version)
### Geräte
- [ ] Desktop (1920x1080+)
- [ ] Laptop (1366x768)
- [ ] Tablet (768x1024)
- [ ] Mobile (375x667 - iPhone SE)
- [ ] Mobile (414x896 - iPhone 11)
### Features
- [ ] Abfahrten laden funktioniert
- [ ] Routenplanung funktioniert
- [ ] Live-Map zeigt Fahrzeuge
- [ ] Service Worker cached korrekt
- [ ] PWA Installation funktioniert
- [ ] Offline-Modus funktioniert
### Performance
- [ ] Ladezeit < 3s
- [ ] Keine Memory Leaks
- [ ] Smooth Scrolling
- [ ] Keine Layout Shifts
---
## 📚 Ressourcen
### APIs
- **VBB API**: https://v6.vbb.transport.rest/api.html
- **BVG Farben**: Siehe `getBVGLineColor()` in script.js
### Libraries
- **Leaflet.js**: https://leafletjs.com/
- **Leaflet Docs**: https://leafletjs.com/reference.html
### Tools
- **Chrome DevTools**: Browser Console, Network Tab
- **Lighthouse**: Performance Audit
- **Can I Use**: Browser Compatibility Check
---
## ❓ Fragen?
Bei Fragen:
1. **GitHub Discussions**: (falls aktiviert)
2. **Issues**: Stelle Fragen als Issue mit Label `question`
3. **README/Docs**: Prüfe vorhandene Dokumentation
---
## 🎉 Danke!
Vielen Dank für dein Interesse an VBB Netz Status! Jeder Beitrag, egal wie klein, hilft das Projekt zu verbessern.
**Happy Coding! 🚇🚌🚊**
---
**Maintainer:**
- Aaron K. ([@Serverlele30](https://github.com/Serverlele30))
- Claude (Anthropic)
**Lizenz:** MIT
+310
View File
@@ -0,0 +1,310 @@
# 🚀 Installation & Setup
Diese Anleitung führt dich Schritt für Schritt durch die Installation der VBB Netz Status App.
## 📋 Voraussetzungen
### Erforderlich:
- **Node.js** v16.0.0 oder höher
- **npm** v8.0.0 oder höher
- **OpenSSL** (für HTTPS-Zertifikate)
### Optional:
- **Git** (zum Klonen des Repositories)
---
## 🔧 Installation
### Option 1: Mit Git
```bash
# Repository klonen
git clone https://github.com/Serverlele30/VBB-Status-Web-App.git
# In Projektverzeichnis wechseln
cd VBB-Status-Web-App
# Abhängigkeiten installieren
npm install
```
### Option 2: Download als ZIP
1. Repository als ZIP herunterladen
2. ZIP entpacken
3. Terminal/Kommandozeile öffnen
4. In Projektverzeichnis navigieren
5. Abhängigkeiten installieren:
```bash
npm install
```
---
## ▶️ Server starten
### Entwicklungsserver (HTTPS)
```bash
npm start
# oder
npm run dev
```
Der Server startet automatisch auf `https://localhost:3000`
### Beim ersten Start:
1. **SSL-Zertifikat wird generiert**
- Der Server erstellt automatisch ein selbstsigniertes Zertifikat
- Gespeichert in: `./certs/`
2. **Browser-Warnung akzeptieren**
- Chrome/Edge: "Erweitert" → "Weiter zu localhost"
- Firefox: "Erweitert" → "Ausnahme hinzufügen"
- Safari: "Details" → "Diese Website besuchen"
3. **App öffnet sich**
- URL: `https://localhost:3000`
- Die App lädt automatisch
---
## 📱 Mobile Testing
### Im lokalen Netzwerk testen:
1. **IP-Adresse finden:**
**Windows:**
```bash
ipconfig
# Suche nach "IPv4-Adresse"
```
**Mac/Linux:**
```bash
ifconfig
# oder
ip addr show
```
2. **Auf Mobile-Gerät öffnen:**
```
https://DEINE_IP:3000
```
Beispiel: `https://192.168.1.100:3000`
3. **Zertifikatswarnung akzeptieren**
- Auf dem Smartphone die Warnung bestätigen
- "Trotzdem fortfahren" wählen
---
## 🏗️ Projektstruktur
```
vbb-netz-status/
├── index.html # HTML-Struktur
├── styles.css # Alle Styles (Dark Mode, Responsive)
├── script.js # App-Logik (Abfahrten, Routen, Live-Map)
├── server.js # HTTPS-Development-Server
├── service-worker.js # PWA Service Worker (Offline)
├── manifest.json # PWA Manifest (Installation)
├── package.json # Node.js Konfiguration
├── LICENSE # MIT Lizenz
├── README.md # Projekt-Dokumentation
├── CHANGELOG.md # Versions-Historie
├── INSTALLATION.md # Diese Datei
├── .gitignore # Git-Ignore-Liste
├── certs/ # SSL-Zertifikate (auto-generiert)
│ ├── cert.pem
│ └── key.pem
└── images/ # App-Assets (Icons, Favicons)
└── favicon.png
```
---
## 🔐 HTTPS & SSL-Zertifikate
### Warum HTTPS?
- **PWA-Anforderung**: Service Worker benötigt HTTPS
- **Geolocation API**: Browser verlangen sichere Verbindung
- **Best Practice**: Moderne Web-Standards
### Zertifikate neu generieren:
```bash
# Alte Zertifikate löschen
rm -rf certs/
# Server neu starten (generiert automatisch neue)
npm start
```
### Manuell generieren (falls OpenSSL verfügbar):
```bash
mkdir -p certs
openssl req -x509 -newkey rsa:4096 -keyout certs/key.pem -out certs/cert.pem -days 365 -nodes -subj "/CN=localhost"
```
---
## 🐛 Troubleshooting
### Problem: "npm: command not found"
**Lösung:** Node.js installieren
- Download: https://nodejs.org/
- Empfohlen: LTS-Version
### Problem: "Port 3000 already in use"
**Lösung 1:** Anderen Prozess beenden
```bash
# Windows
netstat -ano | findstr :3000
taskkill /PID <PID> /F
# Mac/Linux
lsof -ti:3000 | xargs kill -9
```
**Lösung 2:** Port in `server.js` ändern
```javascript
const PORT = 3001; // Statt 3000
```
### Problem: "OpenSSL not found"
**Lösung (Windows):**
1. Git Bash verwenden (enthält OpenSSL)
2. Oder OpenSSL separat installieren: https://slproweb.com/products/Win32OpenSSL.html
**Lösung (Mac):**
```bash
brew install openssl
```
**Lösung (Linux):**
```bash
sudo apt-get install openssl
```
### Problem: "Cannot GET /"
**Lösung:** Stelle sicher, dass alle Dateien vorhanden sind:
```bash
ls -la
# Sollte index.html, styles.css, script.js enthalten
```
### Problem: Service Worker funktioniert nicht
**Lösung:**
1. Browser-Cache leeren (Ctrl+Shift+Del)
2. Service Worker deregistrieren:
- Chrome DevTools → Application → Service Workers → Unregister
3. Seite neu laden (Ctrl+F5)
---
## 🎨 Anpassungen
### Port ändern:
In `server.js`:
```javascript
const PORT = 3001; // Dein gewünschter Port
```
### Cache-Version ändern:
In `service-worker.js`:
```javascript
const CACHE_NAME = 'vbb-status-v31'; // Neue Version
```
### Farben anpassen:
In `styles.css`:
```css
/* Hauptfarbe ändern */
--primary-color: #FFED00; /* BVG Gelb */
--background-color: #000; /* Schwarz */
```
---
## 📦 Dependencies
### Produktions-Dependencies:
- **mime-types** (^2.1.35): MIME-Type Detection für Server
### Keine Dev-Dependencies:
- Projekt läuft ohne Build-Prozess
- Keine Transpiler oder Bundler nötig
---
## 🚀 Deployment
### Für Produktion:
1. **Statisches Hosting** (Empfohlen):
- GitHub Pages
- Netlify
- Vercel
- Cloudflare Pages
2. **Node.js Server** (Optional):
- Heroku
- DigitalOcean
- AWS
- Google Cloud
### GitHub Pages Deployment:
```bash
# Für GitHub Pages
git add .
git commit -m "Deploy to GitHub Pages"
git push origin main
# Settings → Pages → Source: main branch
```
---
## 📞 Support
Bei Problemen oder Fragen:
1. **GitHub Issues**: https://github.com/Serverlele30/VBB-Status-Web-App/issues
2. **README konsultieren**: Enthält zusätzliche Infos
3. **CHANGELOG prüfen**: Bekannte Probleme und Fixes
---
## ✅ Checkliste nach Installation
- [ ] Node.js installiert (v16+)
- [ ] npm installiert (v8+)
- [ ] Repository geklont/heruntergeladen
- [ ] `npm install` ausgeführt
- [ ] Server startet ohne Fehler
- [ ] `https://localhost:3000` öffnet die App
- [ ] Zertifikatswarnung akzeptiert
- [ ] Mobile-Testing funktioniert (optional)
- [ ] PWA installiert (optional)
---
**🎉 Viel Erfolg mit der VBB Netz Status App!**
Entwickelt von Aaron K. & Claude (Anthropic)
Lizenz: MIT
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "vbb-netz-status", "name": "vbb-netz-status",
"version": "29.0.0", "version": "30.0.0",
"description": "Live-Nahverkehr für Berlin & Brandenburg - Progressive Web App (PWA) für Echtzeit-Abfahrten, Routenplanung und Live-Fahrzeugverfolgung im VBB-Gebiet", "description": "Live-Nahverkehr für Berlin & Brandenburg - Progressive Web App (PWA) für Echtzeit-Abfahrten, Routenplanung und Live-Fahrzeugverfolgung im VBB-Gebiet",
"main": "server.js", "main": "server.js",
"scripts": { "scripts": {
+3 -1
View File
@@ -1,7 +1,9 @@
const CACHE_NAME = 'vbb-status-v29'; const CACHE_NAME = 'vbb-status-v30';
const urlsToCache = [ const urlsToCache = [
'/', '/',
'/index.html', '/index.html',
'/styles.css',
'/script.js',
'/manifest.json', '/manifest.json',
'/DotMatrix.ttf', '/DotMatrix.ttf',
'/images/favicon.png' '/images/favicon.png'