MovFlix is a feature-rich Flutter application that serves as your ultimate movie companion. Discover popular, trending, and top-rated movies, watch trailers, and manage your personal watchlist with ease.
- Authentication: Secure Login and Sign Up functionality using Firebase Authentication.
- Movie Discovery: Browse through Popular, Trending, and Top Rated movie lists.
- Search: Find movies instantly by title.
- Detailed Information: Access comprehensive movie details including overviews, ratings, release dates, genres, and runtime.
- Trailers: Watch movie trailers directly within the app (via YouTube).
- Wishlist: Save your favorite movies to a personalized watchlist (synced across devices using Firebase Realtime Database).
- Similar Movies: Discover new movies based on your interests.
- Responsive UI: A beautiful, dark-themed user interface built with Flutter.
- Frontend: Flutter (Dart)
- Backend / BaaS: Firebase
- Authentication: For user management.
- Realtime Database: For storing user wishlists.
- API: The Movie Database (TMDB)
- State Management:
setState(Native Flutter)
(Add your screenshots here)
Follow these steps to set up the project locally.
- Flutter SDK installed.
- A TMDB API Key.
- A Firebase Project set up.
-
Clone the repository
git clone https://github.com/yourusername/movflix.git cd movflix -
Navigate to the project directory
cd movflix -
Install dependencies
flutter pub get
-
Configure Firebase
- Create a project in the Firebase Console.
- Add Android/iOS/Web apps to your Firebase project.
- Download
google-services.json(for Android) and place it inandroid/app/. - (Optional) Use
flutterfire configureto automatically generatefirebase_options.dart.
-
Configure TMDB API
- Open
lib/services/movie_service.dart. - Replace the
apiKeyvariable with your own TMDB API key:final String apiKey = 'YOUR_TMDB_API_KEY';
- Open
-
Run the App
flutter run
movflix/
├── lib/
│ ├── models/ # Data models (Movie, MovieDetails)
│ ├── screens/ # UI Screens (Home, Login, MovieList, etc.)
│ ├── services/ # API and Database services (MovieService, DatabaseService)
│ ├── main.dart # Application entry point
│ └── firebase_options.dart # Firebase configuration
├── android/ # Android native code
├── ios/ # iOS native code
├── web/ # Web specific files
└── pubspec.yaml # Dependencies
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/YourFeature). - Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.