shamim-emon/Movies
50.5
Adequate · 21 September 2026
3.8k
lines of production code
Kotlin
primary language
4
measurements over time
What this system is
This system is an Android movie application built on a clean architecture, separating concerns into presentation, domain, and data layers. It provides functionality for discovering, searching, and caching movie data via REST APIs and local storage, while managing user preferences and favorites. The application utilizes modern Android libraries for navigation, dependency injection, and asynchronous processing.
Features
Domain layer modularized with new repository and use-case architecture
The domain module has been restructured to support a modular architecture, introducing a new set of repository interfaces (MovieCacheRepository, MovieDbRepository, MovieRestRepository) and corresponding use cases (e.g., GetDiscoverMoviesUseCase, GetMovieDetailsUseCase) that handle business logic for movie data. This change adds new data models for movie details, search results, and trending movies, alongside a new test suite for the domain layer.
domain · high confidence
Initial project setup with Android build tools and community guidelines
The repository has been initialized with essential project scaffolding. This includes a .gitignore file for build artifacts, a pre-commit hook that runs Ktlint static analysis, and Gradle wrapper scripts (gradlew/gradlew.bat) to manage the build environment. Additionally, the project now includes a Code of Conduct, a Contributing guide, and an updated README detailing the Android tech stack (Hilt, RxJava3, Jetpack, etc.) and architecture.
(repo-wide) · high confidence
Introduce presentation layer with navigation, UI components, and dependency injection
The presentation module now contains the complete UI layer for the movie app, including the main entry points (MainActivity, MovieDetailsActivity) and core fragments (Home, Favourite, Search, Trending). This change introduces the navigation infrastructure via ScreensNavigator and NavDirectionLabel, along with shared UI components like ViewLoader, NoContentView, and NoInternetView for handling loading and error states. The module also establishes the Hilt dependency injection setup through ActivityModule, FragmentModule, and other DI modules to wire up the presentation layer's dependencies.
presentation · high confidence
New data layer implementation for movie discovery, search, and caching
The data module now provides the complete implementation for fetching and caching movie data. This includes REST API integration via Retrofit for retrieving trending, search, and discover movie lists, as well as local caching using Android DataStore for user preferences. The implementation also introduces a Room database layer for persisting favorite movies and utilizes RxJava for asynchronous execution. Additionally, data mappers are provided to transform API responses into domain entities, and the module includes a comprehensive suite of unit tests for the repository and mapper components.
data · high confidence
Dependencies
Added Gradle wrapper configuration
The project now includes a Gradle wrapper configuration file (gradle-wrapper.properties) that specifies the Gradle distribution URL (version 7.4) and storage paths, ensuring consistent build environment setup.
gradle · high confidence
Initial project structure and dependency configuration
The project has been initialized with a multi-module Android architecture (presentation, domain, data) using Kotlin DSL for Gradle build scripts. This introduces a suite of dependencies including AndroidX (DataStore, Room, Navigation, Lifecycle), Google libraries (Dagger Hilt, Glide, Material), and testing frameworks (JUnit, Mockito, Espresso). The configuration also sets up the build environment with specific Java and Kotlin compiler options.
(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 55 → 51 (-4.1)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (-0.1)
- Architecture 100 → 93 (-6.5)
- Maturity 59 → 59 (+0.0)
- Readiness 24 → 24 (+0.0)
- Security 100 → 100 (+0.0)
- Domain Modelling 100 → 74 (-25.6)
Resolved (5)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- No exposed public API
- Test reliability not included
- dormant codebase — no living knowledge left to concentrate
New (5)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no architecture or design documentation (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (15 lines × 3) (data/src/main/kotlin/bd/emon/data/dataMapper/DiscoverMovieMapper.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
shamim-emon/Movies 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 21 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 e0952ce222ddfc56dbc5eead44af2a1c49c61163 — 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-fa71c66cabd8.