Skip to content

LikhinMN/cinematch

Repository files navigation

CineMatch 🎬

A modern Flutter-based movie recommendation application that leverages on-device machine learning (ONNX) to provide personalized, lightning-fast movie suggestions.

✨ Features

  • On-Device Machine Learning: Utilizes onnxruntime with a quantized model and ml_linalg to 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.

🛠️ Tech Stack

🚀 Getting Started

Prerequisites

  • Flutter SDK ^3.11.5 or higher
  • Dart SDK
  • An active IDE (VS Code, Android Studio, or IntelliJ)

Installation

  1. Clone the repository:

    git clone <repository_url>
    cd cinematch
  2. Install dependencies:

    flutter pub get
  3. Environment Setup: Create a .env file in the root directory to store your API keys and configuration variables:

    touch .env
    # Add your required environment variables to the .env file
  4. Code Generation: Generate the required Hive adapters and Riverpod providers:

    dart run build_runner build -d
  5. Run the app:

    flutter run

📁 Project Structure

  • 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.

🤝 Contributing

Contributions, issues, and feature requests are always welcome!

📝 License

This project is licensed under the MIT License.

About

Movie recommendation platform powered by on-device machine learning, ONNX Runtime, and Flutter for fast, privacy-first recommendations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors