CineVerse is an Android application for discovering movies and TV series, searching content, managing a personal watchlist, and writing reviews.
The app combines:
- TMDB integration for movie/TV discovery, details, genres, trends, and search
- Firebase Authentication for account management (email/password + Google Sign-In)
- Firebase Realtime Database for cloud user data such as watchlists and reviews
- Room for local persistence (content caching and search history)
The codebase is organized around an MVVM + Repository architecture.
- User authentication (register, login, forgot password, Google login)
- Email verification flow before accessing the main dashboard
- Home feed with categorized sections for movies and TV series (popular, trending, top rated, upcoming, airing, etc.)
- Genre-based browsing
- Content details screen with metadata, cast/crew, videos, and reviews
- Full-text content search with:
- keyword suggestions
- local search history
- voice input (speech-to-text)
- Personal watchlist management
- User reviews and ratings
- In-app settings (theme, language, username, about)
- Language: Java
- UI: AndroidX, Material Components
- Architecture: MVVM + Repository
- Networking: Retrofit
- Image loading: Glide
- Persistence: Room
- Backend services: Firebase Auth + Firebase Realtime Database
- Build system: Gradle (Android application module
:app)
High-level source layout:
app/src/main/java/com/example/cineverse/view– Activities/Fragments (UI layer)app/src/main/java/com/example/cineverse/viewmodel– ViewModelsapp/src/main/java/com/example/cineverse/repository– Repositories (domain/data coordination)app/src/main/java/com/example/cineverse/data– Models, local DB, and data sourcesapp/src/main/java/com/example/cineverse/service/api– Retrofit API interfacesapp/src/main/res– Layouts, strings, navigation graphs, and resources
Additional material:
STYLE.md– design/style references used by the projectdemo/CineVerse_demo.mp4– demo videopresentazione_documentazione/– project documentation assets (written in Italian)
Before building the app, ensure you have:
- Android Studio (latest stable recommended)
- Android SDK configured
- JDK compatible with your Android Gradle Plugin (AGP 8.2.0)
- A Firebase project configured for this app
- TMDB API credentials
Create or update:
local.properties (in the project root)
with the required keys:
sdk.dir=/path/to/Android/Sdk
access_token_auth=YOUR_TMDB_BEARER_TOKEN
api_key_auth=YOUR_TMDB_API_KEY
access_token_authandapi_key_authare required by the app build and TMDB calls.
Add your Firebase configuration file:
app/google-services.json
This file is intentionally gitignored and must be provided locally.
From project root:
./gradlew assembleDebugFor installing/running through Android Studio, open the root folder and run the app configuration on an emulator/device.
Unit tests:
./gradlew testAndroid instrumentation tests (requires emulator/device):
./gradlew connectedAndroidTestLint:
./gradlew lint- Milanesi Luca (886279)
- Pirnau Ion (887465)
- Polignone Alessandro (886000)