Skip to content
CAI
Software that uses CAICheck a score

Aditprayogo/GithubUsers

60.8

Adequate · 21 September 2026

2.1k

lines of production code

Kotlin

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is an Android application that allows users to view detailed profiles, including follower counts and public repositories, with the ability to save favorite users. The system is structured with a core data layer for managing user information and a dedicated module for handling favorites, supported by a modernized build configuration using Java 17 and updated Gradle dependencies.

Features

Added a dedicated Favorite module to display and manage user favorites

Users can now view a list of their favorite users in a dedicated screen. This change introduces a new 'favorite' module containing the FavoriteUserActivity, which displays a RecyclerView of favorite users with details like username, location, and follower counts. The module includes its own ViewModel, Dagger/Hilt dependency injection setup, and layout resources. Additionally, unit tests for the UserDetailViewModel and LiveData utilities were added to support the new feature.

favorite · high confidence

Adds user profile detail view with follower/following lists and in-app reminders

The app now includes a detailed user profile screen that displays a user's bio, follower count, following count, and public repositories. Users can view their followers and following in separate tabs, with each item linking to that user's profile. The profile screen also allows users to save users to a local favorites list. Additionally, a new settings screen lets users toggle daily in-app notifications via a background alarm receiver.

app/src · high confidence

Introduces core module with user data layer and repository implementation

The core module now provides a complete data layer for user information, including a Room database to store favorite users and a repository implementation that fetches user details, search results, and follower/following lists from the API. This is supported by domain models, data models, and a data mapper to convert between network responses, database entities, and domain objects. Additionally, the module includes utility classes for network configuration, state management, and view helpers.

core/src · high confidence

Behavioural changes

Added ProGuard configuration for core module

The core module now includes ProGuard rules to preserve classes and methods required by external libraries. Specifically, it adds configurations for SQLCipher (net.sqlcipher), Gson, Retrofit, and Glide, ensuring that reflection, serialization, and interface implementations are not stripped or obfuscated during the build process.

core · high confidence

Upgrade Gradle wrapper to version 8.0

The Gradle wrapper has been updated from version 6.1.1 to 8.0. This change ensures that the project uses the specified Gradle distribution, which may include new features, performance improvements, and compatibility updates for the build system.

gradle · high confidence

Dependencies

Migrate to Android Gradle Plugin 8.1.0 and Java 17

The project has been upgraded to Android Gradle Plugin 8.1.0 and Java 17, requiring a corresponding update to the Gradle wrapper and build configuration. This change also introduces a new 'core' module and a 'favorite' dynamic feature module, while centralizing dependency versions in a shared Gradle file.

(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 64 → 61 (-3.4)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 99 (+0.2)
  • Architecture 100 → 89 (-10.7)
  • Maturity 53 → 53 (+0.0)
  • Readiness 57 → 57 (+0.0)
  • Security 80 → 80 (+0.0)
  • Domain Modelling 100 → 70 (-30.3)

Resolved (12)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (11 lines × 2) (core/src/main/java/com/aditprayogo/core/utils/DataMapper.kt)
  • Duplicated block (11 lines × 2) (core/src/main/java/com/aditprayogo/core/utils/DataMapper.kt)
  • Duplicated block (13 lines × 2) (app/src/main/java/com/aditPrayogo/githubusers/ui/following/FollowingAdapter.kt)
  • No exposed public API
  • Secret: github-pat (app/build.gradle)
  • Secret: github-pat (app/build.gradle)
  • Secret: github-pat (core/build.gradle)
  • Secret: github-pat (core/build.gradle)
  • Test reliability not included
  • dormant codebase — no living knowledge left to concentrate

New (14)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (11 lines × 2) (core/src/main/java/com/aditprayogo/core/utils/DataMapper.kt)
  • Duplicated block (13 lines × 2) (app/src/main/java/com/aditPrayogo/githubusers/ui/follower/FollowerFragment.kt)
  • Duplicated block (13 lines × 2) (core/src/main/java/com/aditprayogo/core/utils/DataMapper.kt)
  • Duplicated block (14 lines × 2) (app/src/main/java/com/aditPrayogo/githubusers/ui/following/FollowingAdapter.kt)
  • No ADRs found
  • No dependency advisory monitoring
  • Secret: github-pat (app/build.gradle)
  • Secret: github-pat (app/build.gradle)
  • Secret: github-pat (core/build.gradle)
  • Secret: github-pat (core/build.gradle)

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

Survey your own repository

Aditprayogo/GithubUsers 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 5779ae66c225829eeaa3bb25a60e00f7b4322fb3 — 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.