Skip to content
CAI
Software that uses CAICheck a score

kanake10/Cocktails

59.5

Adequate · 20 September 2026

416

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 system is a Kotlin-based Android application designed to browse and display cocktail information using a multi-module MVVM architecture. It retrieves data from TheCocktailDB API via Retrofit, persists it locally with Room for offline access, and presents it through a UI featuring shimmer loading effects. The project also includes comprehensive tooling for code quality, automated builds, and continuous integration.

Features

Added license header templates for Kotlin and XML files

The project now includes standardized license header templates for Kotlin (.kt) and XML files, ensuring consistent attribution to the 2021/2022 author and compliance with the Apache License 2.0 across new source files.

spotless · high confidence

Added local caching for cocktail data using Room

Introduced a new local cache layer for cocktail information within the application. This change adds a Room database setup including the CockTailEntity, CockTailDao, and CockTailsDatabase, along with a Koin dependency injection module to provide the database and DAO instances. Users will benefit from offline access to cocktail details such as name and image, with data persisted locally using a REPLACE conflict strategy.

cache/src/main · high confidence

Added pre-commit and pre-push git hooks for Kotlin code quality

New git hooks have been introduced to enforce code quality standards on Kotlin files. The pre-commit hook automatically runs ktlint to format any staged Kotlin (.kt) or Kotlin Script (.kts) files and stages the results. The pre-push hook runs both ktlint and detekt static analysis checks before allowing a push, ensuring code consistency and detecting potential issues before integration.

git-hooks · high confidence

Added remote data layer for fetching and caching cocktail data

This change introduces the remote data module, providing the infrastructure to fetch cocktail information from a backend API and cache it locally. It includes the Retrofit API interface for retrieving cocktail lists, data transfer objects for parsing responses, and a repository implementation that handles the logic for checking local cache before falling back to the network. Additionally, it sets up Koin dependency injection for the API and repository components, along with mappers to convert between DTOs, domain models, and local database entities.

remote/src · high confidence

Initial core module scaffolding with networking constants and resource wrappers

The core module has been initialized with foundational components for the application. This includes a Resource wrapper class and Status enum to standardize API response handling (success, error, loading states), and a Constants object defining the base URL for TheCocktailDB API along with other configuration values. The module also includes standard Android project files (AndroidManifest) and basic unit and instrumentation tests.

core/src · high confidence

Initial domain layer scaffolding for cocktail retrieval

The domain module has been initialized with the core architecture required to fetch cocktail data. This includes a Drink model, a CockTailsRepository interface defining the data contract, and a GetCockTailsUseCase that wraps repository calls in a Flow. The module is wired into the application via a Koin dependency injection module, and basic unit and instrumentation tests have been added to verify the module's setup.

domain/src · high confidence

Initial fastlane automation setup for Android builds and Slack notifications

Added fastlane configuration files to automate the Android build process and team communication. The setup defines an 'android debug' lane that cleans the project and assembles a debug APK, while automatically posting a success message to Slack upon completion or an error message if the build fails. It also includes the Firebase App Distribution plugin for potential future distribution workflows.

fastlane · high confidence

Initial project setup with documentation, CI checks, and build configuration

This change establishes the foundational structure for the Cocktails mobile app. It adds a .gitignore to exclude IDE and build artifacts, a README.md detailing the Kotlin/MVVM architecture and dependencies, and an Apache 2.0 LICENSE. It also introduces a Dangerfile to enforce pull request standards (e.g., description requirements, code size limits) and includes a keystore.jks file containing placeholder configuration for app signing.

(repo-wide) · high confidence

Behavioural changes

Added build artifact exclusions and consumer rules to modules

Added .gitignore files to the cache, core, domain, presentation, and remote modules to exclude the /build directory, ensuring generated build artifacts are not tracked in version control. Additionally, empty consumer-rules.pro files were added to each of these modules, establishing placeholders for ProGuard/R8 consumer rules.

(repo-wide) · high confidence

Introduce shimmer loading effect for cocktail list

The Cocktails screen now displays a shimmer animation while data is being fetched, replacing the previous static loading state. This visual feedback is controlled by a 3-second delay before the shimmer starts, providing a smoother user experience during the initial load of cocktail items.

presentation/src · high confidence

Removal of the main action bar in the app theme

The application's base theme has been updated to use the NoActionBar variant of the Material Components theme. This change removes the default top action bar from the app's UI, which typically requires developers to implement a custom toolbar within fragments or activities to provide navigation and title display.

app/src · high confidence

Test coverage

Added Android instrumentation test for app context; Added unit tests for the cache module.

Dependencies

Added Gradle wrapper configuration for version 7.2

The project now includes a Gradle wrapper configuration file that specifies the use of Gradle version 7.2. This ensures that all developers and build environments use a consistent version of the Gradle build tool, eliminating potential discrepancies caused by different locally installed versions.

gradle · high confidence

Initial Android project setup with centralized dependency management and CI tooling

This change introduces the foundational build structure for the CockTails Android application, establishing a multi-module architecture (app, core, domain, remote, cache, presentation) with centralized dependency definitions in scripts/versions.gradle. It configures the project to use Android Gradle Plugin 7.1.3, Kotlin 1.6.20, and AndroidX libraries (compileSdk 32, minSdk 21). Key dependencies include Koin for dependency injection, Room for local caching, Retrofit for networking, Glide for image loading, and Jetpack Navigation. The build system also integrates code quality and formatting tools such as Spotless, ktlint, and Detekt, along with the Ben Manes Versions plugin for dependency updates. Additionally, it adds Ruby-based CI tooling via a new Gemfile including Fastlane and Danger, and configures Git hooks to enforce code quality on commit.

(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 59 → 60 (+0.9)
  • Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 100 → 89 (-11.3)
  • Maturity 55 → 55 (+0.0)
  • Readiness 44 → 50 (+5.7)
  • Security 70 → 84 (+14.3)
  • 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
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No exposed public API
  • Test reliability not included
  • The fastlane README is auto-generated and only states installation and action details without showing the full available actions or configuration. (fastlane/README.md)
  • dormant codebase — no living knowledge left to concentrate

New (23)

  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • High CVE: [GHSA redacted] (Gemfile.lock)
  • High CVE: [GHSA redacted] (Gemfile.lock)
  • High CVE: [GHSA redacted] (Gemfile.lock)
  • High CVE: [GHSA redacted] (Gemfile.lock)
  • High CVE: [GHSA redacted] (Gemfile.lock)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium CVE: [GHSA redacted] (Gemfile.lock)
  • Medium CVE: [GHSA redacted] (Gemfile.lock)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No ADRs found
  • …and 3 more

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

Survey your own repository

kanake10/Cocktails 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 647519c66b3a30d1f84d417180c5731edab88bd9 — 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.