Skip to content
CAI
Software that uses CAICheck a score

waseemabbas8/libroom-android

54.7

Adequate · 21 September 2026

4.5k

lines of production code

Kotlin

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add bottom navigation bar to the main screen

The app now features a bottom navigation bar on the main screen, allowing users to switch between Home, Search, Favorites, and Profile sections. This new UI component provides persistent access to the primary areas of the application.

app/src/main/java/com/waseem/libroom/feature/root · high confidence

Implement MVI architecture for the home screen

The home screen now uses a Model-View-Intent (MVI) architecture, introducing new presentation classes (HomeContract, HomeViewModel, HomeScreen) to manage state and actions. This change introduces a new 'Continue Reading' section and a 'Recommended' section (previously 'Recent Reads') on the home page, allowing users to view popular and recently read books.

app/src/main/java/com/waseem/libroom/feature/home/presentation · high confidence

Introduce book reader screen with chapter display and bottom controls

A new BookReaderScreen composable has been added to the app, providing a dedicated UI for reading books. The screen features a header toolbar with a bookmark action, a scrollable chapter body displaying text and images, a linear progress indicator, and a bottom bar with icons for headphones, light mode, text formatting, and page/progress status.

app/src/main/java/com/waseem/libroom/feature/reader · high confidence

Introduces MVI architecture and core UI components for the app shell

The app shell now uses a Model-View-Intent (MVI) architecture, introduced via the new \BaseStateViewModel\ and \MviContract\ interfaces in the core package. This enables state-driven UI updates for the main \MainActivity\, which now routes between onboarding, login, and the main \MainScreen\ based on the user's authentication state. Additionally, a suite of reusable Compose UI components has been added to the \core.compose\ package, including buttons, cards, chips, icons, and text fields, establishing a consistent visual style for the application.

app/src · high confidence

New search screen with top authors and categories

The app now includes a dedicated search screen that displays a list of top authors and top categories. The implementation introduces a new MVI (Model-View-Intent) architecture for the search feature, including a SearchViewModel, SearchReducer, and UI components that render author and category data in a grid layout.

app/src/main/java/com/waseem/libroom/feature/search · high confidence

Behavioural changes

Introduce MVI architecture for author and category features

The app now uses a Model-View-Intent (MVI) architecture for the author and category features. This introduces domain models (Author, BookCategory) and repository interfaces (AuthorRepository, CategoryRepository) with concrete implementations that return data wrapped in Kotlin's Result type. Use cases (GetTopAuthors, GetTopCategories) handle the asynchronous execution, and presentation layer UI states (AuthorUiState, CategoryUiState) are defined to map domain data for the UI.

app/src/main/java/com/waseem/libroom/feature/author, app/src/main/java/com/waseem/libroom/feature/category · high confidence

Updated Gradle wrapper to version 8.2

The project's Gradle wrapper has been updated to use Gradle 8.2 (via the new gradle-wrapper.properties file), ensuring the build uses a specific, modern version of the Gradle build tool.

gradle · high confidence

Updated README with project overview, setup instructions, and architecture details

The README.md file has been significantly expanded to provide a comprehensive overview of the Libroom Android application. It now includes a featured banner image, a description of the app's purpose (exploring literature with reading and listening experiences), and a table of screenshots for search, onboarding, and reader features. The file also details the tech stack (Kotlin, Jetpack Compose, Hilt, Ktor, etc.), provides specific instructions for cloning the repository and logging in with test credentials, and links to a Medium series about the app's development using Clean Architecture, MVI, and MVVM patterns.

(repo-wide) · high confidence

Dependencies

Initial Android project configuration and dependency setup

The project is configured with Android Gradle Plugin 8.2.0 and Kotlin 1.8.20, enabling AndroidX and Compose support. Key dependencies are added for Hilt (2.48.1), Firebase Authentication (BOM 32.6.0), Coil (2.4.0), and Jetpack Compose (1.6.0-alpha05).

(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 54 → 55 (+0.5)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 99 (-0.4)
  • Architecture 100 → 96 (-3.7)
  • Maturity 62 → 62 (+0.0)
  • Readiness 24 → 24 (+0.0)
  • Security 92 → 100 (+7.5)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (13)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (16 lines × 2) (app/src/main/java/com/waseem/libroom/feature/book/data/BookRepositoryImpl.kt)
  • Duplicated block (16 lines × 2) (app/src/main/java/com/waseem/libroom/feature/category/data/CategoryRepositoryImpl.kt)
  • Duplicated block (16 lines × 3) (app/src/main/java/com/waseem/libroom/feature/book/data/BookRepositoryImpl.kt)
  • Medium: security finding (details withheld)
  • No exposed public API
  • Rotate the exposed credentials — git history can't be un-committed
  • Secret: gcp-api-key (app/google-services.json)
  • Test reliability not included
  • The Getting Started section is a one-line build snippet with hardcoded credentials ('Email: [e-mail redacted] Password: 123456') that the reader cannot run without copying and pasting, which is insecure for an open repo. (README.md)
  • 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 installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (14 lines × 2) (app/src/main/java/com/waseem/libroom/feature/book/data/BookRepositoryImpl.kt)
  • TodoComment (app/src/main/java/com/waseem/libroom/feature/author/presentation/AuthorUiState.kt)
  • TodoComment (app/src/main/java/com/waseem/libroom/feature/home/presentation/OverViewPage.kt)
  • TodoComment (app/src/main/java/com/waseem/libroom/feature/home/presentation/OverViewPage.kt)
  • TodoComment (app/src/main/java/com/waseem/libroom/feature/search/presentation/SearchScreen.kt)
  • TodoComment (app/src/main/java/com/waseem/libroom/feature/search/presentation/SearchScreen.kt)

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

Survey your own repository

waseemabbas8/libroom-android 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 05a3d2c2ad75249ef63ef1b14912d477002e843e — 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.