ECHO receives live public announcements from a backend, displays them as readable alerts, and personalizes content based on user profile (train, platform, disability flag).
- Real-time announcement feed
- User profile personalization
- Train & platform filters
- Push notifications
- Accessibility mode (large text, high contrast, TTS)
- Offline caching
- Dark/Light theme
- Multi-language support
- PWD badge indicator
- Voice read-out (TTS)
- Favorites & History
flutter pub get
flutter runNote: If platform folders (android/, ios/) are missing, run:
flutter create . --org com.echo.app --project-name echoSet environment variables or replace in lib/main.dart:
SUPABASE_URL- Your Supabase project URLSUPABASE_ANON_KEY- Your Supabase anon key
Set in lib/core/constants/api_constants.dart:
API_BASE_URL- Backend API base URL (default: https://api.echo.app)
- Clean Architecture + MVVM
- State Management: Riverpod
- Navigation: go_router
lib/
├── core/ # Constants, themes, utils, router
├── data/ # Models
├── presentation/ # Screens, widgets
├── providers/ # Riverpod state
├── services/ # API, Auth, Cache, Notification, TTS, Connectivity
└── main.dart