Skip to content
CAI
Software that uses CAICheck a score

amirk3321/whatsApp_clone

53.5

Adequate · 21 September 2026

3.3k

lines of production code

Dart

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is a Flutter-based mobile application that facilitates one-to-one chat and phone-based authentication. It leverages the BLoC pattern for state management and utilizes Firebase for remote data sources, including Firestore for messaging and authentication services. The system integrates with device contacts and manages user sessions through a structured dependency injection container.

Features

Added phone authentication and chat data layer

Introduced a new data and domain layer to support phone-based authentication and one-to-one chat functionality. This includes the \FirebaseRemoteDataSource\ and its implementation for handling Firebase Auth operations (verify phone number, sign in/out, get current user ID) and Firestore interactions (creating chat channels, sending/retrieving messages, managing user and chat entities). The change also adds local data sources for retrieving device contacts and corresponding repository and use-case classes to facilitate the phone authentication flow and chat messaging features.

lib/domain · high confidence

Introduces BLoC-based state management and dependency injection for chat, authentication, and user features

The application now uses the BLoC pattern for state management, introducing dedicated Cubits for authentication (AuthCubit), phone verification (PhoneAuthCubit), communication (CommunicationCubit), and user management (UserCubit). These are wired via a new injection container (GetIt) that registers all use cases, repositories, and data sources. The UI layer is updated to consume these Cubits, enabling features like one-to-one chat, contact selection, and status display.

lib, lib/presentation · high confidence

Behavioural changes

Android app configures Firebase and updates Gradle build system

The Android module now includes a google-services.json file for Firebase integration, granting the app permissions to read and write contacts, and upgrades the Gradle wrapper from version 5.6.2 to 6.5.

android · high confidence

Test coverage

Removed obsolete Flutter widget test

The default Flutter counter widget test in test/widget\_test.dart has been removed. This eliminates a test that no longer reflects the application's current state, ensuring the test suite only covers active features.

test · high confidence

Dependencies

Updated Android build configuration and Dart dependencies

The Android build system was updated to use Gradle 4.1.0 and the Google Services plugin 4.3.3, with the latter applied to the app-level build.gradle. In the Dart/Flutter project, several dependencies were added or updated: get\_it (5.0.1), contacts\_service (0.4.6), font\_awesome\_flutter (8.8.1), and intl (0.16.0). Additionally, the pubspec.lock reflects various transitive dependency updates (e.g., async, collection, matcher, path, stack\_trace, test\_api) and the removal of unused packages like archive, args, convert, crypto, image, and petitparser.

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

Lenses

  • Code Health 100 → 99 (-1.5)
  • Architecture 100 → 94 (-6.5)
  • Maturity 54 → 59 (+4.7)
  • Readiness 24 → 24 (+0.0)
  • Security 96 → 100 (+3.5)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (11)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Medium CVE: [GHSA redacted] (pubspec.lock)
  • No exposed public API
  • Rotate the exposed credentials — git history can't be un-committed
  • Secret: generic-api-key (android/app/google-services.json)
  • Test reliability not included
  • complexity unreadable for .dart, .kt, .swift — churn × complexity hotspots could not be measured
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • single-maintainer — knowledge-concentration (bus factor) risk

New (14)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no project overview (README.md)
  • Duplicated block (14 lines × 2) (lib/presentation/bloc/auth/auth_state.dart)
  • Duplicated block (17 lines × 2) (lib/main.dart)
  • Duplicated block (25–26 lines × 3) (lib/presentation/pages/sub_pages/singe_item_story_page.dart)
  • Duplicated block (28 lines × 2) (lib/presentation/pages/phone_varification_page.dart)
  • Medium CVE: [GHSA redacted] (pubspec.lock)
  • No ADRs found
  • TodoComment (lib/domain/entities/my_chat_entity.dart)
  • TodoComment (lib/domain/entities/text_message_entity.dart)
  • TodoComment (lib/domain/entities/user_entity.dart)
  • TodoComment (lib/presentation/screens/home_screen.dart)
  • TodoComment (lib/presentation/screens/home_screen.dart)

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

Survey your own repository

amirk3321/whatsApp_clone 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 cd8b2f6e2adf623cd4e8dee9c6a97a6da6046607 — 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.