Skip to content

Discover personalized movie recommendations with Movissance – a cross-platform app built with Flutter for all your movie discovery needs!

License

Notifications You must be signed in to change notification settings

L4XB/movissance

Repository files navigation

🎬 Movissance - Movie Recommendation App 🎬

Flutter Dart Firebase License: MIT Version Status

Welcome to Movissance, the ultimate movie recommendation app! This app helps you discover the best movies based on your preferences.

🔍 Overview✨ Features🚀 Installation💻 Usage🖥️ Tech Stack📱 Screenshots🗺️ Roadmap📧 Contact

🔍 Overview

Movissance helps movie enthusiasts find their next favorite film by providing personalized recommendations and comprehensive information. With an intuitive swipe interface, detailed movie pages, and cross-platform availability, Movissance transforms the way you discover movies.

✨ Features

Features Diagram
  • 🎯 Personalized Recommendations: Get movie suggestions based on your preferences and viewing history
  • 📝 Detailed Movie Information: Comprehensive details about plot, cast, crew, ratings, and reviews
  • 👍 Swipe Interface: Intuitive Tinder-like swiping to like or pass on movie recommendations
  • 🔖 Favorites List: Save movies to watch later or mark as favorites
  • 🔍 Advanced Search: Filter movies by genre, year, rating, and more
  • 👤 User Profiles: Create and customize your profile with preferences
  • 📱 Cross-Platform: Available for iOS, Android, Web, Windows, macOS, and Linux
  • 🌙 Dark Mode: Eye-friendly dark theme for night viewing

🚀 Installation

Prerequisites

  • 📌 Flutter SDK (v2.0 or higher)
  • 📌 Dart SDK (v2.12 or higher)
  • 📌 Android Studio / VS Code with Flutter plugin
  • 📌 iOS development tools (for iOS deployment)

Steps

  1. Clone the repository:

    git clone https://github.com/L4XB/red_line
  2. Navigate to the project directory:

    cd red_line
  3. Install dependencies:

    flutter pub get
  4. API Configuration:

    • Create a free account at The Movie Database
    • Generate an API key in your account settings
    • Create a file named api_config.dart in lib/config/ with the following content:
      class ApiConfig {
        static const String apiKey = 'YOUR_API_KEY';
        static const String baseUrl = 'https://api.themoviedb.org/3';
        static const String imageBaseUrl = 'https://image.tmdb.org/t/p/w500';
      }
    • Replace 'YOUR_API_KEY' with your actual API key

Quick Start

After installation, run the app in debug mode:

flutter run

Or build for deployment:

# For Android
flutter build apk --release

# For iOS
flutter build ios --release

🔥 Firebase Setup

Firebase

This project requires Firebase for authentication, cloud storage, and real-time database features.

Setup Steps

  1. Create a Firebase project at Firebase Console

  2. Install the FlutterFire CLI:

    dart pub global activate flutterfire_cli
  3. Run the configuration command from your project root:

    flutterfire configure --project=your-firebase-project-id

    This will generate the firebase_options.dart file automatically.

  4. Add the required Firebase configuration files to the project:

    • google-services.json in android/app/
    • GoogleService-Info.plist in ios/Runner/ and macos/Runner/
  5. Initialize Firebase in your app by adding the following to lib/main.dart:

    import 'package:firebase_core/firebase_core.dart';
    import 'firebase_options.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
      runApp(MyApp());
    }

💻 Usage

App Usage Demo

Basic Navigation

  • Home: Discover new trending and popular movies
  • Swiper: Swipe right to like, left to pass on recommendations
  • Search: Look for specific movies or filter by categories
  • Favorites: Access your saved movies
  • Profile: Customize your preferences and settings

Commands

Start the app with the following command:

flutter run

Specify a target device:

flutter run -d <device_id>

Run in release mode for better performance:

flutter run --release

📁 Folder Structure

movissance/
├── lib/                  # Contains the app's source code
│   ├── config/           # Configuration files and constants
│   ├── models/           # Data models and state management
│   ├── screens/          # UI screens and pages
│   ├── widgets/          # Reusable UI components
│   ├── services/         # API services and business logic
│   ├── utils/            # Utility functions and helpers
│   ├── theme/            # App theme and styling
│   └── main.dart         # Application entry point
├── assets/               # Contains images, animations, and other resources
│   ├── images/           # Image files
│   ├── icons/            # Icon files
│   └── animations/       # Lottie and other animation files
├── test/                 # Contains test cases for the app
│   ├── unit/             # Unit tests
│   └── widget/           # Widget tests
├── ios/                  # iOS platform-specific files
├── android/              # Android platform-specific files
├── web/                  # Web platform-specific files
├── windows/              # Windows platform-specific files
├── macos/                # macOS platform-specific files
└── linux/                # Linux platform-specific files

👥 Contributing

Contributions are welcome! Please create a pull request or open an issue to report bugs or suggest new features.

PRs Welcome Open Issues

📃 License

This app is licensed under the MIT License. For more information, see the LICENSE file.

📱 Screenshots

Home Screen
Home Screen

Browse trending and popular movies

Favourites Screen
Favourites Screen

Access your saved movies

Movie Details Screen
Movie Details Screen

View comprehensive movie information

Profile Screen
Profile Screen

Manage your preferences and account

Swiper Screen
Swiper Screen

Swipe to like or pass on recommendations

Search Screen
Search Screen

Find specific movies with advanced filters

🖥️ Tech Stack

Flutter Firebase TMDB API
Flutter Firebase TMDB API
UI Framework Backend Services Movie Data
Bloc GetIt Hive
Bloc GetIt Hive
State Management Dependency Injection Local Storage

🗺️ Roadmap

  • AI-Powered Recommendations: Implement machine learning algorithms for better suggestions
  • Social Features: Friend connections and movie recommendations
  • User Reviews: Allow users to write and share their movie reviews
  • Watchlist Sharing: Share curated movie lists with friends
  • Movie Parties: Virtual watch parties with friends
  • Offline Mode: Full functionality without internet connection
  • Multiple Languages: Support for various languages
  • Accessibility Features: Better support for all users

📧 Contact

Email Website Twitter


Thank you for using Movissance! We hope you discover great movies. 🎥 🍿

Made with ❤️ by Lukas Buck

GitHub Follow

About

Discover personalized movie recommendations with Movissance – a cross-platform app built with Flutter for all your movie discovery needs!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published