Skip to content
/ Novix Public
forked from Baghdad-Squad/Novix

A movie discovery app to explore, track, and stay updated with the latest films.

Notifications You must be signed in to change notification settings

Farah315/Novix

 
 

Repository files navigation

Novix



Dive into your favorite movies and let us suggest the most popular similar titles you’ll love. Save your personal list and enjoy a magical browsing experience with a stunning design!

Novix is a mix of two words: Nova – a star that suddenly increases in brightness Flix from "flicks" a casual term for movies and shows.

Dark Light

Setup

1. Clone Repository

git clone https://github.com/Baghdad-Squad/Novix
cd Novix

2. Add API Configuration

Get your API key from TMDb API, then create secrets.properties in root directory:

API_KEY="your_api_key_here"
BASE_URL="https://api.themoviedb.org/3/"
ACCESS_TOKEN="your_token_here"

3. Firebase Setup

  • Create project at Firebase Console with package name com.baghdad.novix.
  • Add google-services.json to app/ folder
  • Enable Analytics, Crashlytics, Performance

4. Build & Run

./gradlew build
./gradlew installDebug

Novix Overview

Architecture

by_component

Module Architecture Summary

Module Description
App Main application module that wires everything together with DI and app-level configs.
Design System Centralized UI foundation providing reusable components, themes and typography.
UI Contains Compose screens, navigation destinations.
ViewModel Manages presentation logic, UI state, and user interactions following the MVVM pattern.
Domain Core business logic with use cases and repository contracts.
Entity Pure data models (data classes, enums) that are framework independent.
Remote DataSource Handles network operations with API services, DTOs, Retrofit setup, and error handling.
Local DataSource Manages local persistence via Room database, DAOs, entities, and storage error handling.
Repository Implements repository pattern to unify local/remote sources.
Islamic Image Loader Specialized image loader with AI-powered sensitive content detection and smart blurring.

Technology Stack

Technology Description
Kotlin Primary programming language
Jetpack Compose Declarative Android UI framework
MVVM Presentation architecture pattern
Koin → Hilt & Dagger Migration to official DI solution
Navigation 2 Smooth and reliable screen navigation
Paging 3 Effortless list pagination
Coil Fast, lightweight image loading
Ktor → Retrofit & OKHttp Migration to stable networking stack
Room Local caching and storage
Datastore Local key-value storage
Firebase Crashlytics Real-time crash reporting
Firebase Analytics User behavior tracking
Firebase Performance App performance monitoring
Kotlinx Coroutines Asynchronous programming support
JUnit Unit testing framework
MockK Mocking library for Kotlin
Google Truth Fluent assertion framework
Turbine Testing Kotlin Flow emissions

Demo

Watch the Quick Tour on YouTube


Contributors

Special thanks to our mentors for the guidance and support throughout this journey:

About

A movie discovery app to explore, track, and stay updated with the latest films.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 100.0%