/Movie-Matrix

Movie-Matrix is Demo App for The Movie Database. it gives you the overview of Movies TV shows & Actors from the largest community network The Movie Database (TMDb)

Primary LanguageKotlin

Movie Matrix

Image 1 Image 1 Image 1 Image 1

Introduction

Movie Matrix is a demo application that provides detailed information about movies. It fetches data from the TMDB (The Movie Database) API, offering users an intuitive and seamless experience. The app is built using the latest Android development tools and practices.

Features

  • Movie Information: Browse and search for movies, view detailed information including ratings, cast, and reviews.
  • Smooth UI: Leveraging Jetpack Compose for a modern, declarative UI.
  • Efficient Data Handling: Utilizes Paging 3 for efficient data loading and caching.
  • Robust Architecture: Built with MVVM and Clean Architecture principles.
  • Offline Support: Data caching with Room database to support offline access.
  • Continuous Integration/Continuous Deployment (CI/CD): Automated build and deployment pipeline.
  • Quality Assurance: Comprehensive unit testing for reliability.

Technology Stack

  • Language: Kotlin
  • UI: Jetpack Compose
  • Networking: Retrofit
  • Dependency Injection: Dagger Hilt
  • Concurrency: Coroutines and Flow
  • Data Storage: Room Database
  • Paging: Paging 3 with RemoteMediator
  • Architecture: MVVM and Clean Architecture
  • CI/CD: Integrated CI/CD pipeline
  • Code Quality: Lint for static code analysis

Project Setup

To set up the project locally, follow these steps:

  1. Clone the repository:
    git clone https://github.com/your-username/MovieMatrix.git
    cd MovieMatrix
    
  2. Open the project in Android Studio:
  • Ensure you have Android Studio Arctic Fox or later.
  1. Get TMDB API Key:
  • Sign up at TMDB and get your API key.
  • Add the API key to your local.properties file:
    TMDB_API_KEY=your_api_key_here
       
  1. Build and Run:
  • Sync the project with Gradle files.
  • Run the app on an emulator or a physical device.

Continuous Integration

The project includes a CI/CD pipeline using GitHub Actions. The pipeline automatically builds and tests the app on every push to the repository.

Testing

./gradlew test

Contributing

Contributions are welcome! Please follow these steps:

  • Fork the repository.
  • Create a new branch (git checkout -b feature/YourFeature).
  • Commit your changes (git commit -am 'Add some feature').
  • Push to the branch (git push origin feature/YourFeature).
  • Create a new Pull Request.

Contact

For any inquiries, please contact: