📱 LGKA+ – Digitaler Vertretungsplan für das Lessing-Gymnasium Karlsruhe





**🎓 Moderne Flutter-App für den digitalen Vertretungsplan des Lessing-Gymnasiums Karlsruhe**
*Eine elegante, benutzerfreundliche Lösung für den schnellen Zugriff auf aktuelle Vertretungspläne*
[📥 Download](https://github.com/luka-loehr/LGKA/releases) • [📖 Dokumentation](#-installation--entwicklung) • [🐛 Issues](https://github.com/luka-loehr/LGKA/issues) • [💬 Discussions](https://github.com/luka-loehr/LGKA/discussions)
📋 Inhaltsverzeichnis
🌟 Über das Projekt
LGKA+ ist eine moderne, plattformübergreifende Mobile App, die speziell für die Schulgemeinschaft des Lessing-Gymnasiums Karlsruhe entwickelt wurde. Die App bietet einen schnellen, zuverlässigen Zugriff auf die aktuellen Vertretungspläne mit einer intuitiven Benutzeroberfläche und umfassenden Offline-Funktionen.
🎯 Projektziele
- 📱 Benutzerfreundlichkeit: Intuitive Navigation und schneller Zugriff auf Informationen
- ⚡ Performance: Optimierte Ladezeiten und effiziente Datennutzung
- 🔒 Datenschutz: Vollständig datenschutzkonform ohne Tracking oder Datensammlung
- 🌍 Zugänglichkeit: Offline-Verfügbarkeit und plattformübergreifende Kompatibilität
- 🔧 Wartbarkeit: Saubere Architektur und umfassende Dokumentation
🏆 Alleinstellungsmerkmale
- 🚫 Zero-Tracking Policy: Keine Datensammlung oder Analytics
- 💾 Intelligentes Caching: Automatische Offline-Verfügbarkeit
- 🎨 Material Design 3: Modernes Dark Theme für alle Lichtverhältnisse
- 📱 Cross-Platform: Native Performance auf Android und iOS
- 🔓 Open Source: Transparente Entwicklung unter Creative Commons Lizenz
✨ Features im Überblick
🔄 Intelligenter Vertretungsplan
- 🔄 Automatischer Download für heute und morgen
- 💾 Offline-Verfügbarkeit durch smartes PDF-Caching
- 📅 Wochentag-basierte Dateiverwaltung (z.B.
montag.pdf
, dienstag.pdf
)
- 🔐 Sichere Serververbindung mit verschlüsselter Datenübertragung
- 📋 Metadaten-Extraktion aus PDFs (Datum, Uhrzeit, Wochentag)
- ⚡ Intelligente Updates nur bei Änderungen
📄 PDF-Integration
- 🔍 Integrierter PDF-Viewer mit Zoom & Scroll-Support
- 🔗 Externe App-Integration (Adobe Reader, Google Drive, etc.)
- 📤 PDF-Sharing-Funktion für einfache Weiterleitung
- ⚙️ Background-Verarbeitung für optimale Performance
- 🎯 Adaptive Anzeige für verschiedene Bildschirmgrößen
🎨 Benutzeroberfläche
- 🎭 Material Design 3 mit modernem Dark Mode
- 📱 Edge-to-Edge Display (Android 15+ kompatibel)
- ⌨️ Adaptive Keyboard-Animation für optimale UX
- 🌊 Flüssige Navigation mit benutzerdefinierten Animationen
- 📳 Haptisches Feedback für bessere Interaktion
- 🌙 Konsistentes Dark Theme optimiert für alle Lichtverhältnisse
⚙️ Erweiterte Einstellungen
- 📅 Flexible Datumsauswahl (heute, morgen, benutzerdefiniert)
- 👀 PDF-Viewer-Konfiguration (intern/extern)
- 🔧 Personalisierung von App-Verhalten und Aussehen
- ℹ️ App-Informationen und Rechtliche Hinweise
- 🔄 Automatische Updates der Konfiguration
🌐 Intelligente Netzwerkverwaltung
- 📡 Automatische Verbindungserkennung
- 🔄 Exponentielles Auto-Retry bei Verbindungsproblemen
- 🐌 Slow-Connection-Detection mit Nutzer-Feedback
- 📴 Offline-First Architektur für zuverlässige Verfügbarkeit
- 🛡️ Robuste Error-Behandlung mit aussagekräftigen Meldungen
🎁 Zusätzliche Features
- 👋 Willkommensbildschirm beim ersten Start mit App-Tour
- ⭐ In-App-Review-System für direktes Nutzerfeedback (nach 20 Öffnungen)
- 🎨 Adaptive App-Icons für Android und iOS
- 🛡️ Umfassende Error-Behandlung mit nutzerfreundlichen Meldungen
- 🔄 Auto-Retry-Mechanismus bei Verbindungsproblemen
- 📊 Debug-Modi für Entwickler und Fehlerdiagnose
🏗️ Technische Architektur
🎯 Technology Stack
| Kategorie | Technologie | Version | Zweck |
|———–|————|———|——–|
| Frontend | Flutter SDK | 3.8.0+ | Cross-Platform UI Framework |
| Language | Dart | 3.8.1+ | Programmiersprache |
| Design | Material Design 3 | - | UI/UX Design System |
| State Management | Riverpod | 2.6.1 | Reaktive State-Verwaltung |
| Navigation | go_router | 15.1.2 | Deklarative Navigation |
| Networking | HTTP Client | 1.2.2 | Netzwerkkommunikation |
🎯 Framework & Sprachen
- 🔷 Flutter SDK: 3.8.0+ (Dart 3.8.1+) - Cross-Platform Development
- 🎨 Material Design 3 mit Custom Dark Theme und adaptiven Komponenten
- 🤖 Kotlin für Android-spezifische Implementierungen und native Features
- 🍎 Swift für iOS-Konfiguration und plattformspezifische Optimierungen
🗂️ Projektstruktur
lib/
├── 🖥️ screens/ # 6 Haupt-Screens (Welcome, Auth, Home, etc.)
├── 🔧 services/ # File-Opener & Review-Service
├── 📊 providers/ # Riverpod State Management & Haptic Service
├── 🧭 navigation/ # go_router Navigation mit Animationen
├── 💾 data/ # PDF Repository & Preferences Manager
└── 🎨 theme/ # Custom Material Design 3 Theme
assets/
├── 🖼️ images/ # App-Icons, Logos und UI-Grafiken
└── 📄 configs/ # Konfigurationsdateien
android/ # Android-spezifische Implementierung
ios/ # iOS-spezifische Konfiguration
📦 Haupt-Dependencies
| Package | Version | Zweck | Kategorie |
|———|———|——–|———–|
| flutter_riverpod
| ^2.6.1 | Reaktive State-Verwaltung | 🔄 State Management |
| go_router
| ^15.1.2 | Deklarative Navigation & Routing | 🧭 Navigation |
| http
| ^1.2.2 | Sichere Netzwerkkommunikation | 🌐 Network |
| syncfusion_flutter_pdf
| ^29.2.9 | PDF-Verarbeitung & Analyse | 📄 Document Processing |
| pdfx
| ^2.9.1 | Hochperformante PDF-Anzeige | 🔍 PDF Viewer |
| connectivity_plus
| ^6.1.0 | Intelligente Netzwerküberwachung | 📡 Connectivity |
| share_plus
| ^11.0.0 | Plattformübergreifendes PDF-Sharing | 📤 Sharing |
| shared_preferences
| ^2.3.4 | Sichere lokale Datenspeicherung | 💾 Storage |
| in_app_review
| ^2.0.10 | Natives Review-System | ⭐ User Experience |
| url_launcher
| ^6.3.2 | Externe App-Integration | 🔗 External Apps |
Build-Optimierungen
- R8 Full Mode für Dead-Code-Eliminierung
- Resource Shrinking entfernt ungenutzte Ressourcen
- Icon Tree-Shaking reduziert Schriftarten um 99%+
- ProGuard für Code-Optimierung
- Split APKs für minimale Download-Größen
Runtime-Optimierungen
- Background Isolates für PDF-Verarbeitung
- Intelligentes Caching mit Wochentag-Namen
- Lazy Loading für bessere Startup-Performance
- Connection Pooling für Netzwerk-Requests
App-Größen
| Build-Typ | Größe | Installiert | Verwendung |
|———–|——-|————-|————|
| App Bundle | ~45MB | ~23MB | Google Play Store |
| ARM64 APK | ~9MB | ~23MB | Direktinstallation |
🚀 Installation & Entwicklung
🔽 Download & Installation
📱 Für Endnutzer
🛠️ Für Entwickler
📋 Voraussetzungen
# Entwicklungsumgebung
Flutter SDK >= 3.8.0 # Cross-Platform Framework
Dart SDK >= 3.8.1 # Programmiersprache
Android SDK >= 21 # Android 5.0+
iOS >= 12.0 # iOS Deployment Target
# Zusätzliche Tools
Git >= 2.20 # Versionskontrolle
Android Studio / VS Code # IDE mit Flutter-Plugin
🚀 Schnellstart
# 1. Repository klonen
git clone https://github.com/luka-loehr/LGKA.git
cd LGKA
# 2. Dependencies installieren
flutter pub get
# 3. App-Icons generieren
dart run generate_app_icons.dart
# 4. Development Server starten
flutter run --debug
🏗️ Build-Kommandos
⚡ Development Builds (Schnelle Iteration)
# ARM64 APK für moderne Android-Geräte (~9.9MB)
flutter build apk --release --target-platform=android-arm64
# Installation via ADB
adb install -r build/app/outputs/flutter-apk/app-release.apk
🏪 Production Builds (Store-Ready)
# Google Play Store (App Bundle)
flutter build appbundle --release
# Apple App Store (iOS)
flutter build ios --release
🔧 App-Konfiguration
Die zentrale Konfiguration erfolgt über app_config/app_config.yaml
:
app_name: "LGKA+"
package_name: "com.lgka"
version_name: "2.0.1"
version_code: "28"
Änderungen werden automatisch auf Android und iOS angewendet.
🤖 Android
- Edge-to-Edge Display mit Android 15+ Kompatibilität
- Adaptive Icons mit transparentem Hintergrund
- Material You Integration
- Signing Configuration für Production Releases
🍎 iOS
- App Icon Sets für alle Gerätegrößen
- Launch Screen mit korrekten Proportionen
- Bundle Identifier:
com.lgka
- iOS Deployment Target: 12.0+
🔐 Datenschutz & Sicherheit
✅ Datenschutz-Features
- 🚫 Zero-Tracking Policy: Keine personenbezogenen Daten werden erfasst
- 📵 Keine Analytics oder Werbe-IDs: Vollständig werbefrei und tracking-frei
- 💾 Ausschließlich lokale Datenspeicherung für PDF-Caching
- 🔒 End-to-End Verschlüsselung für alle Serververbindungen
- 🛡️ Privacy by Design: Datenschutz als Grundprinzip der Architektur
- 🌍 DSGVO-konform: Vollständige Einhaltung europäischer Datenschutzstandards
🛠️ Sicherheitsmaßnahmen
- 🔐 Sichere Authentifizierung für Serverzugriff
- 📜 Certificate Pinning für HTTPS-Verbindungen
- 🔑 Android Keystore Integration für sichere Schlüsselspeicherung
- 🌐 Network Security Configuration für geschützte Verbindungen
- 🔍 Code Obfuscation in Release-Builds
- ⚡ Secure by Default: Alle Verbindungen standardmäßig verschlüsselt
📄 Vollständige Datenschutzerklärung
📄 Impressum
🧩 Architektur-Details
🏛️ Design Patterns
- Repository Pattern für Datenmanagement
- Provider Pattern mit Riverpod für State Management
- Service Locator für Dependency Injection
- Observer Pattern für UI-Updates
🔄 State Management Flow
PreferencesManager ↔ Riverpod Providers ↔ UI Screens
↓ ↓ ↓
SharedPreferences PdfRepository Material3 UI
🌐 Netzwerk-Architektur
Flutter App → HTTP Client → Basic Auth → School Server
↓ ↓ ↓ ↓
PDF Repository → Local Cache → File System → PDF Viewer
🛠️ Entwicklung
🧪 Testing
# Unit Tests ausführen
flutter test
# Widget Tests
flutter test test/widget_test.dart
# Integration Tests (Device erforderlich)
flutter test integration_test/
🐛 Debugging
# Debug Mode mit Hot Reload
flutter run --debug
# Performance Profiling
flutter run --profile
# Release Testing
flutter run --release
📊 Code-Qualität
- Flutter Lints für Code-Standards
- Analysis Options für erweiterte Prüfungen
- Dart Formatter für konsistente Formatierung
📦 Releases & Deployment
🚀 Release-Workflow
- Version in
pubspec.yaml
erhöhen
- Changelog erstellen und testen
- Split APKs für Testing bauen
- App Bundle für Store-Release erstellen
- GitHub Release mit Assets erstellen
📋 Version Management
- Semantic Versioning (MAJOR.MINOR.PATCH)
- Build Numbers für interne Versionierung
- Automatische iOS/Android Synchronisation
🏪 Store-Konfiguration
- Google Play Console für Android-Releases
- App Store Connect für iOS-Releases
- Automatische APK-Optimierung durch Stores
🤝 Entwicklungs-Guidelines
📝 Code-Standards
- Flutter Linting Rules befolgen
- Konsistente Naming Conventions
- Ausführliche Dokumentation in kritischen Bereichen
- Error Handling für alle externen Abhängigkeiten
🧩 Contribution Guidelines
- Fork des Repositories erstellen
- Feature Branch für neue Funktionen
- Pull Request mit ausführlicher Beschreibung
- Code Review vor dem Merge
🐛 Issue Reporting
- Bug Reports mit Schritten zur Reproduktion
- Feature Requests mit detaillierter Beschreibung
- Screenshots/Videos bei UI-bezogenen Issues
📊 Projekt-Status
Komponente |
Status |
Beschreibung |
Core App |
✅ Produktiv |
Alle Grundfunktionen implementiert |
PDF Integration |
✅ Produktiv |
Integrierter und externer PDF-Viewer |
Network Layer |
✅ Produktiv |
Mit intelligentem Auto-Retry |
UI/UX |
✅ Produktiv |
Material Design 3 Dark Theme |
iOS Support |
✅ Produktiv |
Vollständig kompatibel (iOS 12.0+) |
Android Support |
✅ Produktiv |
Edge-to-Edge bis Android 15+ |
📈 Aktuelle Version
- Version: 2.0.1 (Build 28)
- Release Date: Januar 2025
- Flutter Version: 3.8.0+
- Dart Version: 3.8.1+
- Target Platforms: Android 5.0+ (API 21), iOS 12.0+
- Repository: luka-loehr/LGKA
📜 Lizenz & Rechtliches
📄 Creative Commons BY-NC-ND 4.0
✅ Erlaubt:
- Private und Bildungsnutzung
- Code-Studium und Lernen
- Beiträge via Pull Requests
- Link-Sharing des Original-Repositories
❌ Nicht erlaubt:
- Kommerzielle Nutzung
- Veränderungen und Weiterverbreitung
- Eigenständige Veröffentlichung
- Upload in App Stores durch Dritte
⚖️ Rechtliche Hinweise
- Privates Schülerprojekt von Luka Löhr
- Keine offizielle Verbindung zum Lessing-Gymnasium Karlsruhe
- Nur der ursprüngliche Entwickler darf offizielle Releases erstellen
📄 Vollständige Lizenz
🙋♂️ Support & Kontakt
🆘 Hilfe & Support
📚 Wichtige Ressourcen
📖 Dokumentation
🌐 Online-Ressourcen
🛠️ Troubleshooting
Häufige Probleme und Lösungen sind detailliert in den BUILD_NOTES.md dokumentiert.
📧 Direkter Kontakt
Für private Anfragen oder spezielle Anliegen können Sie den Entwickler direkt über die GitHub-Profilseite kontaktieren.
💡 Entwickelt mit Leidenschaft und ❤️ von Luka Löhr für die Schulgemeinschaft des Lessing-Gymnasiums Karlsruhe.
Ein privates Schülerprojekt, das Digitalisierung und Benutzerfreundlichkeit vereint.
### 🚀 **Powered by Modern Technology**
[](https://flutter.dev)
[](https://dart.dev)
[](https://m3.material.io)
### 🛡️ **Quality Assurance**



### 🌟 **Community & Support**
[](LICENSE)
---
**🔗 Schnellzugriff:**
[Website](https://luka-loehr.github.io/LGKA/) •
[Releases](https://github.com/luka-loehr/LGKA/releases) •
[Wiki](https://github.com/luka-loehr/LGKA/wiki) •
[Diskussionen](https://github.com/luka-loehr/LGKA/discussions)
---
*© 2025 Luka Löhr. Dieses Projekt steht unter der [Creative Commons BY-NC-ND 4.0](/LGKA/LICENSE) Lizenz.*