Files
geutebruck/geutebruck_app
Administrator c9e83e4277 feat: Add compact table views with advanced filtering and batch operations
- 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>
2026-01-02 22:52:51 +01:00
..

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

🛠️ 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.