Files
geutebruck/geutebruck_app
Administrator a92b909539 feat: GeViScope SDK integration with C# Bridge and Flutter app
- Add GeViScope Bridge (C# .NET 8.0) on port 7720
  - Full SDK wrapper for camera control, PTZ, actions/events
  - 17 REST API endpoints for GeViScope server interaction
  - Support for MCS (Media Channel Simulator) with 16 test channels
  - Real-time action/event streaming via PLC callbacks

- Add GeViServer Bridge (C# .NET 8.0) on port 7710
  - Integration with GeViSoft orchestration layer
  - Input/output control and event management

- Update Python API with new routers
  - /api/geviscope/* - Proxy to GeViScope Bridge
  - /api/geviserver/* - Proxy to GeViServer Bridge
  - /api/excel/* - Excel import functionality

- Add Flutter app GeViScope integration
  - GeViScopeRemoteDataSource with 17 API methods
  - GeViScopeBloc for state management
  - GeViScopeScreen with PTZ controls
  - App drawer navigation to GeViScope

- Add SDK documentation (extracted from PDFs)
  - GeViScope SDK docs (7 parts + action reference)
  - GeViSoft SDK docs (12 chunks)

- Add .mcp.json for Claude Code MCP server config

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 08:14:17 +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.