appiq-solution 1.6.3 → 1.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,202 @@
1
+ # {Feature Name} PRD
2
+
3
+ ## Overview
4
+ Brief description of the feature
5
+
6
+ ## Implementation Paths
7
+ > Specify where this feature should be implemented. If not specified, Architect will determine optimal location.
8
+
9
+ ### Suggested File Structure
10
+ ```
11
+ lib/
12
+ ├── features/
13
+ │ └── {feature_name}/ # ← Main feature folder
14
+ │ ├── data/
15
+ │ │ ├── datasources/
16
+ │ │ │ └── {feature}_remote_datasource.dart
17
+ │ │ ├── models/
18
+ │ │ │ └── {feature}_model.dart
19
+ │ │ └── repositories/
20
+ │ │ └── {feature}_repository_impl.dart
21
+ │ ├── domain/
22
+ │ │ ├── entities/
23
+ │ │ │ └── {feature}_entity.dart
24
+ │ │ ├── repositories/
25
+ │ │ │ └── {feature}_repository.dart
26
+ │ │ └── usecases/
27
+ │ │ ├── get_{feature}_usecase.dart
28
+ │ │ └── create_{feature}_usecase.dart
29
+ │ └── presentation/
30
+ │ ├── cubit/
31
+ │ │ ├── {feature}_cubit.dart
32
+ │ │ └── {feature}_state.dart
33
+ │ ├── pages/
34
+ │ │ └── {feature}_page.dart
35
+ │ └── widgets/
36
+ │ └── {feature}_widget.dart
37
+ ```
38
+
39
+ ### Integration Points
40
+ > Specify existing files/classes to integrate with:
41
+
42
+ - **Existing Pages**: `lib/features/home/presentation/pages/home_page.dart`
43
+ - **Shared Services**: `lib/shared/services/api_service.dart`
44
+ - **Common Widgets**: `lib/shared/widgets/custom_button.dart`
45
+ - **Routing**: `lib/core/routing/app_router.dart`
46
+ - **DI Container**: `lib/core/di/injection_container.dart`
47
+
48
+ ### Code Reuse Analysis
49
+ > List existing components that should be checked/reused:
50
+
51
+ #### Existing Similar Features
52
+ - [ ] Check `lib/features/user_profile/` for similar patterns
53
+ - [ ] Review `lib/features/authentication/` for auth integration
54
+ - [ ] Analyze `lib/shared/widgets/` for reusable UI components
55
+
56
+ #### Shared Components to Reuse
57
+ - [ ] `lib/shared/widgets/loading_widget.dart` - For loading states
58
+ - [ ] `lib/shared/widgets/error_widget.dart` - For error handling
59
+ - [ ] `lib/shared/services/navigation_service.dart` - For navigation
60
+ - [ ] `lib/shared/utils/validators.dart` - For input validation
61
+
62
+ #### Common Patterns to Follow
63
+ - [ ] Follow existing Cubit naming: `{Feature}Cubit`, `{Feature}State`
64
+ - [ ] Use existing error handling: `Failure` classes in `lib/core/error/`
65
+ - [ ] Follow existing API patterns: `ApiResponse<T>` wrapper
66
+ - [ ] Use existing dependency injection patterns
67
+
68
+ ## UI References
69
+ > Include mockups, wireframes, or reference images
70
+
71
+ ### Design Assets Location
72
+ ```
73
+ assets/
74
+ ├── images/
75
+ │ └── {feature_name}/
76
+ │ ├── mockup_main_screen.png
77
+ │ ├── wireframe_flow.png
78
+ │ └── ui_components_reference.png
79
+ └── icons/
80
+ └── {feature_name}/
81
+ ├── feature_icon.svg
82
+ └── action_icons/
83
+ ```
84
+
85
+ ### UI Reference Links
86
+ - **Figma Design**: [Link to Figma prototype]
87
+ - **Design System**: [Link to design system/style guide]
88
+ - **Similar UI Patterns**: `lib/features/existing_feature/presentation/pages/` for reference
89
+
90
+ ### Visual Guidelines
91
+ - **Theme**: Follow existing `lib/shared/theme/app_theme.dart`
92
+ - **Colors**: Use existing color palette from `AppColors`
93
+ - **Typography**: Follow `AppTextStyles` definitions
94
+ - **Spacing**: Use `AppSpacing` constants
95
+ - **Components**: Extend existing `lib/shared/widgets/` where possible
96
+
97
+ ## Features
98
+ - Feature 1: Description
99
+ - Feature 2: Description
100
+ - Feature 3: Description
101
+
102
+ ## Acceptance Criteria
103
+ ### Feature 1
104
+ - [ ] Criteria 1
105
+ - [ ] Criteria 2
106
+
107
+ ## Technical Requirements
108
+
109
+ ### Architecture Compliance
110
+ - [ ] Follow Clean Architecture pattern
111
+ - [ ] Use existing Cubit state management patterns
112
+ - [ ] Implement Repository pattern following existing conventions
113
+ - [ ] Use GetIt dependency injection like other features
114
+
115
+ ### Code Integration Requirements
116
+ - [ ] **Before creating new files**: Check if similar functionality exists
117
+ - [ ] **Before new widgets**: Review `lib/shared/widgets/` for reusable components
118
+ - [ ] **Before new services**: Check `lib/shared/services/` for existing solutions
119
+ - [ ] **Before new utilities**: Review `lib/shared/utils/` for helper functions
120
+
121
+ ### Performance Requirements
122
+ - [ ] Reuse existing cached data where applicable
123
+ - [ ] Follow existing image loading/caching patterns
124
+ - [ ] Use existing performance monitoring setup
125
+
126
+ ## Auto-Analysis Instructions
127
+ > Instructions for the auto-detect system
128
+
129
+ ### Code Analysis Tasks
130
+ 1. **Scan Existing Codebase**:
131
+ ```bash
132
+ # Analyze similar features
133
+ find lib/features/ -name "*{similar_keyword}*" -type f
134
+
135
+ # Check shared components
136
+ ls -la lib/shared/widgets/ | grep -i {relevant_widgets}
137
+
138
+ # Review existing services
139
+ find lib/shared/services/ -name "*{service_type}*"
140
+ ```
141
+
142
+ 2. **Dependency Analysis**:
143
+ - Check `pubspec.yaml` for existing packages that could be reused
144
+ - Review `lib/core/di/injection_container.dart` for existing service registrations
145
+ - Analyze existing API endpoints in data sources
146
+
147
+ 3. **Pattern Analysis**:
148
+ - Review existing Cubit implementations for state management patterns
149
+ - Check existing repository implementations for data access patterns
150
+ - Analyze existing widget compositions for UI patterns
151
+
152
+ ### Architect Fallback Rules
153
+ > If implementation paths are not specified:
154
+
155
+ 1. **Analyze Feature Complexity**:
156
+ - Simple feature → Integrate into existing feature folder
157
+ - Complex feature → Create new feature folder
158
+ - Cross-cutting concern → Add to shared/
159
+
160
+ 2. **Check Dependencies**:
161
+ - Heavy external dependencies → Separate feature
162
+ - Uses existing services → Integrate with existing structure
163
+ - New infrastructure needed → Consult with data layer architecture
164
+
165
+ 3. **UI Complexity Assessment**:
166
+ - Single screen → Add to existing feature
167
+ - Multiple screens with navigation → New feature folder
168
+ - Shared UI components → Extract to shared/widgets/
169
+
170
+ ## User Stories
171
+ ### Epic: {Epic Name}
172
+ - As a user I want to... so that...
173
+ - As a user I want to... so that...
174
+
175
+ ## Dependencies
176
+ - Backend API endpoints
177
+ - Third-party integrations
178
+ - Design assets
179
+ - Existing code dependencies
180
+
181
+ ## Migration/Integration Notes
182
+ > Special considerations for integrating with existing codebase
183
+
184
+ ### Database Changes
185
+ - [ ] Check if existing database schema can be extended
186
+ - [ ] Review existing migration patterns
187
+ - [ ] Consider data migration requirements
188
+
189
+ ### API Changes
190
+ - [ ] Review existing API client setup
191
+ - [ ] Check if new endpoints fit existing patterns
192
+ - [ ] Consider backwards compatibility
193
+
194
+ ### Navigation Changes
195
+ - [ ] Review existing routing structure
196
+ - [ ] Check if new routes fit existing patterns
197
+ - [ ] Consider deep linking requirements
198
+
199
+ ### State Management Integration
200
+ - [ ] Review existing global state management
201
+ - [ ] Check if feature state needs to be shared
202
+ - [ ] Consider state persistence requirements
@@ -0,0 +1,93 @@
1
+ # Livestream Feature PRD
2
+
3
+ ## Overview
4
+ Implementierung einer Live-Streaming-Funktionalität in die bestehende Flutter-App, die es Benutzern ermöglicht, Live-Videos zu streamen und zu konsumieren.
5
+
6
+ ## Features
7
+ - **Live Stream Starten**: Benutzer können einen Live-Stream über die Kamera starten
8
+ - **Stream Viewer**: Andere Benutzer können Live-Streams ansehen
9
+ - **Chat Integration**: Real-time Chat während des Streams
10
+ - **Stream Controls**: Play/Pause, Qualitätseinstellungen, Vollbild
11
+ - **Stream Discovery**: Liste aktiver Streams
12
+ - **Stream Analytics**: Viewer-Zahlen, Stream-Dauer
13
+
14
+ ## Acceptance Criteria
15
+
16
+ ### Live Stream Starten
17
+ - [ ] Benutzer kann über einen "Go Live" Button einen Stream starten
18
+ - [ ] Kamera-Berechtigung wird angefordert und verwaltet
19
+ - [ ] Stream-Titel und Beschreibung können eingegeben werden
20
+ - [ ] Stream-Qualität kann ausgewählt werden (720p, 1080p)
21
+ - [ ] Stream kann jederzeit beendet werden
22
+
23
+ ### Stream Viewer
24
+ - [ ] Liste aller aktiven Streams wird angezeigt
25
+ - [ ] Stream kann durch Tippen geöffnet werden
26
+ - [ ] Video-Player mit Standard-Controls (Play/Pause, Lautstärke)
27
+ - [ ] Fullscreen-Modus verfügbar
28
+ - [ ] Viewer-Anzahl wird angezeigt
29
+
30
+ ### Chat Integration
31
+ - [ ] Chat-Interface neben/unter dem Video
32
+ - [ ] Nachrichten werden in Echtzeit angezeigt
33
+ - [ ] Benutzer können Nachrichten senden
34
+ - [ ] Chat-Moderation (Nachrichten löschen)
35
+ - [ ] Emoji-Support im Chat
36
+
37
+ ## Technical Requirements
38
+
39
+ ### Flutter Architecture
40
+ - Clean Architecture mit Domain/Data/Presentation Layers
41
+ - Cubit für State Management
42
+ - Repository Pattern für Data Access
43
+ - Dependency Injection mit GetIt
44
+
45
+ ### Backend Integration
46
+ - WebRTC für Live-Streaming
47
+ - WebSocket für Real-time Chat
48
+ - REST API für Stream-Metadaten
49
+ - Firebase/Supabase für User Management
50
+
51
+ ### Performance
52
+ - Adaptive Bitrate Streaming
53
+ - Efficient Memory Management
54
+ - Background Processing für Chat
55
+ - Caching für Stream-Thumbnails
56
+
57
+ ## User Stories
58
+
59
+ ### Epic: Live Streaming Core
60
+ - Als Content Creator möchte ich einen Live-Stream starten können, damit ich meine Inhalte in Echtzeit teilen kann
61
+ - Als Viewer möchte ich aktive Streams entdecken können, damit ich interessante Inhalte finden kann
62
+ - Als Viewer möchte ich Streams in hoher Qualität ansehen können, damit ich ein gutes Seherlebnis habe
63
+
64
+ ### Epic: Chat & Interaction
65
+ - Als Viewer möchte ich während des Streams chatten können, damit ich mit dem Creator und anderen Viewern interagieren kann
66
+ - Als Content Creator möchte ich Chat-Nachrichten moderieren können, damit ich eine positive Community-Atmosphäre schaffe
67
+ - Als Benutzer möchte ich Emojis im Chat verwenden können, damit ich meine Reaktionen ausdrücken kann
68
+
69
+ ### Epic: Stream Management
70
+ - Als Content Creator möchte ich meine Stream-Einstellungen anpassen können, damit ich die beste Qualität für meine Zielgruppe biete
71
+ - Als Content Creator möchte ich Stream-Analytics einsehen können, damit ich den Erfolg meiner Streams messen kann
72
+ - Als Benutzer möchte ich Streams als Favoriten markieren können, damit ich sie später leicht wiederfinden kann
73
+
74
+ ## Dependencies
75
+ - **Backend API**: Stream-Management Endpoints
76
+ - **WebRTC Service**: Live-Streaming Infrastructure
77
+ - **Chat Service**: Real-time Messaging
78
+ - **CDN**: Video-Delivery Network
79
+ - **Push Notifications**: Stream-Start Benachrichtigungen
80
+
81
+ ## Design Requirements
82
+ - Material Design 3 Guidelines
83
+ - Responsive Layout (Phone/Tablet)
84
+ - Dark/Light Theme Support
85
+ - Accessibility Compliance (WCAG 2.1)
86
+ - Lokalisierung (DE/EN)
87
+
88
+ ## Testing Requirements
89
+ - Unit Tests für alle Business Logic
90
+ - Widget Tests für UI Components
91
+ - Integration Tests für Stream-Flows
92
+ - Performance Tests für Video-Streaming
93
+ - Security Tests für User Data
@@ -0,0 +1,278 @@
1
+ # Livestream Feature PRD
2
+
3
+ ## Overview
4
+ Implementierung einer Live-Streaming-Funktionalität in die bestehende Flutter-App mit intelligenter Integration in vorhandene Komponenten.
5
+
6
+ ## Implementation Paths
7
+ > Spezifische Pfade für optimale Integration
8
+
9
+ ### Suggested File Structure
10
+ ```
11
+ lib/
12
+ ├── features/
13
+ │ └── livestream/ # ← Neues Feature
14
+ │ ├── data/
15
+ │ │ ├── datasources/
16
+ │ │ │ ├── livestream_remote_datasource.dart
17
+ │ │ │ └── livestream_local_datasource.dart
18
+ │ │ ├── models/
19
+ │ │ │ ├── stream_model.dart
20
+ │ │ │ └── stream_chat_model.dart
21
+ │ │ └── repositories/
22
+ │ │ └── livestream_repository_impl.dart
23
+ │ ├── domain/
24
+ │ │ ├── entities/
25
+ │ │ │ ├── stream_entity.dart
26
+ │ │ │ └── stream_message_entity.dart
27
+ │ │ ├── repositories/
28
+ │ │ │ └── livestream_repository.dart
29
+ │ │ └── usecases/
30
+ │ │ ├── start_stream_usecase.dart
31
+ │ │ ├── join_stream_usecase.dart
32
+ │ │ └── send_chat_message_usecase.dart
33
+ │ └── presentation/
34
+ │ ├── cubit/
35
+ │ │ ├── livestream_cubit.dart
36
+ │ │ ├── livestream_state.dart
37
+ │ │ ├── stream_chat_cubit.dart
38
+ │ │ └── stream_chat_state.dart
39
+ │ ├── pages/
40
+ │ │ ├── stream_list_page.dart
41
+ │ │ ├── stream_viewer_page.dart
42
+ │ │ └── stream_creator_page.dart
43
+ │ └── widgets/
44
+ │ ├── stream_player_widget.dart
45
+ │ ├── stream_controls_widget.dart
46
+ │ └── stream_chat_widget.dart
47
+ ```
48
+
49
+ ### Integration Points
50
+ > Bestehende Dateien/Klassen für Integration:
51
+
52
+ - **Main Navigation**: `lib/features/home/presentation/pages/home_page.dart`
53
+ - Füge "Go Live" Button in AppBar hinzu
54
+ - Integriere Stream-Liste in Home-Feed
55
+
56
+ - **Existing API Service**: `lib/shared/services/api_service.dart`
57
+ - Erweitere für WebRTC-Endpoints
58
+ - Nutze bestehende Auth-Header
59
+
60
+ - **Video Player Base**: `lib/features/media/presentation/widgets/video_player_widget.dart`
61
+ - Erweitere für Live-Stream-Funktionalität
62
+ - Nutze bestehende Player-Controls
63
+
64
+ - **Chat System**: `lib/features/chat/presentation/widgets/chat_widget.dart`
65
+ - Adaptiere für Live-Stream-Chat
66
+ - Nutze bestehende Message-Patterns
67
+
68
+ - **User Profile Integration**: `lib/features/user/presentation/pages/profile_page.dart`
69
+ - Füge "My Streams" Sektion hinzu
70
+ - Zeige Stream-History
71
+
72
+ ### Code Reuse Analysis
73
+ > Bestehende Komponenten prüfen und wiederverwenden:
74
+
75
+ #### Existing Similar Features (PRÜFEN ZUERST!)
76
+ - [ ] **Video Feature**: `lib/features/video/` - Für Player-Logik
77
+ - [ ] **Chat Feature**: `lib/features/chat/` - Für Chat-Implementation
78
+ - [ ] **Camera Feature**: `lib/features/camera/` - Für Stream-Aufnahme
79
+ - [ ] **Notification Feature**: `lib/features/notifications/` - Für Stream-Alerts
80
+
81
+ #### Shared Components to Reuse (VERWENDEN STATT NEU ERSTELLEN!)
82
+ - [ ] `lib/shared/widgets/loading_widget.dart` - Für Stream-Loading
83
+ - [ ] `lib/shared/widgets/error_widget.dart` - Für Stream-Errors
84
+ - [ ] `lib/shared/widgets/custom_button.dart` - Für Stream-Controls
85
+ - [ ] `lib/shared/widgets/user_avatar.dart` - Für Streamer-Avatar
86
+ - [ ] `lib/shared/widgets/bottom_sheet_widget.dart` - Für Stream-Settings
87
+ - [ ] `lib/shared/services/navigation_service.dart` - Für Stream-Navigation
88
+ - [ ] `lib/shared/services/websocket_service.dart` - Für Real-time Chat
89
+ - [ ] `lib/shared/utils/validators.dart` - Für Stream-Input-Validation
90
+ - [ ] `lib/shared/utils/permission_handler.dart` - Für Camera/Mic-Permissions
91
+
92
+ #### Common Patterns to Follow (BESTEHENDE PATTERNS BEFOLGEN!)
93
+ - [ ] **Cubit Naming**: `LivestreamCubit`, `LivestreamState` (wie `AuthCubit`)
94
+ - [ ] **Error Handling**: `StreamFailure` extends `Failure` (wie `AuthFailure`)
95
+ - [ ] **API Patterns**: `ApiResponse<StreamModel>` (wie bestehende APIs)
96
+ - [ ] **Repository Pattern**: Folge `UserRepository` Struktur
97
+ - [ ] **DI Pattern**: Registrierung wie in `injection_container.dart`
98
+
99
+ ## UI References
100
+ > Mockups und Referenz-Bilder für Development
101
+
102
+ ### Design Assets Location
103
+ ```
104
+ assets/
105
+ ├── images/
106
+ │ └── livestream/
107
+ │ ├── mockup_stream_list.png # ← Haupt-Stream-Liste
108
+ │ ├── mockup_stream_viewer.png # ← Stream-Viewer mit Chat
109
+ │ ├── mockup_stream_creator.png # ← Stream-Erstellung
110
+ │ ├── wireframe_stream_flow.png # ← User-Flow Diagramm
111
+ │ └── ui_components_reference.png # ← UI-Komponenten Guide
112
+ └── icons/
113
+ └── livestream/
114
+ ├── stream_icon.svg # ← Live-Stream Icon
115
+ ├── camera_icon.svg # ← Kamera Icon
116
+ ├── chat_icon.svg # ← Chat Icon
117
+ └── viewer_count_icon.svg # ← Viewer-Anzahl Icon
118
+ ```
119
+
120
+ ### UI Reference Links
121
+ - **Figma Design**: https://figma.com/livestream-feature-v2
122
+ - **Design System**: `lib/shared/theme/app_theme.dart` - Folge bestehende Patterns
123
+ - **Similar UI Reference**:
124
+ - `lib/features/video/presentation/pages/video_player_page.dart` - Für Player-Layout
125
+ - `lib/features/chat/presentation/widgets/chat_list_widget.dart` - Für Chat-UI
126
+
127
+ ### Visual Guidelines (BESTEHENDE PATTERNS VERWENDEN!)
128
+ - **Theme**: Erweitere `lib/shared/theme/app_theme.dart`
129
+ - Füge `livestreamColors` zu `AppColors` hinzu
130
+ - Nutze bestehende `primaryColor` für Live-Indicator
131
+ - **Typography**: Verwende `AppTextStyles.headline1` für Stream-Titel
132
+ - **Spacing**: Nutze `AppSpacing.medium` für konsistente Abstände
133
+ - **Components**: Erweitere `lib/shared/widgets/` statt neue zu erstellen
134
+
135
+ ## Features
136
+ - **Live Stream Starten**: Integration mit bestehender Camera-Feature
137
+ - **Stream Discovery**: Erweitere Home-Feed um Stream-Liste
138
+ - **Real-time Chat**: Nutze bestehende Chat-Infrastruktur
139
+ - **Stream Controls**: Erweitere bestehende Video-Controls
140
+ - **Viewer Analytics**: Integration in bestehende Analytics
141
+
142
+ ## Acceptance Criteria
143
+
144
+ ### Live Stream Starten
145
+ - [ ] **Reuse Camera Permission**: Nutze `lib/shared/utils/permission_handler.dart`
146
+ - [ ] **Extend Navigation**: Füge zu `lib/core/routing/app_router.dart` hinzu
147
+ - [ ] **Follow Button Pattern**: Nutze `lib/shared/widgets/custom_button.dart`
148
+
149
+ ### Stream Viewer
150
+ - [ ] **Extend Video Player**: Erweitere `lib/features/video/presentation/widgets/video_player_widget.dart`
151
+ - [ ] **Reuse Loading States**: Nutze `lib/shared/widgets/loading_widget.dart`
152
+ - [ ] **Follow Page Structure**: Wie `lib/features/video/presentation/pages/video_player_page.dart`
153
+
154
+ ### Chat Integration
155
+ - [ ] **Extend Chat Widget**: Adaptiere `lib/features/chat/presentation/widgets/chat_widget.dart`
156
+ - [ ] **Reuse WebSocket**: Nutze `lib/shared/services/websocket_service.dart`
157
+ - [ ] **Follow Message Pattern**: Wie `lib/features/chat/domain/entities/message_entity.dart`
158
+
159
+ ## Technical Requirements
160
+
161
+ ### Architecture Compliance (BESTEHENDE PATTERNS BEFOLGEN!)
162
+ - [ ] **Clean Architecture**: Folge `lib/features/user/` Struktur
163
+ - [ ] **Cubit State Management**: Wie `lib/features/auth/presentation/cubit/auth_cubit.dart`
164
+ - [ ] **Repository Pattern**: Wie `lib/features/user/data/repositories/user_repository_impl.dart`
165
+ - [ ] **Dependency Injection**: Registrierung in `lib/core/di/injection_container.dart`
166
+
167
+ ### Code Integration Requirements (ZUERST PRÜFEN!)
168
+ - [ ] **Before New API Client**: Erweitere `lib/shared/services/api_service.dart`
169
+ - [ ] **Before New WebSocket**: Prüfe `lib/shared/services/websocket_service.dart`
170
+ - [ ] **Before New Widgets**: Prüfe `lib/shared/widgets/` für ähnliche Komponenten
171
+ - [ ] **Before New Utils**: Prüfe `lib/shared/utils/` für Helper-Functions
172
+ - [ ] **Before New Services**: Prüfe `lib/shared/services/` für ähnliche Services
173
+
174
+ ### Performance Requirements (BESTEHENDE OPTIMIERUNGEN NUTZEN!)
175
+ - [ ] **Image Caching**: Nutze bestehende `lib/shared/services/image_cache_service.dart`
176
+ - [ ] **Network Optimization**: Folge bestehende API-Caching-Patterns
177
+ - [ ] **Memory Management**: Wie in `lib/features/video/` implementiert
178
+
179
+ ## Auto-Analysis Instructions
180
+ > Für das smart-auto-detect System
181
+
182
+ ### Code Analysis Tasks
183
+ 1. **Scan Similar Features**:
184
+ ```bash
185
+ # Prüfe Video-Feature für Player-Patterns
186
+ find lib/features/video/ -name "*.dart" | head -10
187
+
188
+ # Prüfe Chat-Feature für Message-Patterns
189
+ find lib/features/chat/ -name "*.dart" | head -10
190
+
191
+ # Prüfe Camera-Feature für Aufnahme-Patterns
192
+ find lib/features/camera/ -name "*.dart" | head -10
193
+ ```
194
+
195
+ 2. **Shared Component Analysis**:
196
+ ```bash
197
+ # Prüfe verfügbare Widgets
198
+ ls -la lib/shared/widgets/ | grep -E "(video|chat|button|loading)"
199
+
200
+ # Prüfe verfügbare Services
201
+ ls -la lib/shared/services/ | grep -E "(api|websocket|navigation)"
202
+
203
+ # Prüfe verfügbare Utils
204
+ ls -la lib/shared/utils/ | grep -E "(validator|permission|formatter)"
205
+ ```
206
+
207
+ ### Architect Fallback Rules
208
+ > Wenn Pfade nicht spezifiziert sind:
209
+
210
+ 1. **Feature Complexity**: HOCH → Eigenes Feature-Verzeichnis
211
+ 2. **Dependencies**: Video + Chat + Camera → Nutze bestehende Integration-Patterns
212
+ 3. **UI Complexity**: Multiple Screens → Folge `lib/features/video/` Struktur
213
+
214
+ ## User Stories
215
+
216
+ ### Epic: Live Streaming Infrastructure
217
+ - Als Entwickler möchte ich bestehende Video-Player-Komponenten erweitern, damit ich keine redundante Player-Logik erstelle
218
+ - Als Entwickler möchte ich bestehende Chat-Infrastruktur nutzen, damit Real-time-Messaging bereits funktioniert
219
+ - Als Entwickler möchte ich bestehende Camera-Services verwenden, damit Permissions bereits verwaltet sind
220
+
221
+ ### Epic: Stream Creation & Management
222
+ - Als Content Creator möchte ich den vertrauten Camera-Button verwenden, damit die Stream-Erstellung intuitiv ist
223
+ - Als Content Creator möchte ich bestehende Navigation-Patterns nutzen, damit die App konsistent bleibt
224
+ - Als Content Creator möchte ich bekannte UI-Komponenten sehen, damit die Bedienung vertraut ist
225
+
226
+ ### Epic: Stream Consumption
227
+ - Als Viewer möchte ich den gewohnten Video-Player sehen, damit die Bedienung vertraut ist
228
+ - Als Viewer möchte ich das bekannte Chat-Interface nutzen, damit ich sofort weiß, wie ich interagiere
229
+ - Als Viewer möchte ich konsistente Loading-States sehen, damit die App professionell wirkt
230
+
231
+ ## Dependencies
232
+
233
+ ### Existing Code Dependencies (WIEDERVERWENDEN!)
234
+ - `lib/features/video/` - Video Player Base-Funktionalität
235
+ - `lib/features/chat/` - Real-time Chat Infrastructure
236
+ - `lib/features/camera/` - Camera Access & Permissions
237
+ - `lib/shared/services/api_service.dart` - HTTP Client für Stream-APIs
238
+ - `lib/shared/services/websocket_service.dart` - Real-time Communication
239
+ - `lib/shared/widgets/` - UI Components (Button, Loading, Error)
240
+
241
+ ### New External Dependencies
242
+ - `webrtc_interface: ^1.0.0` - Für Live-Streaming
243
+ - `agora_rtc_engine: ^6.0.0` - Stream Infrastructure (falls nicht WebRTC)
244
+
245
+ ### Backend Dependencies
246
+ - WebRTC Signaling Server
247
+ - Stream Media Server (RTMP/HLS)
248
+ - Chat WebSocket Endpoints (erweitere bestehende)
249
+
250
+ ## Migration/Integration Notes
251
+
252
+ ### Existing Feature Integration
253
+ - [ ] **Video Feature**: Erweitere Player für Live-Streams
254
+ - [ ] **Chat Feature**: Adaptiere für Stream-spezifische Messages
255
+ - [ ] **Home Feature**: Integriere Stream-Liste in Feed
256
+ - [ ] **Profile Feature**: Füge Stream-History hinzu
257
+
258
+ ### Navigation Integration
259
+ - [ ] Erweitere `lib/core/routing/app_router.dart`:
260
+ ```dart
261
+ GoRoute(
262
+ path: '/livestream',
263
+ builder: (context, state) => const StreamListPage(),
264
+ ),
265
+ GoRoute(
266
+ path: '/livestream/:streamId',
267
+ builder: (context, state) => StreamViewerPage(
268
+ streamId: state.params['streamId']!,
269
+ ),
270
+ ),
271
+ ```
272
+
273
+ ### State Management Integration
274
+ - [ ] Erweitere globale App-State falls nötig
275
+ - [ ] Integration mit bestehenden User-State für Streamer-Info
276
+ - [ ] Benachrichtigungs-State für Stream-Alerts
277
+
278
+ Das ist ein intelligentes PRD, das maximale Code-Wiederverwendung sicherstellt! 🧠✨
@@ -111,12 +111,38 @@ security_considerations:
111
111
  - Prevent UI-based attacks (like tapjacking)
112
112
 
113
113
  standard_workflow:
114
- - Think through UI requirements and read existing codebase
115
- - Write implementation plan to tasks/todo.md
116
- - Get plan verified before beginning work
117
- - Implement UI components marking todo items complete
118
- - Provide high-level explanations of changes
119
- - Keep changes simple and focused
120
- - Add review section to todo.md
121
- - Make git commit after completion
114
+ - MANDATORY: Think through UI requirements and read existing codebase FIRST
115
+ - MANDATORY: Write detailed implementation plan to tasks/todo.md with checkable items
116
+ - MANDATORY: Get plan verified before beginning ANY work
117
+ - MANDATORY: Check lib/shared/widgets/ for existing components BEFORE creating new ones
118
+ - MANDATORY: Follow existing UI patterns - NEVER create new patterns without approval
119
+ - MANDATORY: Use AppLocalizations for ALL text - NO static text allowed
120
+ - MANDATORY: Implement UI components marking todo items complete as you go
121
+ - MANDATORY: Provide high-level explanations of changes at every step
122
+ - MANDATORY: Keep changes simple and focused - minimal code impact
123
+ - MANDATORY: Ensure all 5 quality criteria pass (DRY, Readable, Maintainable, Performant, Testable)
124
+ - MANDATORY: Add review section to todo.md with quality validation
125
+ - MANDATORY: Make git commit after completion with proper message
126
+
127
+ mandatory_quality_gates:
128
+ - DRY: No widget duplication - reuse existing shared widgets
129
+ - Readable: Clear widget composition and self-documenting code
130
+ - Maintainable: Modular widget architecture following existing patterns
131
+ - Performant: Optimized widget trees with const constructors
132
+ - Testable: All widgets must have widget tests
133
+
134
+ mandatory_pre_coding_checklist:
135
+ - Check lib/shared/widgets/ for existing similar widgets
136
+ - Review existing page structures in lib/features/*/presentation/pages/
137
+ - Verify theme compliance with lib/shared/theme/app_theme.dart
138
+ - Plan localization keys - NO static text allowed
139
+ - Identify reusable components before creating new ones
140
+ - Follow existing naming conventions exactly
141
+
142
+ mandatory_failure_conditions:
143
+ - Static text in widgets (instant failure)
144
+ - Widget duplication when shared widget exists (instant failure)
145
+ - Breaking existing UI patterns (instant failure)
146
+ - Missing widget tests (instant failure)
147
+ - Theme inconsistencies (instant failure)
122
148
  ```
@@ -1,5 +1,5 @@
1
1
  name: "BMad Flutter Mobile Development"
2
- version: "1.4.0"
2
+ version: "1.5.0"
3
3
  description: "Flutter mobile app development with Clean Architecture, Cubit state management, and best practices"
4
4
  bmad_compatibility: "v4+"
5
5
  author: "BMad Team"