From 1990ae440d772dcdb39394864f6d44de64142b03 Mon Sep 17 00:00:00 2001 From: Simon Rieger Date: Sat, 28 Sep 2024 14:13:32 +0200 Subject: [PATCH] Add README --- README.md | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f617921 --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +# DB Departure Tracker + +## Beschreibung + +Dieses Projekt ist ein Go-basierter Service, der Abfahrtsinformationen von verschiedenen Bahnhöfen der Deutschen Bahn abruft und in einer MariaDB-Datenbank speichert. Es verwendet die DB REST API, um Echtzeit-Abfahrtsdaten zu erhalten und aktualisiert die Positionen der Züge in regelmäßigen Abständen. + +## Funktionen + +- Abruf von Abfahrtsinformationen für mehrere Bahnhöfe +- Konfigurierbare Einstellungen für verschiedene Verkehrsmittel (Bus, Fähre, Straßenbahn, Taxi) +- Speicherung und Aktualisierung von Zugpositionen in einer MariaDB-Datenbank +- Verwendung von UUIDs für eindeutige Datenbankeinträge +- Konfiguration über Umgebungsvariablen + +## Voraussetzungen + +- Go 1.17 oder höher +- Docker und Docker Compose +- Zugang zur DB REST API + +## Installation + +1. Klonen Sie das Repository: + ``` + git clone https://github.com/yourusername/db-departure-tracker.git + cd db-departure-tracker + ``` + +2. Erstellen Sie eine `.env` Datei im Projektverzeichnis und füllen Sie sie mit den erforderlichen Umgebungsvariablen (siehe Konfiguration). + +3. Bauen und starten Sie die Docker-Container: + ``` + docker-compose up --build + ``` + +## Konfiguration + +Konfigurieren Sie die Anwendung durch Setzen der folgenden Umgebungsvariablen: + +- `DB_DSN`: Datenbankverbindungsstring (z.B. "root:password@tcp(mariadb:3306)/traindb") +- `API_BASE_URL`: Basis-URL der DB REST API +- `MAX_RESULTS`: Maximale Anzahl der abzurufenden Ergebnisse pro Anfrage +- `DURATION`: Zeitspanne in Minuten für die Abfrage der Abfahrten +- `BUS`: Einbeziehung von Busabfahrten (true/false) +- `FERRY`: Einbeziehung von Fährabfahrten (true/false) +- `TRAM`: Einbeziehung von Straßenbahnabfahrten (true/false) +- `TAXI`: Einbeziehung von Taxiabfahrten (true/false) +- `STATION_IDS`: Komma-separierte Liste der Bahnhofs-IDs + +Beispiel für eine `.env` Datei: + +``` +DB_DSN=root:password@tcp(mariadb:3306)/traindb +API_BASE_URL=http://db-rest:3000 +MAX_RESULTS=10 +DURATION=240 +BUS=false +FERRY=false +TRAM=false +TAXI=false +STATION_IDS=8000226,8000234 +``` + +## Verwendung + +Nach dem Start läuft der Service kontinuierlich und ruft in regelmäßigen Abständen Abfahrtsinformationen ab. Die Daten werden in der konfigurierten MariaDB-Datenbank gespeichert. + +## Datenbankschema + +Die Anwendung verwendet folgendes Datenbankschema: + +```sql +CREATE TABLE IF NOT EXISTS trips ( + id VARCHAR(36) PRIMARY KEY, + latitude DOUBLE, + longitude DOUBLE, + timestamp DATETIME, + train_name VARCHAR(50), + fahrt_nr VARCHAR(20) +); +``` + +## Entwicklung + +Um an diesem Projekt mitzuarbeiten: + +1. Forken Sie das Repository +2. Erstellen Sie einen Feature Branch (`git checkout -b feature/AmazingFeature`) +3. Committen Sie Ihre Änderungen (`git commit -m 'Add some AmazingFeature'`) +4. Pushen Sie den Branch (`git push origin feature/AmazingFeature`) +5. Öffnen Sie einen Pull Request + +## Lizenz + +Dieses Projekt ist unter der MIT-Lizenz lizenziert. Siehe `LICENSE` Datei für Details.