Skip to content

About

Android movie and TV tracker with Gemini recommendations, offline storage, and custom charts.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🎬 MovieTracker

MovieTracker is a sleek and intuitive Android application designed for movie enthusiasts to discover, track, and manage their favorite films and TV shows. Built with modern Android development practices, it leverages the OMDB API to provide a comprehensive database at your fingertips.


🚀 Features

  • Advanced Search: Explore a vast library of movies and TV shows using the OMDB API with pagination support.
  • Comprehensive Tracking: Categorize your content into "Watching", "Completed", "Dropped", and "Planned" lists.
  • Progress Management: Keep track of your episode progress for TV shows and rate your completed watches.
  • Detailed Insights: View in-depth information including plots, ratings (both IMDb and user-assigned), and cast details.
  • Personalized Profile: Visualize your tracking statistics with custom charts (pie, bar, line), including type distribution (Movies vs. TV Shows), rating distributions, and average ratings.
  • Offline Synchronization: Robust local storage using SQLite ensures your watchlist is always accessible and up-to-date.
  • AI-Powered Recommendations: Get personalized movie and TV show recommendations powered by Google Gemini AI, generated from your watchlist history.
  • AI Chat Assistant: Chat with a Gemini-powered AI assistant for movie suggestions, reviews, and recommendations with markdown-formatted responses.
  • Google Sign-In: Secure authentication via Firebase Authentication and Google Sign-In.
  • Rich UI Components: Custom-drawn charts (pie, bar, line), bottom sheet tracking panel, swipe-to-refresh, and a polished chat interface with custom themed backgrounds.

🛠 Tech Stack

  • Language: Java
  • UI Framework: Android Material Components (BottomNavigationView, TabLayout, CardView, SwipeRefreshLayout)
  • Networking: Retrofit 2 & OkHttp with Logging Interceptor
  • JSON Parsing: Gson
  • Image Loading: Glide 4
  • Markdown Rendering: Markwon 4.6.2 for AI chat responses
  • Database: SQLite with a multi-version schema (v3) for tracking scores and progress.
  • Authentication: Firebase Authentication with Google Sign-In (play-services-auth 21.0.0)
  • AI Integration: Google Gemini API for chat assistant and recommendation engine
  • Architecture: Single Activity host with Fragment-based navigation using BottomNavigationView.

📦 Installation & Setup

  1. Clone the repository:
    git clone https://github.com/your-username/MovieTracker.git
  2. Open in Android Studio: Select "Open an Existing Project" and point to the cloned directory.
  3. API Configuration:
    • This app requires an API key from OMDb API.
    • Insert your API key in the ApiClient.java file located at app/src/main/java/com/example/movietracker/data/api/.
    • For the AI chat and recommendation features, add your Google Gemini API key to a .env file (or local.properties) as GEMINI_API_KEY=<your_key>.
  4. Build & Run: Click the Run button in Android Studio to deploy the app to your emulator or physical device.

🧩 Key Components

Activities:

  • MainActivity — Host with BottomNavigationView (4 tabs)
  • DetailActivity — Shows detailed movie/show info with tracking options via bottom sheet
  • LoginActivity — Google Sign-In via Firebase Auth

Fragments (Bottom Nav): | Tab | Fragment | Function | |-----|-|--|--| | 📺 Search | SearchFragment | OMDB-powered search with pagination | | 📋 Watchlist | WatchlistFragment | Filtered lists: Watching, Completed, Dropped, Planned | | 👤 Profile | ProfileFragment | Stats, ratings charts, AI-powered recommendations | | 💬 Chat | ChatFragment | AI chat powered by Gemini API with markdown rendering |

AI Services:

  • GeminiApiService / GeminiApiClient — HTTP client for Google Gemini AI
  • GeminiRepository — Abstraction layer for AI requests/responses
  • LocalRecommendationEngine — Content-based recommendations from local watchlist data

Custom Charts:

  • PieChartView — Type distribution (Movies vs TV Shows)
  • BarChartView / LineChartView — Rating distributions
  • VerticalBarChartView — Status-based stats

📊 Database Schema (v3)

The application uses an evolved SQLite schema to support advanced tracking:

  • imdb_id: Primary Key
  • status: Watch status (WATCHING, COMPLETED, etc.)
  • episode_progress: Current episode count for shows.
  • user_score: Personal rating for completed content.

📸 Screenshots

Search Screen Watchlist Profile Stats
Placeholder Placeholder Placeholder

🤝 Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request if you have ideas for improvements or find any bugs.


📜 License

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

About

Android movie and TV tracker with Gemini recommendations, offline storage, and custom charts.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages