Home
Softono
MovieDex

MovieDex

Open source MIT Dart
49
Stars
15
Forks
8
Issues
3
Watchers
3 months
Last Commit

About MovieDex

MovieDex is an open-source Flutter application that allows users to explore and discover movies effortlessly. With a sleek UI and real-time movie data, this app provides an engaging experience for movie enthusiasts.

Platforms

Web Self-hosted Windows iOS Android

Languages

Dart

MovieDex - Open Source Movie Streaming App

MovieDex

MovieDex is a Flutter-based movie and TV show streaming application that provides a beautiful user interface and rich features for streaming enthusiasts.

Features

  • 🎬 Movie & TV Show Streaming
  • πŸ” Advanced Search
  • πŸ“± Responsive Design
  • πŸŒ™ Dark/AMOLED Theme
  • πŸ“‹ Watchlist Management
  • πŸ” User Authentication
  • πŸ”„ Cloud Sync
  • πŸ“Ί Multiple Video Quality
  • 🌐 Proxy Support

Screenshots

Desktop Screenshots

Desktop Home
Desktop Player

Setup Instructions

Prerequisites

  • Flutter SDK (3.0 or higher)
  • Dart SDK
  • Android Studio / VS Code
  • Git

Installation Steps

  1. Clone the repository:

    git clone https://github.com/kodify-js/MovieDex.git
    cd MovieDex
  2. Install dependencies:

    flutter pub get
  3. Setup TMDB API:

    • Sign up at TMDB
    • Get your API key from API Settings
    • Create lib/api/secrets.dart:
      const String apiKey = 'YOUR_TMDB_API_KEY';
  4. Appwrite Setup:

    • Create a new Appwrite project at Appwrite Console
    • Create a new platform for Flutter in your project settings
    • Update lib/api/secrets.dart with your Appwrite credentials:
      
      // TMDB API Key
      const String apiKey = 'YOUR_TMDB_API_KEY';

// Appwrite Credentials const projectId = ""; const databaseId = ""; const watchHistoryCollection = ""; const userListCollection = ""; const mixpanelToken = "";

   - Create `lib/services/appwrite_service.dart`:

5. Generate Hive Adapters:
```bash
flutter pub run build_runner build
  1. Run the app:
    flutter run

Configuration

Appwrite Setup Details

  1. Go to Appwrite Console
  2. Create a new project
  3. Add Flutter platform:
    • Go to your project settings
    • Click on 'Add Platform'
    • Choose 'Flutter App'
    • Add your app's package name (e.g., com.kodify.moviedex)
  4. Enable Authentication:
    • Go to Auth > Settings
    • Enable Email/Password sign-in method
  5. Setup Database:
    • Create a new database
    • Create necessary collections (watchlist, user_preferences)
    • Set up appropriate attributes and indexes
    • Configure read/write permissions

TMDB API Setup

  1. Create account on TMDB
  2. Request an API key
  3. open secrets.dart:
    const String apiKey = 'YOUR_API_KEY';

Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

  • TMDB for providing the movie database
  • Flutter for the amazing framework
  • Appwrite for backend services

Support

If you find this project helpful, please give it a ⭐️!

For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

Contributors

Core Team

  • KodifyJs - Project Lead
    • Core architecture
    • Video player implementation
    • Content providers

Contributors

Project Structure

Key features and their locations:

lib/
β”œβ”€β”€ api/              # API and data layer
β”œβ”€β”€ components/       # Reusable UI components
β”œβ”€β”€ pages/           # Application screens
β”œβ”€β”€ providers/       # State management
β”œβ”€β”€ services/        # Business logic
└── utils/          # Helper functions

Key Files

  • lib/api/contentproviders/ - Streaming source implementations
  • lib/components/content_player.dart - Video player component
  • lib/services/watch_history_service.dart - History tracking
  • lib/services/appwrite_service.dart - Authentication
  • lib/services/cache_service.dart - Local caching

See CONTRIBUTING.md for detailed project structure and contribution guidelines.

DMCA disclaimer

The developers of this application do not have any affiliation with the content available in the app. It collects content from sources that are freely available through any web browser.