Skip to content
CAI
Software that uses CAICheck a score

T8RIN/CookHelper

41.8

Weak · 22 September 2026

22.8k

lines of production code

Kotlin

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a mobile application platform for managing a digital kitchen and social network. It enables users to track fridge inventory, discover recipes based on available ingredients, and engage in real-time chat and forum discussions. The architecture supports user authentication, local data persistence, and dynamic theming, replacing previous recipe and product management features with a focus on social interaction and personalized content feeds.

Features

Added ChatApi interface for retrieving chat data

Introduced the ChatApi interface to handle remote chat operations, specifically adding methods to fetch a single chat by ID and retrieve a list of chats. This new API layer enables the application to fetch chat data from the backend, supporting the chat functionality within the app.

app/src/main/java/ru/tech/cookhelper/data/remote/api/chat · high confidence

Added CreatePostUseCase to handle post creation logic

A new CreatePostUseCase class has been introduced in the domain layer to encapsulate the logic for creating a new post. This use case accepts post details such as token, label, content, image file, and type, and delegates the actual creation to the UserRepository. This change provides a dedicated domain object to manage post creation workflows within the application.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/create\post · high confidence

Added CreateTopicUseCase for topic creation

A new domain use case, CreateTopicUseCase, has been added to handle the logic for creating a new topic. This use case accepts a token, title, text, attachments, and tags, and delegates the actual creation to the UserRepository.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/create\topic · high confidence

Added GetChatListUseCase to retrieve chat list

A new domain use case, GetChatListUseCase, has been introduced to handle the retrieval of the chat list. This component wraps the MessageRepository to fetch chat data using a provided token, making the chat list retrieval logic available for use in the application's presentation layer.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/get\_chat\list · high confidence

Added GetChatUseCase for retrieving chat messages

A new use case, GetChatUseCase, has been added to the application's domain layer. This component wraps the MessageRepository to retrieve chat data by chat ID and authentication token, exposing the result as a Kotlin Flow of Action\<Chat\>.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/get\_all\messages · high confidence

Added Kotlin utility functions for exception handling and IO execution

A new Kotlin utility file, KotlinUtils.kt, was added to the core utils package. This introduces helper functions for safer exception handling (applyCatching, getOrExceptionAndNull) and background execution (runIo), along with a string capitalization utility (cptlize).

app/src/main/java/ru/tech/cookhelper/core/utils/kotlin · medium confidence

Added LoginUseCase for user authentication

A new LoginUseCase class has been introduced in the domain layer to handle user login. This class depends on UserRepository and exposes an invoke method that delegates login credentials to the repository's loginWith method, effectively encapsulating the login logic within a use-case pattern.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/log\in · high confidence

Added MessageService for WebSocket-based chat messaging

A new MessageService interface and its implementation (MessageServiceImpl) have been added to handle real-time chat messaging over WebSocket. The service connects to a chat endpoint using a provided token and chat ID, streaming incoming MessageDto objects as WebSocketState events, and provides methods to send and close the connection.

_app/src/main/java/ru/tech/cookhelper/data/remote/web\socket/message · high confidence

Added RequestCodeUseCase for account verification

A new domain use case, RequestCodeUseCase, has been introduced to handle the process of requesting a verification code. This component wraps the UserRepository's requestCode method, providing a clean interface for initiating account verification flows.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/request\code · high confidence

Added StopAwaitingMessages use case

A new domain use case, StopAwaitingMessages, has been introduced to handle the logic for stopping message waiting states. This change encapsulates the interaction with the MessageRepository, providing a clean, single-responsibility component for this specific domain action.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/stop\_awaiting\messages · high confidence

Added WebSocket client implementation for real-time communication

Introduced a new \WebSocketClient\ class that manages the lifecycle of a WebSocket connection, including opening, closing, and automatic restarting on failure. The implementation exposes connection states (Opening, Opened, Message, Error, Closing, Closed) via a Flow, allowing the app to react to real-time updates and connection status changes.

_app/src/main/java/ru/tech/cookhelper/data/remote/web\socket · high confidence

Added chat message handling capabilities

The application now includes new domain use cases for managing chat interactions. Users can now receive new messages via the AwaitNewMessagesUseCase, which subscribes to message updates for a specific chat, and send messages via the SendMessagesUseCase, which handles the transmission of new message forms. These additions support the underlying chat functionality.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/await\_new\_messages, app/src/main/java/ru/tech/cookhelper/domain/use\_case/send\message · high confidence

Added domain models for chat, forum, and recipe features

Introduced new domain model classes to support upcoming chat, forum, and recipe matching features. The update adds data classes for Chat, Message, Post, Reply, Topic, and User, along with supporting models like FileData, FormMessage, and MatchedRecipe. These models implement the Domain interface, providing a structured way to handle data for messaging, social interactions, and recipe discovery.

app/src/main/java/ru/tech/cookhelper/domain/model · high confidence

Added domain use cases for feed and user loading

Added three new domain use cases: GetFeedUseCase to retrieve the feed via the UserRepository, LoadUserByIdUseCase to load a user by their ID, and StopAwaitingFeedUseCase to stop awaiting the feed. These additions expand the domain layer's capabilities for managing feed state and user data.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/get\_feed, app/src/main/java/ru/tech/cookhelper/domain/use\_case/load\_user, app/src/main/java/ru/tech/cookhelper/domain/use\_case/stop\_awaiting\feed · high confidence

Added dynamic theme support with color scheme customization

The dynamic\_theme module was introduced, providing a new way to dynamically change the application's color scheme. This includes a \DynamicTheme\ composable that applies a \ColorScheme\ based on a primary color, supporting both light and dark modes. Users can now update the theme's primary color programmatically or by extracting colors from an image, allowing for more flexible and dynamic UI theming.

_dynamic\theme · high confidence

Added feed WebSocket service interface and implementation

Introduced a new FeedService interface and its FeedServiceImpl class to handle real-time updates for the feed. The service manages WebSocket connections for receiving RecipeDto objects, providing a structured way to connect, send messages, and close the connection.

_app/src/main/java/ru/tech/cookhelper/data/remote/web\socket/feed · high confidence

Added local database schema and type converters

Introduced the core Room database class and type converters to support local storage of user and settings entities. The new Database class defines the schema for SettingsEntity and UserEntity, while the TypeConverters handle serialization of complex types like lists of FileData and Product objects, enabling the app to persist and retrieve structured data locally.

app/src/main/java/ru/tech/cookhelper/data/local/database · high confidence

Added login and email availability checks

Users can now verify if a desired login or email address is available for registration. This change introduces two new domain use cases, CheckLoginForAvailabilityUseCase and CheckEmailForAvailabilityUseCase, which delegate to the UserRepository to check availability for the respective fields.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/check\login · high confidence

Added logout functionality

A new LogoutUseCase has been introduced in the domain layer to handle user logout. This use case encapsulates the logic for logging out by invoking the userRepository.logOut() method, providing a dedicated mechanism for users to end their session.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/log\out · high confidence

Added password restore use cases

Introduced two new domain use cases for password recovery: SendRestoreCodeUseCase, which requests a verification code for a given login, and ApplyPasswordByCodeUseCase, which applies a new password using the login, code, and the new password. These classes delegate to the UserRepository to handle the underlying restore password logic.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/restore\password · high confidence

Added registration and code-checking use cases

The app now includes domain use cases for user registration and code verification. RegistrationUseCase handles the registration flow by accepting user details (name, surname, nickname, email, and password) and returning a Flow of Action\<User\>. Additionally, CheckCodeUseCase was introduced to verify a code using a token, delegating to the UserRepository.

_app/src/main/java/ru/tech/cookhelper/domain/use\case/registration · medium confidence

Added remote data transfer objects for chat, recipes, and forum features

Introduced new data transfer objects (DTOs) to support chat, recipe matching, and forum discussions. Added ChatDto, MessageDto, PostDto, TopicDto, MatchedRecipeDto, ProductDto, RecipeDto, and UserDto, each implementing the Dto interface with an asDomain() method to map remote data to domain models.

app/src/main/java/ru/tech/cookhelper/data/remote/dto · high confidence

Added use case for removing products from the fridge

A new domain use case, RemoveProductsFromFridgeUseCase, has been added to handle the logic for removing products from the fridge. This use case interacts with the FridgeRepository to execute the removal operation, providing a dedicated component for this specific action within the application's domain layer.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/remove\_products\_from\fridge · high confidence

Added use cases for caching and retrieving user data

New domain use cases have been introduced to handle user data operations. The application now includes a CacheUserUseCase to store user information via the UserRepository, and a GetUserUseCase to retrieve the current user. These changes support the underlying user authorization and data management logic.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/cache\_user, app/src/main/java/ru/tech/cookhelper/domain/use\_case/get\user · high confidence

Added use cases for closing connections and observing user data

The application now includes new domain use cases to manage WebSocket connections and user data observation. The CloseConnectionsUseCase provides a centralized way to close active WebSocket services for messages, users, and feeds. Additionally, the ObserveUserUseCase was added to observe user data from the repository, requiring a user ID and token as parameters.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/close\connection · high confidence

Implemented core data repositories for user authentication, messaging, and fridge management

Added new repository implementations including FridgeRepositoryImpl, MessageRepositoryImpl, SettingsRepositoryImpl, and UserRepositoryImpl, which handle data operations for managing fridge products, real-time chat messaging via WebSocket, local settings storage, and user authentication/registration flows. A new Moshi-based JsonParser utility was also introduced to support JSON serialization and deserialization across these repositories.

app/src/main/java/ru/tech/cookhelper/data/repository · high confidence

Introduced InsertSettingUseCase for managing setting insertions

A new use case, InsertSettingUseCase, has been added to handle the insertion of settings. This component wraps the SettingsRepository to allow the application to insert setting data by ID and option, providing a dedicated domain-layer interface for this operation.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/insert\setting · high confidence

Introduced local data models for user and settings

Added new Room entity classes for storing user profile data and application settings locally. The UserEntity class maps user details such as email, name, avatar, fridge contents, and authentication tokens, while the SettingsEntity class handles local configuration options. These changes support the app's user authorization and data persistence features.

app/src/main/java/ru/tech/cookhelper/data/local/entity · high confidence

Introduced new app shell, navigation, and UI components

The app's presentation layer was restructured with new components: a main activity and app wrapper that wire together the navigation controller, bottom sheet host, and toast/snackbar hosts. A new AllImagesScreen and its AdaptiveVerticalGrid component were added to display image collections. The authentication flow was consolidated into an AuthenticationScreen with OTP and lock-screen orientation utilities. Additionally, a SimpleScaffold and ExitDialog were introduced to manage layout structure and app exit confirmation.

app/src/main/java/ru/tech/cookhelper/presentation · high confidence

Introduced reactive settings retrieval via Flow

Added GetSettingsListUseCaseFlow and GetSettingsListUseCase classes to enable reactive, flow-based retrieval of settings from the repository, supporting real-time updates for the settings list.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/get\_settings\list · high confidence

Introduces a unified Action state management system for handling UI states

A new \Action\<T\>\ sealed class and associated extension functions (\onSuccess\, \onLoading\, \onError\, \onEmpty\) have been added to the core module. This change provides a standardized way to manage and react to different UI states (Loading, Success, Error, Empty) through both Flow and direct object manipulation, simplifying how the app handles asynchronous operations and state transitions.

app/src/main/java/ru/tech/cookhelper/core · high confidence

New FridgeApi interface for fridge management and recipe matching

A new FridgeApi interface has been added to the remote API layer, introducing endpoints to retrieve all available products, add or remove products from a user's fridge, and fetch matched recipes based on fridge contents. This enables the application to interact with backend services for fridge state management and recipe suggestions.

app/src/main/java/ru/tech/cookhelper/data/remote/api/ingredients · high confidence

New UserApi interface for feed, post, and topic creation

A new UserApi interface was added to define remote endpoints for the user module. It exposes methods to retrieve a user's feed, create a post with an optional image, and create a forum topic with optional files and tags. This introduces the underlying API contracts for these features.

app/src/main/java/ru/tech/cookhelper/data/remote/api/user · high confidence

New authentication and user management endpoints

The app now supports user login, registration, email verification, password recovery, and nickname/email availability checks via the new AuthService interface. These endpoints allow users to securely log in, create accounts with name, surname, nickname, email, and password, verify their email, recover their password, and check if a desired nickname or email is available.

app/src/main/java/ru/tech/cookhelper/data/remote/api/auth · high confidence

New domain repository interfaces for user, chat, fridge, and settings

Added four new repository interfaces in the domain layer: UserRepository, MessageRepository, FridgeRepository, and SettingsRepository. These define the contracts for user authentication and profile management, real-time chat messaging, fridge inventory tracking, and application settings, establishing the data access layer for these features.

app/src/main/java/ru/tech/cookhelper/domain/repository · high confidence

New utility classes for network and reflection

Added ConnectionUtils to check device online status, ReflectionUtils for simplified class naming, and RetrofitUtils for HTTP client configuration, file-to-MultipartBody conversion, logging, timeout settings, response handling, and automatic retry logic.

app/src/main/java/ru/tech/cookhelper/core/utils · high confidence

Removals

Removal of legacy presentation and domain layer components

The app's previous UI and business logic layers have been removed. This includes the main activity and navigation container (MainActivity, ProKitchenApp), all screen composables (DishDetailsScreen, OnFridgeBasedDishes, FavouriteListScreen, FridgeScreen), their corresponding ViewModels, state classes, and associated domain models (Recipe, Product) and use cases. This change eliminates the old architecture, likely in preparation for a new implementation.

app/src/main/java/ru/tech/prokitchen/presentation · high confidence

Behavioural changes

Added GetAvailableProductsUseCase to retrieve fridge items

A new use case, GetAvailableProductsUseCase, has been introduced to encapsulate the logic for retrieving available products from the fridge. This component depends on FridgeRepository to fetch the list of items, providing a dedicated domain layer interface for this specific functionality.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/get\_available\products · high confidence

Added domain-driven text validation logic

The app now includes a new text validation framework in the domain layer, introducing a \ChainTextValidator\ that chains multiple \TextValidator\ implementations. This enables consistent, reusable validation rules for user input, including specific validators for email format, string length, presence of numbers, and non-empty checks. Users will experience more robust input validation across forms and fields, with clear error messages for invalid data.

app/src/main/java/ru/tech/cookhelper/domain/utils · high confidence

Added use case for adding products to the fridge

A new AddProductsToFridgeUseCase has been introduced to handle the logic for adding products to the fridge. This use case acts as an intermediary, taking a token and a list of products, and delegates the operation to the FridgeRepository.

_app/src/main/java/ru/tech/cookhelper/domain/use\_case/add\_products\_to\fridge · high confidence

Added user WebSocket service implementation

Introduced a new interface and its implementation for handling user-specific WebSocket connections. The \UserService\ interface and \UserServiceImpl\ class establish a connection to the user WebSocket endpoint, utilizing the existing \WebSocketClient\ base class to manage the real-time data flow for user-related events.

_app/src/main/java/ru/tech/cookhelper/data/remote/web\socket/user · high confidence

App package and version updated

The application ID has been changed from 'ru.tech.kastybiy' to 'ru.tech.cookhelper', and the release version has been updated from 1.0.1 (code 2) to 0.1.23-alpha (code 6).

app/release · high confidence

Application class and package renamed to CookHelper

The core application class has been renamed from ProKitchenApplication to CookHelperApplication, and its package has been updated from ru.tech.prokitchen.core.application to ru.tech.cookhelper.core.application. This change reflects a broader rebranding or restructuring of the application's core identity.

app/src/main/java/ru/tech/cookhelper/core/application · high confidence

Centralized server URLs and status codes for error handling

The app now uses a centralized configuration for server endpoints and error status codes. A new Constants object defines the base URLs for HTTP and WebSocket connections, allowing for easier updates to the server address. Additionally, a Status object introduces a comprehensive set of integer-based status codes for various scenarios, including user authentication, recipe management, chat, topics, comments, and posts. This change provides a single source of truth for network and application states, improving consistency in how the app communicates with the backend and handles errors.

app/src/main/java/ru/tech/cookhelper/core/constants · high confidence

Introduces new data transfer and response wrapper interfaces

The remote data layer now includes new utility interfaces and wrappers to structure data handling. Dto.kt defines a Dto interface with an asDomain() method to facilitate conversion to domain models, while Response.kt introduces a generic Response wrapper class that encapsulates HTTP status codes and optional data payloads.

app/src/main/java/ru/tech/cookhelper/data/remote/utils · high confidence

Local data access layer refactored for user and settings storage

The app's local data access objects (DAOs) have been updated to support user authentication and settings management. A new UserDao was added to handle caching and retrieval of the current user's data, enabling user authorization flows. Meanwhile, the previous FridgeDao was renamed to SettingsDao and refactored to manage application settings, replacing the old product/fridge-related queries with new methods for inserting and retrieving settings entities.

app/src/main/java/ru/tech/cookhelper/data/local/dao · high confidence

Removed local database and remote API data layer

The local Room database classes (ProKitchenDatabase, FavRecipeDao, ProductEntity, FavRecipeEntity) and the remote API interface (ProKitchenApi) along with their DTOs (RecipeDto, ProductDto) and the repository implementation (ProKitchenRepositoryImpl) have been removed from the app. This eliminates the existing data source for fetching recipes, products, and managing local favorites and fridge items.

app/src/main/java/ru/tech/prokitchen/data · high confidence

Restructured dependency injection into dedicated modules

The app's dependency injection setup has been reorganized into separate, focused modules: NetworkModule for API clients, RepositoryModule for data repositories, RetrofitModule for HTTP client configuration, and RoomModule for the local database. This change improves code clarity and maintainability by separating concerns within the core di container.

app/src/main/java/ru/tech/cookhelper/core/di · medium confidence

Updated ProGuard rules for package rename to CookHelper

The app's ProGuard configuration has been updated to reflect the project's package name change from 'ru.tech.prokitchen' to 'ru.tech.cookhelper'. This ensures that the data and domain layers are correctly preserved during the build process, preventing runtime crashes or obfuscation errors for the renamed components.

app · high confidence

Dependencies

Updated Android and Kotlin dependencies and build configuration

The project has been updated to use newer versions of key libraries and build tools. The Android compile SDK and target SDK have been raised to 33, and the app namespace has changed from 'ru.tech.prokitchen' to 'ru.tech.cookhelper'. The Kotlin compiler extension version was upgraded from 1.2.0-alpha06 to 1.4.2. Significant dependency updates include Hilt (2.38.1 to 2.45), Room (2.4.2 to 2.5.0), Coroutines (1.6.0 to 1.6.4), and Compose/BOM libraries (e.g., Material3 1.0.0-alpha09 to 1.1.0-alpha06, UI 1.2.0-alpha07 to 1.4.0-beta01). Additionally, new dependencies for navigation (reimagined), splash screen API, and image loading (Coil 2.2.2) were added, while unused libraries were removed.

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

Lenses

  • Code Health 91 → 90 (-1.0)
  • Architecture 93 → 94 (+1.1)
  • Maturity 43 → 43 (+0.0)
  • Readiness 15 → 17 (+1.9)
  • Security 95 → 95 (+0.0)
  • Domain Modelling 100 → 70 (-30.3)

Resolved (39)

  • Change coupling: ChatScreen.kt ↔ ChatListViewModel.kt (app/src/main/java/ru/tech/cookhelper/presentation/chat/ChatScreen.kt)
  • Change coupling: CookHelperApp.kt ↔ FullscreenImagePagerScreen.kt (app/src/main/java/ru/tech/cookhelper/presentation/app/components/CookHelperApp.kt)
  • Change coupling: CookHelperApp.kt ↔ ImageCarousel.kt (app/src/main/java/ru/tech/cookhelper/presentation/app/components/CookHelperApp.kt)
  • Change coupling: CookHelperApp.kt ↔ Picture.kt (app/src/main/java/ru/tech/cookhelper/presentation/app/components/CookHelperApp.kt)
  • Change coupling: CookHelperApp.kt ↔ RecipePostCreationViewModel.kt (app/src/main/java/ru/tech/cookhelper/presentation/app/components/CookHelperApp.kt)
  • Change coupling: CookHelperApp.kt ↔ SettingsScreen.kt (app/src/main/java/ru/tech/cookhelper/presentation/app/components/CookHelperApp.kt)
  • Change coupling: EditProfileScreen.kt ↔ RoundedTextField.kt (app/src/main/java/ru/tech/cookhelper/presentation/edit_profile/EditProfileScreen.kt)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (10 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/confirm_email/ConfirmEmailField.kt)
  • Duplicated block (10 lines × 2) (dynamic_theme/src/main/java/com/cookhelper/dynamic/theme/DynamicTheme.kt)
  • Duplicated block (11 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/all_images/AllImagesScreen.kt)
  • Duplicated block (11 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/pick_products/PickProductsDialog.kt)
  • Duplicated block (11 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/restore_password/RestorePasswordField.kt)
  • Duplicated block (11 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/settings/components/Options.kt)
  • Duplicated block (12 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/chat/components/MessageBubbleItem.kt)
  • Duplicated block (12 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/login_screen/LoginField.kt)
  • Duplicated block (12 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/post_creation/PostCreationScreen.kt)
  • Duplicated block (12 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/recipe_post_creation/RecipePostCreationScreen.kt)
  • Duplicated block (13 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/post_creation/PostCreationScreen.kt)
  • Duplicated block (13 lines × 3) (app/src/main/java/ru/tech/cookhelper/presentation/login_screen/LoginField.kt)
  • …and 19 more

New (68)

  • Change coupling: PostItem.kt ↔ Screen.kt (app/src/main/java/ru/tech/cookhelper/presentation/profile/components/PostItem.kt)
  • Change coupling: RecipePostCreationScreen.kt ↔ PickProductsWithMeasuresDialog.kt (app/src/main/java/ru/tech/cookhelper/presentation/recipe_post_creation/RecipePostCreationScreen.kt)
  • Change-coupling hub: ChatScreen.kt → MessageRepositoryImpl.kt, AllImagesScreen.kt, ChatListViewModel.kt (app/src/main/java/ru/tech/cookhelper/presentation/chat/ChatScreen.kt)
  • Change-coupling hub: CookHelperApp.kt → ImageCarousel.kt, SettingsScreen.kt, Picture.kt (app/src/main/java/ru/tech/cookhelper/presentation/app/components/CookHelperApp.kt)
  • ClassTooLong: ColorScheme (app/src/main/java/ru/tech/cookhelper/presentation/ui/theme/Color.kt)
  • 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 (10 lines × 2) (app/src/main/java/ru/tech/cookhelper/data/repository/FridgeRepositoryImpl.kt)
  • Duplicated block (10 lines × 2) (app/src/main/java/ru/tech/cookhelper/data/repository/FridgeRepositoryImpl.kt)
  • Duplicated block (10 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/all_images/AllImagesScreen.kt)
  • Duplicated block (10 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/post_creation/PostCreationScreen.kt)
  • Duplicated block (12–13 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/chat/components/MessageBubbleItem.kt)
  • Duplicated block (13–14 lines × 4) (app/src/main/java/ru/tech/cookhelper/presentation/login_screen/LoginField.kt)
  • Duplicated block (14 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/pick_products/PickProductsDialog.kt)
  • Duplicated block (14 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/post_creation/PostCreationScreen.kt)
  • Duplicated block (14 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/settings/components/Options.kt)
  • Duplicated block (15 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/post_creation/PostCreationScreen.kt)
  • Duplicated block (16 lines × 2) (app/src/main/java/ru/tech/cookhelper/presentation/post_creation/PostCreationScreen.kt)
  • …and 48 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

T8RIN/CookHelper 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 22 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 7a74ffc7c22d88283d146456661209a2a1e31eb7 — 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-821afab8930d.