The Cinemeteor is a modern Android application that allows users to explore movies using The Movie Database (TMDB) API. Users can browse trending and popular movies, search for specific titles, and view detailed information like synopsis, rating, release date, trailers, similar movies, and reviews. The app features user authentication with Firebase, profile management, wishlist functionality with cloud sync, light/dark mode, and multi-language support (English/Arabic). The app is built using Kotlin, Jetpack Compose, Retrofit, Firebase, and SharedPreferences, following modern Android development practices and clean architecture principles.
- Marwan Amr Saad
- Ahmed Mohamed Ismail
- Ahmed Mostafa Anwar
- Sara Amgad Abdelalim
- Christine Medhat Mounir
- Ahmed Reda
✅ Browse Popular Movies ✅ Browse Trending Movies ✅ Browse Top Rated Movies ✅ Browse Now Playing Movies ✅ Search Movies by Title ✅ Movie Details Screen with trailers, similar movies, and reviews ✅ View Movie Ratings and Details ✅ User Authentication (Email/Password & Google Sign-in) ✅ User Profile with edit functionality ✅ Wishlist/Favorites (Local & Cloud Sync with Firebase) ✅ Light/Dark Mode support ✅ Multi-language support (English & Arabic) ✅ Splash Screen with authentication check ✅ Onboarding Screen for new users ✅ About Us page with team information ✅ Notifications system ✅ Download App web page ✅ Modern UI using Jetpack Compose ✅ TMDB API Integration with Retrofit ✅ Clean MVVM Architecture ✅ Secure API key management ✅ Fast and responsive performance ✅ Firebase Integration (Authentication, Firestore, Analytics)
| Team Member | Responsibilities |
|---|---|
| Ahmed Esmail | User's profile page, About Us page, Light mode and Dark mode, Translation (English/Arabic) |
| Ahmed Mostafa | TMDB API handling and testing, Similar movies feature, Reviews section in FilmActivity, Download app web page, swipe to refresh and loading screen |
| Ahmed Reda | Notifications system, Splash screens, Onboarding Screen, Navigation Bar, Home Activity Design |
| Marwan Amr | Login and Signup functionality, Login with Google, Firebase handling |
| Christine Medhat | Firebase handling, Wishlist/Favorites feature, Film details page |
| Sara Amgad | Firebase handling, Wishlist/Favorites feature, Film details page |
- Fast loading time (<2 seconds) for popular movies
- Zero critical crashes during testing
- Responsive UI across Android screen sizes
- Successful TMDB API communication (95% success rate)
- Clean modular code following MVVM
- Complete documentation + README
| Category | Tools |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose, Material UI 3 |
| Networking | Retrofit + OkHttp |
| Architecture | MVVM + Repository Pattern |
| Local Storage | SharedPreferences, Firebase Firestore |
| Backend | Firebase (Auth, Firestore, Analytics) |
| API | TMDB REST API, IMGBB API |
| Image Loading | Coil |
| Testing | JUnit, Mockito, Espresso |
| Web | React, TypeScript, Vite |
| Version Control | Git & GitHub |
| Build | Gradle |
- Android Studio
- TMDB API Key (See API_KEY_SETUP.md for detailed instructions)
-
Clone the repository
git clone https://github.com/DEPI-3-Android/Cinemeteor.git
-
Add API Keys
-
Sync and Run
- Sync Gradle files
- Run the app on an emulator or device
For detailed API key setup instructions, see API_KEY_SETUP.md.
app/src/main/java/com/acms/cinemeteor/
├── api/ # API service interfaces
│ ├── TMDBApiService.kt # TMDB API endpoints
│ └── RetrofitClient.kt # Retrofit configuration
├── models/ # Data models
│ └── Movie.kt # Movie data class
├── repository/ # Data layer
│ └── MovieRepository.kt # Repository for API calls
├── viewmodel/ # ViewModel layer
│ └── MovieViewModel.kt # UI state management
├── utils/ # Utility classes
│ ├── ImageUtils.kt # Image URL helpers
│ └── LanguageUtils.kt # Language management
├── ui/ # UI components
│ ├── components/ # Reusable UI components
│ │ └── LoadingScreen.kt
│ └── theme/ # App theming
├── OnBoardingScreen/ # Onboarding flow
│ ├── OnBoarding.kt
│ ├── OnBoardingData.kt
│ └── OnBoardingScreen.kt
├── MainActivity.kt # Main entry point
├── LoginActivity.kt # User login
├── SignupActivity.kt # User registration
├── ProfileActivity.kt # User profile
├── EditProfileActivity.kt # Edit profile
├── FilmActivity.kt # Movie details screen
├── FavoriteActivity.kt # Local favorites
├── CloudSavedActivity.kt # Cloud favorites
├── AboutActivity.kt # About us page
├── SplashScreen.kt # Splash screen
├── HomeScreen.kt # Home screen
├── CreateAccountActivity.kt # Account creation
└── NavigationBar.kt # Bottom navigation
web/promo/ # Download app web page
├── src/
│ ├── download_app.tsx
│ └── main.tsx
└── index.html
The app uses the TMDB API v3 with the following endpoints:
GET /movie/popular- Popular moviesGET /trending/movie/day- Trending moviesGET /search/movie- Search moviesGET /movie/now_playing- Now playing moviesGET /movie/top_rated- Top rated moviesGET /movie/{id}- Movie detailsGET /movie/{id}/similar- Similar moviesGET /movie/{id}/reviews- Movie reviewsGET /movie/{id}/videos- Movie trailers/videos
The app also integrates with:
- Firebase Authentication - User authentication and Google Sign-in
- Firebase Firestore - Cloud storage for user favorites
- IMGBB API - Profile image uploads
Ahmed Atef
You can find the full project here: 👉 https://github.com/DEPI-3-Android/Cinemeteor
This project is licensed under the MIT License.