How ghassanwc/wainzo works
Wainzo is a Flutter social app organized around geographic targeting and intentional viewing: creators describe and target a post, AI prepares an editable profile and preview, and viewers choose to watch or skip. The README documents the major product stages and learning loop; the tree supports the named feature, service, and data boundaries. Sampled source was limited to platform scaffolding and asset-generation tools, so internal call wiring beyond documented behavior is not asserted.
Main entry points: create_screen.dart Post composer · repositories.dart Repository boundary · feed_screen.dart Preview feed · explore_screen.dart World map explore
Components 28
App navigation
- Flutter entry
lib/main.dart - App setup
lib/app.dart - Routes
lib/core/routing/app_router.dart - Navigation shell
lib/features/shell/root_shell.dart
Explore and watch
- World map explore
lib/features/explore/explore_screen.dart - Offline map data
lib/data/geo/world_outlines.dart - Country content
lib/features/country/country_screen.dart - Preview feed
lib/features/feed/feed_screen.dart - Video watch
lib/features/watch/watch_screen.dart - Watch and skip signals
lib/features/post/post_actions_sheet.dart
Creation and publishing
- Post composer
lib/features/create/create_screen.dart - Media selection
lib/features/create/steps/media_step.dart - Post intent
lib/features/create/steps/intent_step.dart - Country targeting
lib/features/create/steps/countries_step.dart - AI review and preview
lib/features/create/steps/review_step.dart
People and learning
- Creator profile and reach
lib/features/profile/profile_screen.dart - Geographic activity
lib/features/activity/activity_screen.dart - Learned interests
lib/features/settings/settings_screen.dart
Services and data
- Recommendation ranking
lib/services/ranking/recommendation_service.dart - AI profiling
lib/services/ai/ai_service.dart - Content moderation
lib/services/moderation/moderation_service.dart - Repository boundary
lib/data/repositories/repositories.dart - Remote repositories
lib/data/remote/remote_repositories.dart - Mock repositories
lib/data/mock/mock_repositories.dart - Interest profile
lib/models/interest_profile.dart - HTTP client
lib/core/network/api_client.dart
Other components
- Viewer / creator
- Backend service
Connections 29
- Viewer / creator → Flutter entry: opens app
- Flutter entry → App setup: starts
- App setup → Routes: configures routes
- Routes → Navigation shell: opens shell
- Navigation shell → World map explore: shows explore
- World map explore → Offline map data: draws offline map
- World map explore → Country content: selects country
- Country content → Preview feed: opens content
- Preview feed → Recommendation ranking: requests previews
- Recommendation ranking → Repository boundary: loads candidates
- Preview feed → Video watch: chooses watch
- Preview feed → Watch and skip signals: chooses skip
- Watch and skip signals → Recommendation ranking: records signal
- Viewer / creator → Post composer: creates post
- Post composer → Media selection: collects media
- Post composer → Post intent: collects intent
- Post composer → Country targeting: collects countries
- Post composer → AI profiling: requests profile and preview
- Post composer → Content moderation: checks content
- Post composer → AI review and preview: presents for approval
- AI review and preview → Repository boundary: publishes approved post
- Creator profile and reach → Repository boundary: loads creator posts
- Geographic activity → Repository boundary: loads reach activity
- Learned interests → Interest profile: shows learned facets
- Learned interests → Repository boundary: deletes learned data
- Repository boundary → Remote repositories: selects remote implementation
- Repository boundary → Mock repositories: selects mock implementation
- Remote repositories → HTTP client: makes requests
- HTTP client → Backend service: sends HTTP