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 |
|---|---|
|
|
git clone https://github.com/Baghdad-Squad/Novix
cd NovixGet 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"- Create project at Firebase Console with package name
com.baghdad.novix. - Add
google-services.jsontoapp/folder - Enable Analytics, Crashlytics, Performance
./gradlew build
./gradlew installDebug
| 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 | 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 |
Special thanks to our mentors for the guidance and support throughout this journey:


