Skip to content

SanaaTeam/Novix

Repository files navigation

Novix

About the project

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.

Youtube teaser

Novix As Brand

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.

Novix Brand Identity

Branded Image

Features

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

TV App Version

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.

Tv App

Setup

Requirements:

  • 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.

1. Clone the repository

git clone https://github.com/SanaaTeam/Novix.git

2. Add API Configuration

After 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"

3. Firebase Setup (Optional)

  • Create project at Firebase Console
  • Add google-services.json to app/ folder
  • Enable Analytics, Crashlytics, Performance

4. Build & Run

./gradlew build

Architecture

.
├── 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

Novix Modules

Technologies Used

  • 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

Contractors

Contributors

License:

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Contributors 15

Languages