train-tracker/README.md

93 lines
2.6 KiB
Markdown
Raw Normal View History

# Train Tracker
2024-09-28 14:13:32 +02:00
## Beschreibung
Train Tracker ist ein in Go geschriebenes Programm, das Echtzeitinformationen über Zugbewegungen verfolgt und speichert. Es nutzt die DB-Vendo-API, um Abfahrtsinformationen von spezifizierten Bahnhöfen abzurufen, berechnet die aktuelle Position der Züge basierend auf ihrer Route und speichert diese Informationen in einer MySQL-Datenbank.
2024-09-28 14:13:32 +02:00
## Funktionen
- Abrufen von Zugabfahrten für mehrere Bahnhöfe
- Berechnung der aktuellen Zugposition basierend auf Abfahrtszeit und Routeninformationen
- Speichern und Aktualisieren von Zuginformationen in einer MySQL-Datenbank
- Automatisches Löschen veralteter Einträge
- Regelmäßige Protokollierung von Datenbankstatistiken
2024-09-28 14:13:32 +02:00
## Voraussetzungen
- Go 1.15 oder höher
- MySQL-Datenbank
- Zugang zur DB-Vendo-API
2024-09-28 14:13:32 +02:00
## Installation
1. Klonen Sie das Repository:
```
git clone https://code.brothertec.eu/simono41/train-tracker.git
2024-09-28 14:13:32 +02:00
```
2. Navigieren Sie in das Projektverzeichnis:
```
cd train-tracker
```
2024-09-28 14:13:32 +02:00
3. Installieren Sie die Abhängigkeiten:
2024-09-28 14:13:32 +02:00
```
go mod tidy
2024-09-28 14:13:32 +02:00
```
## Konfiguration
Konfigurieren Sie die Anwendung über folgende Umgebungsvariablen:
2024-09-28 14:13:32 +02:00
- `DB_DSN`: MySQL-Datenbankverbindungsstring
- `API_BASE_URL`: Basis-URL der DB-Vendo-API
- `DURATION`: Zeitspanne in Minuten für die Abfrage von Abfahrten
- `DELETE_AFTER_MINUTES`: Zeit in Minuten, nach der alte Einträge gelöscht werden
- `STATION_IDS`: Komma-getrennte Liste von Bahnhofs-IDs
2024-09-28 14:13:32 +02:00
## Datenbankstruktur
2024-09-28 14:13:32 +02:00
Stellen Sie sicher, dass Ihre MySQL-Datenbank eine `trips`-Tabelle mit folgender Struktur hat:
2024-09-28 14:13:32 +02:00
```sql
CREATE TABLE trips (
2024-09-28 14:13:32 +02:00
id VARCHAR(36) PRIMARY KEY,
timestamp DATETIME,
train_name VARCHAR(255),
fahrt_nr VARCHAR(255),
trip_id VARCHAR(255),
latitude DOUBLE,
longitude DOUBLE
2024-09-28 14:13:32 +02:00
);
```
## Verwendung
1. Setzen Sie die erforderlichen Umgebungsvariablen.
2. Starten Sie die Anwendung:
```
go run main.go
```
Die Anwendung wird nun kontinuierlich Abfahrtsinformationen abrufen, die Zugpositionen berechnen und in der Datenbank speichern.
2024-09-28 14:13:32 +02:00
## Entwicklung
### Code-Struktur
- `main.go`: Hauptanwendungslogik und Einstiegspunkt des Programms
- Funktionen wie `fetchDepartures()`, `fetchTripDetails()`, `savePosition()`, `calculateCurrentPosition()` und `deleteOldEntries()` implementieren die Kernfunktionalität
### Beitrag
2024-09-28 14:13:32 +02:00
Beiträge sind willkommen! Bitte erstellen Sie einen Pull Request für Verbesserungen oder Fehlerbehebungen.
2024-09-28 14:13:32 +02:00
## Lizenz
Dieses Projekt ist unter der [MIT-Lizenz](https://opensource.org/licenses/MIT) lizenziert.
## Kontakt
Bei Fragen oder Problemen öffnen Sie bitte ein Issue im [Git-Repository](https://code.brothertec.eu/simono41/train-tracker).