Discover, explore, and enjoy movies like never before. Novix helps you dive into your favorite movies and instantly discover similar, trending titles you’ll love. Save your personal watchlist, enjoy a stunning design, and browse with ease.
Novix was built with passion and dedication by the Sana’a Squad — a team brought together through the The Chance Mentorship program.
Over eight weeks, we combined hard work, creativity, and collaboration to bring this vision to life.
| Category | Features |
|---|---|
| Search | Find your favorite movies, TV shows, and actors |
| Movies | Explore filmography, photos, cast, and similar movies |
| TV Shows | Browse complete series info, photos, cast, and similar TV shows |
| Actors | View detailed biographies, complete filmographies, photos, and top movie and TV show highlights |
| Episode Tracking | Track seasons, mark watched episodes, and monitor progress |
| Watchlists | Create, organize, and share personalized watchlists |
| Languages | Multi-language support for the bot: English and Arabic |
| Themes | Switch between Light/Dark modes |
| Offline Mode | Access cached data for browsing without an internet connection |
| Content Safety | ML-powered moderation with parental controls for safe viewing |
Novix is available on both Android Mobile and Android TV. With the TV version, you can search, discover, and rate your favorite movies and TV shows directly from your TV.
The TV app is a lighter version of the mobile app, and some features (such as signup, password reset, or watchlist management) are not available.
Visually, the TV version follows Novix’s color scheme and text styles, but its UI components are built with Material TV Components to ensure smooth navigation and a seamless experience with the TV remote.
- Android Studio (latest stable version recommended)
- JDK 17 or higher
- Gradle: 8.10.1 (current tested version — update to the latest if required)
- TMDb Account
- Firebase Account (Optional)
TMDb (The Movie Database) is the service used to fetch movie and TV show data.
git clone https://github.com/SanaaTeam/Novix.gitAfter signing up for TMDb, retrieve your API key from TMDb API, Then, create a file named keys.properties in the project’s root directory
TMDB_API_KEY="your_api_key_here"- Create project at Firebase Console
- Add
google-services.jsontoapp/folder - Enable Analytics, Crashlytics, Performance
./gradlew build.
├── app # Mobile application entry point
├── tvapp # TV application entry point
├── buildConfig # Shared Gradle build configurations
├── imageViewer # Jetpack Compose image viewer component with sensitive-content filtering
├── data
│ ├── localDataSource # Local storage (Database, Datastore)
│ │ ├── identity # Local user profile & authentication data
│ │ └── vod # Local video-on-demand (VOD) storage
│ ├── remoteDataSource # Remote APIs and network calls
│ │ ├── identity # Remote user profile & authentication API
│ │ └── vod # Remote VOD data (e.g., from TMDB API)
│ └── repositories
│ ├── identity # Identity data repository
│ └── vod # VOD data repository
├── domain # Business logic & use cases
│ ├── identity # Authentication & user-related rules
│ └── vod # VOD-specific business rules
└── feature
├── authentication # Login, signup, session management
├── category # Content categories & browsing
├── home # Main dashboard landing screen
├── mediaDetails # Media details & metadata display
├── onboarding # First-time user flow
├── playlists # Playlist creation & management
├── search # Content search
└── userProfile # User profile & settings
- Language: Kotlin
- Architecture: Clean Architecture
- Dependency Injection: Dagger Hilt
- Database: Room
- Networking: Retrofit
- Async Operations: Kotlin coroutines
- Test: JUnit 5, Turbine, Kover, Truth
- Image Loading: Coil
- Navigation: Jetpack Navigation
- Bareq AlTahma – The chance instructor (@iBareq)
- Hamsa Ali – UI/UX designer (@Hamsa Ali)
- Falah Hasan – Mentor (@devfalah)
- Mohammed Sayed – Mentor (@mosayed01 )
- Ahmed Fikry – Mentor (@ahmedfikry24)
Copyright 2025 The Chance
Licensed under the Apache License, Version 1.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.




