Movissance
Discover personalized movie recommendations with Movissance – a cross-platform app built with Flutter for all your movie discovery needs!
Install / Use
/learn @L4XB/MovissanceREADME
🎬 Movissance - Movie Recommendation App 🎬
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
</div>🔍 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
<div align="center"> <img src="assets/readme/features_diagram.png" alt="Features Diagram" width="80%"/> </div>- 🎯 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
-
Clone the repository:
git clone https://github.com/L4XB/red_line -
Navigate to the project directory:
cd red_line -
Install dependencies:
flutter pub get -
API Configuration:
- Create a free account at The Movie Database
- Generate an API key in your account settings
- Create a file named
api_config.dartinlib/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
<div align="center"> <img src="https://firebase.google.com/images/social.png" alt="Firebase" width="300"/> </div>This project requires Firebase for authentication, cloud storage, and real-time database features.
Setup Steps
-
Create a Firebase project at Firebase Console
-
Install the FlutterFire CLI:
dart pub global activate flutterfire_cli -
Run the configuration command from your project root:
flutterfire configure --project=your-firebase-project-idThis will generate the
firebase_options.dartfile automatically. -
Add the required Firebase configuration files to the project:
google-services.jsoninandroid/app/GoogleService-Info.plistinios/Runner/andmacos/Runner/
-
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
<div align="center"> <img src="assets/readme/app_usage.gif" alt="App Usage Demo" width="300"/> </div>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.
<div align="center"> </div>📃 License
This app is licensed under the MIT License. For more information, see the LICENSE file.
