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