Adithya-13/MadeSubmsission
60.0
Adequate · 20 September 2026
1.7k
lines of production code
Kotlin
primary language
4
measurements over time
What this system is
This system is an Android application for browsing and managing movies and TV shows, featuring local and remote search capabilities with debounced input. It maintains a unified favorites list with swipe-to-remove functionality and employs robust security measures, including database encryption via SQLCipher and API certificate pinning. The architecture prioritizes performance through DiffUtil-based list updates and ensures stability with ProGuard rules and dependency management.
Features
Add search functionality to Movies and TV Shows lists
Users can now search for movies and TV shows directly from the respective list screens. This change introduces a \SearchViewModel\ that debounces and filters user input to fetch results, and updates the \MoviesFragment\ and \TvShowsFragment\ to integrate a \MaterialSearchView\. When a user types a query, the lists update to show matching items; closing the search view restores the original sorted list. The implementation also includes a Lottie animation for empty states and cleans up the UI by removing the previous Floating Action Button (FAB) sort menu in favor of this search capability.
app/src · high confidence
Added search capabilities for movies and TV shows
The domain layer now supports searching for movies and TV shows. New methods \getSearchMovies\ and \getSearchTvShows\ have been added to the \IMovieAppRepository\ interface, the \MovieAppUseCase\ interface, and the \MovieAppInteractor\ implementation, enabling users to retrieve search results for both content types. Additionally, the \Movie\ model's import statement was updated to use the modern \kotlinx.parcelize.Parcelize\ annotation, and the \MovieAppInteractor\ was refactored to use concise function bodies.
core/src/main/java/com/extcode/project/core/domain · high confidence
Security
Database encryption and API certificate pinning enabled
The local database is now encrypted using SQLCipher, requiring a passphrase to access the data, and the network client enforces certificate pinning for the API host to prevent man-in-the-middle attacks.
core/src/main/java/com/extcode/project/core/di · high confidence
Behavioural changes
Added ProGuard rules for core libraries
The core module now includes a consumer-rules.pro file that preserves necessary classes and annotations for SQLCipher, Gson, Retrofit, and Glide. This ensures that obfuscation and shrinking tools do not remove critical reflection-based functionality required by these dependencies, preventing runtime crashes related to serialization, network calls, and image loading.
core · high confidence
Added local search capability and secured API key
Users can now search for movies and TV shows directly from the local database, with the new search queries executed on a background thread to prevent UI blocking. Additionally, the hardcoded API key in the remote data source has been removed to prevent accidental exposure, requiring a valid key to be configured for remote data fetching.
core/src/main/java/com/extcode/project/core/data · high confidence
Optimized list updates in MoviesAdapter using DiffUtil
The MoviesAdapter now uses a new DiffUtils utility to calculate differences between old and new movie lists, replacing the previous notifyDataSetChanged() call with granular diff updates. This change improves UI performance by animating only the specific items that have changed, rather than refreshing the entire list. Additionally, unused network and main thread executor methods in AppExecutors have been commented out to clean up the codebase.
core/src/main/java/com/extcode/project/core/utils · high confidence
Unified favorite list with swipe-to-remove and improved UI states
The separate fragments for favorite movies and TV shows have been merged into a single \FavoriteMoviesFragment\ that handles both types based on a boolean flag, simplifying the navigation structure. The swipe-to-delete functionality has been extracted into a reusable \ItemSwipeHelper\ utility, and the UI now uses a \DataState\ system to properly display loading, success, and error (no data) states, including a Lottie animation for empty lists. Additionally, sorting buttons now close the floating action button menu upon selection, and null-safety has been improved throughout the fragment bindings.
favorite/src/main/java · high confidence
Dependencies
Dependency upgrades and build configuration updates
This update upgrades Kotlin to version 1.4.21 and refreshes several libraries including JUnit (4.13.1), Espresso (3.3.0), Coroutines (1.4.2), and Play Core (1.9.0). It introduces new dependencies for Material Search View, Lottie animations, Ken Burns effect, and Shimmer loading states, while adding SQLCipher and SQLite KTX for database encryption. Build configurations now enable minification in release builds, add multiDex support, and include Leak Canary for debug memory leak detection.
(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
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 64 → 60 (-4.5)
- Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 98 → 98 (+0.1)
- Architecture 100 → 88 (-12.1)
- Maturity 49 → 49 (+0.0)
- Readiness 57 → 57 (+0.0)
- Security 95 → 97 (+1.7)
- Domain Modelling 100 → 70 (-30.3)
Resolved (12)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (10 lines × 3) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Duplicated block (12 lines × 2) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Duplicated block (14 lines × 3) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Duplicated block (16–17 lines × 4) (core/src/main/java/com/extcode/project/core/utils/SortUtils.kt)
- Duplicated block (7 lines × 2) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Medium: security finding (details withheld)
- No exposed public API
- Scanner failed to run — not a clean result
- Test reliability not included
- single-maintainer — knowledge-concentration (bus factor) risk
New (17)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 3) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Duplicated block (12 lines × 2) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Duplicated block (13 lines × 2) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Duplicated block (16 lines × 4) (core/src/main/java/com/extcode/project/core/utils/SortUtils.kt)
- Duplicated block (18 lines × 3) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Duplicated block (23 lines × 3) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Duplicated block (5 lines × 2) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Duplicated block (6 lines × 2) (app/src/main/java/com/extcode/project/madesubmission/movies/MoviesFragment.kt)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (core/src/main/java/com/extcode/project/core/utils/SortUtils.kt)
- No ADRs found
- No dependency advisory monitoring
- Scanner failed to run — not a clean result
- Scanner failed to run — not a clean result
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Adithya-13/MadeSubmsission 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 20 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 1ba47f421412f6a26cf31c6b60b88feb883fe38b — 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-28e75b8e3254.