Skip to content
CAI
Software that uses CAICheck a score

kursatkumsuz/movie

48.9

Weak · 22 September 2026

5.3k

lines of production code

Kotlin

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is an Android movie application that allows users to browse, search, and view detailed information about films and their cast. It features a modular architecture with distinct layers for UI, domain logic, and data persistence, utilizing Hilt for dependency injection. Key capabilities include user authentication via Firebase, a watchlist for saving favorites, profile management with image uploads, and offline caching for network requests.

Features

Add profile feature with image upload, sign-out, and settings list

The profile feature now allows users to upload and save a profile image, sign out of their account, and view a list of profile settings such as appearance, notifications, and privacy. The implementation includes the \ProfileScreen\ and \ProfileContent\ UI components, a \ProfileViewModel\ to manage state and use cases, and repository interfaces with Firebase-based implementations for image and authentication. A \ProfileList\ component renders the settings menu, and navigation is configured to route to the profile screen and handle sign-out navigation.

feature/profile · high confidence

Add signup feature with Firebase authentication and user storage

Introduced the complete signup feature, including a Compose-based UI (SignUpScreen, SignUpContent) and a Hilt-managed ViewModel (SignUpViewModel) that coordinates two domain use cases: signing up with email/password via Firebase Authentication and saving user details to Firestore. The implementation includes repository interfaces and Firebase-based implementations for authentication and storage, along with navigation routing to the signup screen.

feature/signup · high confidence

Added movie detail feature with UI, data, and domain layers

Introduced the 'detail' feature module, providing a complete implementation for viewing movie details. This includes data models for movie and cast information, a repository layer for fetching data from a remote API and saving to Firebase, domain use cases for retrieving movie details and cast lists, and a Compose-based UI that displays movie metadata, genres, and cast. The feature also supports saving movies to a watchlist and navigating to a video player.

feature/detail · high confidence

Added navigation and caching utilities

The app now includes a BottomNavItem data class to define bottom navigation items, a Constants object storing the base URL for the movie API, and a CacheInterceptor that applies a 30-minute cache-control header to network responses.

app/src/main/java/com/kursatkumsuz/movie/util · high confidence

Introduce bottom navigation and Hilt application entry point

The app now includes a bottom navigation bar in the main activity, allowing users to switch between Home, Watch List, Search, and Profile screens. This change introduces a new MovieApplication class for Hilt dependency injection and updates the main activity to use a Scaffold with a conditional BottomNavigationBar that appears on specific routes.

app/src/main/java/com/kursatkumsuz/movie · medium confidence

Architecture

Introduce modular architecture with new core, data, and feature modules

The application has been refactored into a modular structure, introducing new core modules (component, domain, ui, util) and feature modules (auth, home) to separate concerns. This change introduces a new bottom navigation bar for primary app sections, a comprehensive navigation graph for screen routing, and reusable UI components like AuthButton and AuthInputText. Additionally, domain models (User, WatchListMovie) and repository interfaces are defined in the core domain module, with corresponding implementations in the data module, establishing a clean architecture for the app's features.

(repo-wide) · high confidence

Behavioural changes

Centralized Android and Kotlin compiler version configuration

The build system now uses a centralized configuration object to define Android SDK versions (compileSdk 34, targetSdk 33, minSdk 28) and the Kotlin compiler extension version (1.2.0). This change standardizes these version numbers across the project, ensuring consistent build behavior and easier updates to these core dependencies.

buildSrc · high confidence

Introduces Hilt dependency injection modules for authentication, networking, repositories, and use cases

The app now uses Hilt to manage dependency injection across the codebase. New modules provide Firebase services (Auth, Firestore, Storage), configure the OkHttp/Retrofit network stack with caching, wire up all repository implementations (including the new MovieRepository), and bind all domain use cases (sign-up, splash, home, detail, profile, watchlist, and user cases) to their respective repositories. This enables the UI and business logic layers to receive these dependencies via injection rather than manual instantiation.

app/src/main/java/com/kursatkumsuz/movie/di · high confidence

Removed unused color definitions from the app theme

The file defining specific color constants (Purple, PurpleGrey, and Pink variants) has been removed from the UI theme package. This eliminates unused or obsolete color resources from the application's visual style.

app/src/main/java/com/kursatkumsuz/movie/ui · high confidence

Upgraded Gradle wrapper to version 8.2

The project's Gradle wrapper has been updated from version 7.5 to 8.2. This upgrade brings the latest Gradle release, which may include new features, performance improvements, and bug fixes for the build system.

gradle · high confidence

Dependencies

Migrate to multi-module architecture with centralized dependency management

The project has been refactored into a multi-module structure, introducing separate modules for core features (auth, home, detail, search, video, etc.) and shared core components. All build scripts now reference a centralized version catalog (gradle/libs.versions.toml) to manage library versions, and the app module aggregates dependencies from these new subprojects. Additionally, the Android Gradle Plugin was upgraded from version 7.4.2 to 8.1.2, and Hilt was added as a dependency injection framework across the modules.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 50 → 49 (-1.1)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 100 (+0.0)
  • Architecture 100 → 92 (-7.7)
  • Maturity 62 → 62 (+0.0)
  • Readiness 15 → 15 (+0.0)
  • Security 100 → 100 (+0.0)

Resolved (7)

  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (11 lines × 2) (core/component/src/main/java/com/kursatkumsuz/component/AuthInputText.kt)
  • Duplicated block (13 lines × 2) (feature/signin/src/main/java/com/kursatkumsuz/signin/presentation/SignInContent.kt)
  • Duplicated block (17 lines × 2) (feature/home/src/main/java/com/kursatkumsuz/home/presentation/component/MovieList.kt)
  • No exposed public API
  • early-stage repository — too few commits for a meaningful bus factor
  • early-stage repository — too little history to judge knowledge freshness

New (9)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (10 lines × 2) (feature/signin/src/main/java/com/kursatkumsuz/signin/presentation/SignInContent.kt)
  • Duplicated block (10–14 lines × 2) (feature/signin/src/main/java/com/kursatkumsuz/signin/presentation/SignInContent.kt)
  • Duplicated block (13–16 lines × 2) (feature/signin/src/main/java/com/kursatkumsuz/signin/presentation/SignInContent.kt)
  • Duplicated block (17 lines × 2) (core/component/src/main/java/com/kursatkumsuz/component/AuthInputText.kt)
  • Duplicated block (23–24 lines × 2) (feature/home/src/main/java/com/kursatkumsuz/home/presentation/component/MovieList.kt)
  • No ADRs found

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

kursatkumsuz/movie was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 1d07ba2a2739e2aed1f7cea2e8dba9c0c867283e — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-821afab8930d.