MeinWeimar Tourguide

Eine produktionsnahe Flutter-App fuer Stadtentdeckung, Tourplanung und Sprachlernen in Weimar. Die App verbindet eine responsive mobile und webfaehige Oberflaeche mit einer WordPress-REST-API und macht aus redaktionellen Inhalten konkrete Wege, Orte und Empfehlungen.
Dieses Repository zeigt neben der UI auch die technische Produktarbeit dahinter: API-Integration, Offline-tolerante Datenhaltung, Lokalisierung, Routing, Audio/TTS, Analytics, Deep Links und automatisierte Qualitaetssicherung.
App-Eindruecke
Start · Entdecken · Touren · Karte · Mehr
Produktumfang
- Entdecken: POIs, Touren, Veranstaltungen, Partner und Themen mit Suche,
Filtern und fehlertoleranter Trefferlogik.
- Unterwegs: Kartenansicht, Standort, Fussgaenger-Routing, Tourfortschritt,
Favoriten und eine persoenliche Route aus der eigenen Weimar-Liste.
- Mehrsprachigkeit: UI und CMS-Inhalte in Deutsch, Englisch,
Niederlaendisch, Franzoesisch, Polnisch, Italienisch, Spanisch und Tschechisch.
- Audio und Lernen: Guide-Audio, Flutter TTS sowie SprachGuide-Kurse und
Lern-Touren.
- Redaktion und Betrieb: WordPress REST API, Oeffnungszeiten mit
Zeitzonenlogik, Kampagnen, Partnerplatzierungen, Deep Links und First-Party- Analytics.
- Responsive UX: kleine Displays, grosse Systemschrift, dynamische
Kartenhoehen und versionierte Web-Releases ohne veraltete Service-Worker- Assets.
Technischer Steckbrief
| Bereich | Umsetzung |
|---|
| Framework | Flutter / Dart 3.4+ |
| Plattformen | iOS, Android und Web |
| Daten | WordPress REST API, typisierte Models und Repositories |
| Karten | flutter_map, latlong2, Standort und Fussgaenger-Routing |
| Audio | just_audio, flutter_tts |
| Lokaler Zustand | Shared Preferences, begrenztes Caching und Analytics-Puffer |
| Qualitaet | Flutter Analyzer, Widget- und Service-Tests, Lokalisierungs- und API-Modelltests |
Die Codebasis ist nach Verantwortlichkeiten gegliedert:
lib/
core/ gemeinsame API-, Lokalisierungs- und Navigationslogik
data/ Datenzugriff und DTO-nahe Strukturen
features/ produktbezogene Screens und Flows
models/ fachliche Modelle
repositories/ Datenzugriff hinter stabilen Schnittstellen
services/ Routing, Audio, Analytics und Plattformdienste
widgets/ wiederverwendbare UI-Bausteine
test/ fokussierte Tests fuer Services, Modelle und Widgets
Lokal starten
Voraussetzungen: aktuelles Flutter SDK und das darin enthaltene Dart SDK.
flutter pub get
flutter analyze
flutter test
flutter run -d chrome
Die Anwendung verwendet standardmaessig die oeffentliche API: https://tour.meinweimar.de/wp-json/meinweimar/v1
Web-Release
Fuer einen Web-Release das versionierte Build-Skript verwenden:
./tool/build_web_release.sh
Das Skript legt den Runtime-Build unter build/web/releases/<release-id>/ ab. Launcher und Versionsendpunkt bleiben bewusst nicht cachebar, damit Browser nach einem Reload die aktuelle Version auflosen. Startup-Diagnostik ist nur mit ?mwdebug=1 aktiv.
Dokumentation
- [Deep Links](DEEP_LINKS.md) - Web-Routen fuer Bereiche, Touren und POIs
- [Projektstatus](PROJECT_STATE.md) - aktueller Funktions- und Integrationsstand
- [Changelog](CHANGELOG.md) - nachvollziehbare Produkt- und UX-Iterationen
- [API-Integration](docs/API_INTEGRATION.md) - technische Integrationsnotizen