Eine moderne Command-Line-Interface (CLI) Anwendung zur Abfrage der Arbeitsplatz-Auslastung der Universitätsbibliothek Trier in Echtzeit.
PLATO CLI ist eine Go-basierte Reimplementierung des ursprünglichen PlatoOnAndroid Projekts als CLI-Tool. Während die ursprüngliche Android-App eine grafische Benutzeroberfläche bot, fokussiert sich diese CLI-Version auf Effizienz und Automatisierbarkeit für Developer und Power-User.
Hinweis: Dieses Projekt entstand als Testprojekt zum Umgang mit KI-gestützter Code-Generierung und demonstriert die praktische Anwendung von AI-Tools in der Softwareentwicklung.
- 🔄 Echtzeitdaten - Aktuelle Auslastung der UB Trier Standorte
- ⏰ Intelligente Zeitanzeige - Dynamische "schließt in X" / "noch X geöffnet" Anzeigen
- 🎨 Visuelle Indikatoren - Farbkodierte Icons für schnelle Statuserkennung
- 📊 ASCII-Visualisierung - Auslastungsbalken direkt im Terminal
- 🔍 Flexible Filterung - Spezifische Bibliotheken nach ID oder Name
- 📱 JSON-Output - Maschinenlesbare Ausgabe für weitere Verarbeitung
- 👀 Watch-Modus - Kontinuierliches Monitoring mit konfigurierbaren Intervallen
- 🔧 Robust - Graceful Fallback zu Mock-Daten bei API-Ausfällen
- Go 1.19+ oder Docker
- Make (optional, für Build-Automation)
# Repository klonen
git clone <repository-url>
cd plato-cli
# Dependencies installieren
go mod tidy
# Bauen
go build -o plato-cli .
# Oder mit Make
make build
# Multi-Platform Build mit Docker
make build-all
# Alle Bibliotheken anzeigen
./plato-cli
# Spezifische Bibliothek (nach ID)
./plato-cli -library 1
# Spezifische Bibliothek (nach Name)
./plato-cli -library "Campus 1"
# JSON-Ausgabe für weitere Verarbeitung
./plato-cli -json
# Kontinuierliches Monitoring
./plato-cli -watch -interval 2m
# Custom API-URL (für Testing)
./plato-cli -api https://custom-api.example.com
📚 UB Trier - Arbeitsplatz-Auslastung
⏰ Abgerufen am: 2025-06-16 17:30:15
🟢 Campus 1
📍 Standort: Campus 1
👥 Auslastung: 5% [█░░░░░░░░░░░░░░░░░░░]
📊 Status: Wenig belegt
🕐 Öffnungszeiten: 08:00 - 24:00 ✅ noch 6:30h geöffnet
🔧 Wartungsmodus: DISABLED
⏰ Letzte Aktualisierung: 2025-06-16 17:30:15
🔴 Campus 2
📍 Standort: Campus 2
👥 Auslastung: 99% [████████████████████]
📊 Status: Stark belegt
🕐 Öffnungszeiten: 08:00 - 21:00 ⚠️ schließt in 25min!
🔧 Wartungsmodus: DISABLED
⏰ Letzte Aktualisierung: 2025-06-16 20:35:00
Die CLI verwendet kontextabhängige Icons für schnelle Statuserkennung:
Icon | Bedeutung | Zeitfenster |
---|---|---|
Schließt bald! | < 30 Minuten | |
⏰ | Schließt demnächst | 30min - 2h |
✅ | Entspannt geöffnet | > 2 Stunden |
🌙 | Öffnet heute noch | Geschlossen |
😴 | Öffnet morgen | Bis nächster Tag |
🎯 | Frisch geöffnet | < 1h offen |
🔧 | Wartungsmodus | Technische Störung |
Das Projekt nutzt ein umfassendes Makefile für Development:
# Alle Checks + Build
make all
# Development-Build mit Debug-Info
make dev
# Tests ausführen
make test
# Code formatieren
make fmt
# Linting (via Docker)
make lint
# Cross-Platform Builds
make build-all
# Release-Archive erstellen
make release
# System-Installation
make install
Das Projekt nutzt golangci-lint
via Docker für konsistente Code-Qualität:
# Standard Linting
make lint
# Mit Auto-Fix
make lint-fix
# Hilfe zu verfügbaren Lintern
make lint-help
Das Projekt nutzt die offizielle UB Trier PLATO API:
- Basis-URL:
https://ub-plato.uni-trier.de
- Endpoint:
/api/1/counters
- Swagger-Docs: UB-Plato API v0.1.3
Dieses Projekt steht unter der MIT-Lizenz.
Basiert auf dem Android-Projekt PlatoOnAndroid von deeagle, welches als Machbarkeitsstudie für OpenData-APIs im Rahmen einer Masterarbeit an der TH Köln entwickelt wurde.
- Sprache: Go 1.19+
- HTTP-Client: Go Standard Library
- CLI-Framework: Go Flag Package
- Build-System: Make + Docker
- Linting: golangci-lint
- API: REST JSON
📍 Standort-Info: Universitätsbibliothek Trier • Campus I & II • Deutschland