A modern Flutter application to explore, watch, and favorite Eurovision contest videos by year and artist.
---"
| Home | Search | Favorites |
|---|---|---|
![]() |
![]() |
![]() |
| My Top 10 | Reorder List | Winner Details |
|---|---|---|
![]() |
![]() |
![]() |
| Detail View | About |
|---|---|
![]() |
![]() |
lib/
βββ app/ # App-specific layers and modules
β βββ common/ # Common utilities and shared components
β β βββ constants/ # App-wide constants (colors, strings, etc.)
β β βββ functions/ # Reusable helper functions
β β βββ service_locator/ # Dependency injection setup (e.g., get_it)
β β βββ widgets/ # Shared custom widgets across the app
β βββ features/ # Feature-based architecture
β β βββ data/ # Data layer (models, datasources, API access)
β β β βββ datasources/ # Remote/local data fetching logic
β β β βββ domain/ # Entities and use cases (if used)
β β β βββ models/ # Data models for API parsing
β β βββ presentation/ # UI layer (views, providers, widgets)
β β β βββ about/ # "About" screen of the app
β β β βββ feature/ # Feature-specific settings (themes, language)
β β β βββ home/ # Home screen
β β β βββ home_detail/ # Detailed view for selected home item
β β β βββ mytopten/ # "My Top 10" list and customization
β β β βββ search_video/ # Video search and year filter features
β β β βββ splash/ # App splash screen
β βββ utils/ # Utility classes (e.g., year calculator)
βββ core/ # Core layer (cross-cutting concerns)
β βββ config/ # App configurations (e.g., environment setup)
β βββ constants/ # Global constants
β βββ dio_manager/ # Dio API setup and management
β βββ extensions/ # Dart/Flutter extension methods
β βββ helpers/ # Helper logic and abstract classes
β βββ keys/ # Global keys (e.g., navigatorKey)
β βββ logger/ # Logging utilities
β βββ network_control/ # Network state management
β βββ providers/ # Base provider classes and logic
β βββ result/ # Result pattern (success, error handling)
β βββ routes/ # Navigation routes and page transitions
β βββ widgets/ # Core-level reusable widgets
βββ main.dart # Application entry point- Browse Eurovision contest videos by year
- Search artists by name
- Save and manage favorite videos
- Create and reorder your own "Top 10" list
- Watch videos through an embedded YouTube player
- Light and dark theme support
- State management with Provider
- API integration using Dio
- Local storage with Hive
- Clone the repository:
git clone https://github.com/denizguvel/eurovision-app.git- Navigate into the project directory:
cd eurovision-app- Install dependencies:
flutter pub get- Run the app:
flutter run- Flutter 3.29.0
- Dart
- Provider (State Management)
- Dio (Networking)
- Hive (Local Storage)
- Youtube Player Flutter (Video Playback)
- Clean Architecture Principles
This application uses the public Eurovision API to fetch contest data.
- β
Official API:
https://eurovisionapi.runasp.net/api/{endpoints} - π Full API documentation and available endpoints can be found here:
https://eurovisionapi.runasp.net/documentation
Contributions, issues, and feature requests are welcome! Feel free to open an issue or submit a pull request. π
This project is licensed under the MIT License.
You are free to use, modify, and distribute this project as long as proper credit is given. See the LICENSE file for more details.
Enjoy exploring the world of Eurovision through this app! π








