- Enhanced Flutter web app management in PowerShell scripts - Added Flutter web server to start-services.ps1 as 4th service - Updated stop-services.ps1 to stop Flutter web server - Improved service orchestration and startup sequence - Implemented server caching for improved resilience - Added ServerCacheService for browser localStorage caching - Server lists persist across service restarts - Automatic fallback to cached data when API unavailable - Action picker categories always visible regardless of server status - Redesigned Action Mappings view with compact table layout - Replaced card-based ListView with DataTable for higher density - Added real-time search across name, input, output, description - Implemented multi-filter support (status: enabled/disabled) - Added column sorting (name, input, output, status, executions) - Batch operations: select all/multiple, batch delete - Reduced row height from ~120px to 56px for better overview - Redesigned Servers Management view with compact table layout - Replaced card-based ListView with DataTable - Added search by alias, host, user - Multi-filter support (type: all/G-Core/GeViScope, status: all/enabled/disabled) - Column sorting (alias, host, user, type, status) - Batch operations: select all/multiple, batch delete - Color-coded type and status badges - Improved action picker dialog for GSC/G-Core actions - GSC and G-Core categories always visible - Server validation with clear error messages - Fixed duplicate checkbox issue in table headers - Debug logging for troubleshooting server parameter issues 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Geutebruck API Flutter App
Flutter mobile application for managing Geutebruck surveillance systems (G-Core and GeViScope servers) with offline-first architecture.
📱 Features
- 🔐 Authentication: Secure JWT-based login
- 🖥️ Server Management: Full CRUD operations for G-Core and GeViScope servers
- 📡 Offline-First: Local Hive storage with bidirectional sync
- 🔄 Sync: Upload changes and download latest configuration
- 🎨 Modern UI: Material Design 3 with responsive layout
- 🧭 Navigation: App drawer with organized menu structure
🚀 Quick Start
Prerequisites
- Flutter SDK ^3.5.0
- Dart SDK ^3.5.0
- API server running at
http://100.81.138.77:8000
Installation
# Clone the repository
cd geutebruck_app
# Install dependencies
flutter pub get
# Run code generation
flutter pub run build_runner build --delete-conflicting-outputs
# Run the app
flutter run -d web-server --web-port=8081 --web-hostname=0.0.0.0
Default Credentials
- Username:
admin - Password:
admin123
📁 Project Structure
lib/
├── core/ # Core functionality (constants, errors, network)
├── data/ # Data layer (repositories, data sources, models)
├── domain/ # Business logic (entities, use cases)
└── presentation/ # UI layer (screens, widgets, BLoCs)
🏗️ Architecture
- Clean Architecture: Separation of concerns across layers
- BLoC Pattern: State management with flutter_bloc
- Offline-First: Hive local storage with sync capabilities
- Dependency Injection: GetIt for IoC container
- Routing: GoRouter with type-safe navigation
🔧 Development
Hot Reload
Press r in the Flutter terminal to hot reload changes without restarting.
Code Generation
flutter pub run build_runner watch
Running Tests
flutter test
📊 Current Status
Phase 2 Complete: Server Management fully implemented
- ✅ View all servers with filtering
- ✅ Create G-Core and GeViScope servers
- ✅ Update server configuration
- ✅ Delete servers with confirmation
- ✅ Offline-first with sync
- ✅ Dirty change tracking
See STATUS.md for detailed progress.
🐛 Recent Fixes
2025-12-23: "No Data" Display Issue
Fixed BlocBuilder fallback case to show loading indicator instead of "No data" during state transitions.
📚 Documentation
- Project Status - Detailed development status
- Tasks - Implementation task list
- API Spec - API documentation
🛠️ Tech Stack
- Flutter - Cross-platform UI framework
- Dart - Programming language
- flutter_bloc - State management
- hive - Local NoSQL database
- dio - HTTP client
- go_router - Declarative routing
- get_it - Dependency injection
🤝 Contributing
This is an AI-assisted development project. Changes should maintain:
- Clean Architecture principles
- BLoC pattern for state management
- Offline-first data strategy
- Comprehensive error handling
📝 License
This project is part of the Geutebruck API integration suite.