CineMatch - Real-time Collaborative Movie Discovery Engine

CineMatch - Real-time Collaborative Movie Discovery Engine

Technologies Used

  • Java
  • Android
  • Firebase
  • Retrofit
  • TMDB API

I developed CineMatch, a real-time collaborative movie discovery app, as my final project for IT 308W | Mobile Application Development 2 at Bulacan State University. This Android application solves a real-world problem: the friction and decision fatigue that comes with choosing a movie to watch with friends. I built a frictionless ecosystem where multiple users can sync their preferences in real-time and discover mutual matches instantly.


Problem & Solution

Deciding what movie to watch with friends is surprisingly difficult. People have different tastes, preferences change moment to moment, and traditional voting methods are clunky and slow. I wanted to create an app that makes consensus-building fun and engaging, turning movie selection into an interactive social experience rather than a frustrating negotiation.

CineMatch uses a real-time "Swipe-to-Match" mechanic where users join a lobby, swipe through trending movies, and the app automatically detects when everyone in the group has swiped "Yes" on the same film. No voting rounds, no discussion threads—just instant alignment through collaborative interaction.


Key Features

  • Real-Time Lobbies: Users can host a room and invite friends using a unique Room Code. Members join instantly and sync in real-time using Firebase.
  • Swipe-to-Match Voting: A frictionless interface where users swipe through TMDB's massive catalog. "Yes" swipes are recorded; "No" swipes are forgotten.
  • Instant Match Detection: The moment all lobby members swipe "Yes" on the same title, a "Match Found" event triggers with visual celebration feedback.
  • Movie Discovery: Browse trending movies, top-rated films, search by title, and explore interactive carousels.
  • User Personalization: Save favorite movies, build a watchlist, and sync all preferences across sessions.
  • Sub-Second Synchronization: Firebase Realtime Database ensures all lobby members stay perfectly in sync with near-zero latency.

Technical Challenges & Solutions

  • Real-Time Synchronization: Implementing low-latency sync across multiple devices was complex. I optimized Firebase listeners to only update affected UI elements, reducing bandwidth and improving responsiveness. The result: sub-second synchronization across devices.
  • MVVM Architecture: Separating concerns between UI and business logic proved critical for testability and maintainability. I implemented proper data binding and used LiveData to manage state changes cleanly.
  • API Optimization: TMDB API calls could be expensive at scale. I implemented intelligent caching with Retrofit interceptors and pagination to reduce network overhead while keeping content fresh.
  • Offline Fallback: Not all features work offline, but I gracefully degrade the experience by caching previously fetched movies and allowing local browsing.

Impact

  • Delivered an intuitive, production-quality Android app that handles real-time collaboration elegantly.
  • Achieved sub-second synchronization across multiple devices, exceeding typical expectations for a student project.
  • Demonstrated mastery of modern Android best practices (MVVM, reactive programming, API integration).

Architecture

  • Language: Java 11 with clean architecture principles.
  • Design Pattern: MVVM with LiveData and ViewModel for lifecycle-aware state management.
  • Backend: Firebase Authentication for secure login and Firebase Realtime Database for low-latency lobby sync.
  • API Integration: Retrofit 2 with OkHttp for efficient HTTP calls to TMDB API.
  • UI Components: Android Material Design 3 for modern, responsive layouts.
  • Media Handling: Glide for efficient image loading and caching. Lottie for celebration animations.

This project deepened my understanding of real-time systems, taught me how to design interfaces that feel responsive and immediate, and reinforced the importance of thoughtful architecture when building collaborative features. The challenge of keeping multiple clients in sync while maintaining a smooth user experience was genuinely rewarding.


Project Resources

This section contains our project resources used to aid in development and design.


Developed for the Final Project in Mobile Application Development 2.