A modern Flutter-based movie recommendation application that leverages on-device machine learning (ONNX) to provide personalized, lightning-fast movie suggestions.
- On-Device Machine Learning: Utilizes
onnxruntimewith a quantized model andml_linalgto generate recommendations directly on your device, ensuring privacy and instant results. - Fast Local Storage: Uses Hive for caching movie data, managing the user's watchlist, and storing preferences completely offline.
- Robust State Management: Powered by Riverpod for a scalable, reactive, and testable architecture.
- Declarative Routing: Implemented using GoRouter for smooth, deep-linkable, and predictable navigation.
- Beautiful UI: Features an elegant modern dark theme built with Material Design and beautiful typography via Google Fonts.
- Seamless Networking: API integrations handled efficiently via Dio.
- Framework: Flutter (Dart
^3.11.5) - State Management: Riverpod (
flutter_riverpod,riverpod_annotation) - Local Database: Hive
- Networking: Dio
- Machine Learning: ONNX Runtime & ml_linalg
- Routing: GoRouter
- Flutter SDK
^3.11.5or higher - Dart SDK
- An active IDE (VS Code, Android Studio, or IntelliJ)
-
Clone the repository:
git clone <repository_url> cd cinematch
-
Install dependencies:
flutter pub get
-
Environment Setup: Create a
.envfile in the root directory to store your API keys and configuration variables:touch .env # Add your required environment variables to the .env file -
Code Generation: Generate the required Hive adapters and Riverpod providers:
dart run build_runner build -d
-
Run the app:
flutter run
lib/core/- Core configurations, theming, and constants.lib/data/- Data layer including models, DTOs, data sources, and repositories.lib/features/- Application features partitioned by domain, containing specific UI and controllers.lib/shared/- Shared widgets, providers, and utilities used across multiple features.assets/ml/- Contains the ONNX quantized model (model_quantized.onnx), tokenizer configuration, and movie embeddings required for the local ML engine.assets/images/- Application image assets and launcher icons.
Contributions, issues, and feature requests are always welcome!
This project is licensed under the MIT License.