Skip to content
CAI
Software that uses CAICheck a score

vipulshah2010/FoodApp

57.4

Adequate · 21 September 2026

1.4k

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 an Android application for browsing and viewing food items, built with a clean architecture using MVVM, Hilt, and Coroutines. It manages data through a repository layer that combines local Room caching with remote API fetching, exposing business logic via domain use cases. The app features a navigation-driven UI with splash, list, and detail screens, supported by comprehensive unit and integration testing infrastructure.

Features

Added domain layer with FoodUsecase and test infrastructure

Introduced the domain layer containing the \FoodUsecase\ class, which delegates to the \FoodRepository\ to retrieve food items. This change adds the business logic layer and includes comprehensive unit tests for the use case, supported by new test utilities for coroutine dispatchers and task executors.

domain · high confidence

Centralized build configuration and dependency management via buildSrc

The project has migrated to using a buildSrc directory to centralize Gradle build logic and dependency definitions. This introduces a new FoodAppPlugin that configures Android build settings (SDK 29, Java 8), applies standard plugins (Kotlin, Hilt, Navigation), and manages a comprehensive set of dependencies including AndroidX, Hilt, Room, Retrofit, Coil, and testing libraries (Espresso, JUnit 5, Truth, Turbine). The setup also integrates JaCoCo for code coverage reporting to SonarQube.

buildSrc · high confidence

Initial app UI and architecture setup

The app now includes a complete initial UI structure with navigation, including a splash screen, a main activity, and fragments for listing and detail views. The architecture is established with Hilt for dependency injection, a base fragment implementation, and view models for state management. Error handling is implemented with specific UI states for connection, timeout, and generic errors. The UI also features image loading via Coil, shared element transitions, and custom animations for the splash and list views.

app/src · high confidence

Initial project structure and documentation

The repository is initialized with a comprehensive README.md file that outlines the FoodApp project, including its MVVM architecture, technology stack (Kotlin, Coroutines, Hilt, Jetpack components, Retrofit, Coil, and Material Components), and instructions for running JaCoCo and SonarQube code coverage reports. Additionally, the project includes standard Gradle wrapper scripts (gradlew, gradlew.bat) for build automation, and a .gitignore file updated to exclude SonarQube-specific IDE files.

(repo-wide) · high confidence

Introduced local caching and repository logic for food items

The data layer now implements a repository pattern for food items, combining local Room database storage with remote API fetching. The \FoodRepositoryImpl\ checks the local cache first, fetching from the network only if the cache is empty or explicitly forced, and then updates the local database. This is supported by new \LocalDataStore\ and \CloudDataStore\ interfaces and implementations, along with Hilt dependency injection modules for the database, REST client, and repository bindings. Additionally, unit tests for the repository logic have been added using MockK and Turbine.

data · high confidence

Dependencies

Upgraded Gradle wrapper to version 6.1.1

The project now uses Gradle 6.1.1 via the wrapper, ensuring consistent build environments across development and CI systems.

gradle · 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 55 → 57 (+2.7)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 100 → 86 (-14.2)
  • Maturity 75 → 75 (+0.0)
  • Readiness 52 → 52 (+0.0)
  • Security 85 → 95 (+9.7)
  • Domain Modelling 38 → 45 (+6.3)

Resolved (8)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No exposed public API
  • Test reliability not included
  • early-stage repository — too little history to judge knowledge freshness
  • single-maintainer — knowledge-concentration (bus factor) risk

New (9)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no usage examples (README.md)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No ADRs found
  • No dependency advisory monitoring
  • Workflow token permissions not restricted

Architecture

  • Containers 0 added · 0 removed · contexts 2 added · 1 removed · edges 1 added · 0 removed

Added bounded contexts (2)

  • app
  • data

Removed bounded contexts (1)

  • domain

Added dependency edges (1)

  • app → data (coupling)

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

Survey your own repository

vipulshah2010/FoodApp 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 c8a45b033a0da192c26397f8af241ac1d257d9bf — 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.