Skip to content
CAI
Software that uses CAICheck a score

idugalic/digital-restaurant

51.9

Adequate · 21 September 2026

8.2k

lines of production code

Kotlin

with JavaScript

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a DDD-based restaurant management platform that implements CQRS and Event Sourcing using the Axon Framework. It exposes domain commands and queries via REST and WebSocket endpoints, supporting the creation and state management of customers, couriers, restaurants, and orders. The architecture includes a monolithic application and separate microservices for command and query sides, all registered with a service discovery server.

Features

Add AMQP message source configuration for microservices

New AMQP message source configuration files have been added to the courier, customer, order, and restaurant microservices. Each configuration registers a Spring AMQP message source that listens to the 'sagaqueue' via RabbitMQ, enabling these services to consume messages from the message broker as part of the Axon 4.0 upgrade.

(repo-wide) · high confidence

Add Eureka-based service discovery server

The microservices discovery server is now implemented using Spring Cloud Netflix Eureka, exposing the Eureka server on port 8761. This introduces a new service discovery mechanism for the microservices architecture, allowing services to register and discover each other via Eureka.

drestaurant-apps/drestaurant-microservices/drestaurant-microservices-discovery-server · high confidence

Add Order Creation API Endpoint

A new REST controller at /api/command/order has been introduced to handle order creation requests. This endpoint accepts a JSON payload containing customer and restaurant identifiers along with a list of order items, and forwards the data as a CreateOrderCommand to the Axon framework's command gateway for processing.

drestaurant-apps/drestaurant-microservices/drestaurant-microservices-command-order/src/main/kotlin/com/drestaurant/web · high confidence

Add REST controllers for creating and updating resources in each microservice

New CommandController classes have been added to the courier, customer, and restaurant microservices. Each controller exposes REST endpoints to create new entities (Courier, Customer, Restaurant) and update their states (e.g., assigning orders, marking as delivered/prepared) using Axon's CommandGateway. These controllers handle the HTTP requests, map them to domain commands, and use subscription queries to return the updated state, effectively exposing the write side of the application via REST.

drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-courier/src/main/kotlin/com/drestaurant/web, drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-customer/src/main/kotlin/com/drestaurant/web, drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-restaurant/src/main/kotlin/com/drestaurant/web · high confidence

Add admin and command REST APIs for event processing and domain commands

New REST endpoints are exposed for administrative control and domain command execution. The /api/administration/eventprocessors\* endpoints allow users to view the status of Axon event processors, reset their state, and retrieve tracking information, enabling operational control over background processing. Additionally, the /api/command endpoints provide a unified interface for creating customers, couriers, restaurants, and orders, as well as marking orders as prepared or delivered, facilitating the core business workflows through a single web interface.

drestaurant-apps/drestaurant-monolith/src/main/kotlin/com/drestaurant/web · high confidence

Add automated C4 architecture documentation generation

The application now automatically generates a C4 model diagram of the system architecture as PlantUML text during startup. This includes a new \SoftwareSystemContextC4Model\ component that defines the monolith's structure (customer, courier, and restaurant manager personas interacting with backend containers and domain components), and a renderer that prints the corresponding PlantUML code to the console for visualization.

drestaurant-apps/drestaurant-monolith/src/main/kotlin/com/drestaurant/documentation, drestaurant-libs/drestaurant-documentation · high confidence

Add customer query model and handlers for read-side operations

A new read-model implementation for customers has been added to the microservices REST application. This includes a JPA entity (CustomerEntity) and a repository that exposes a REST API for retrieving customer data. The system now handles customer creation events to update the read model and supports two query types: finding a specific customer by ID and retrieving all customers. These changes enable the application to serve customer data via HTTP endpoints.

drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-customer/src/main/kotlin/com/drestaurant/query · high confidence

Add query-side microservice for DDD projections and real-time updates

The drestaurant-microservices-query module has been added, introducing the read-side of the DDD architecture. This includes JPA entities (Courier, Customer, Order, Restaurant) and Spring Data repositories that expose REST endpoints at /api/query. Event handlers listen for domain events (e.g., OrderCreationInitiatedEvent) via Axon 4.0, updating the local projections and broadcasting changes over WebSocket (Stomp) to clients. Configuration files set up the H2 in-memory database, Kafka consumer for Axon events, and CORS filters.

drestaurant-apps/drestaurant-microservices/drestaurant-microservices-query · high confidence

Add query-side microservice for real-time updates via WebSockets

A new query-side microservice has been added to the drestaurant application, providing read-model projections and real-time data streaming via WebSockets. This service includes configuration for CORS, WebSocket message brokering, and event handlers that update JPA entities (Customer, Courier, Order, Restaurant) from domain events. It exposes REST/WS endpoints for fetching all entities and broadcasts updates to subscribed clients, enabling live UI updates for customers, couriers, and orders.

drestaurant-apps/drestaurant-microservices-websockets/drestaurant-microservices-websockets-query · high confidence

Added Axon administration component for event processor management

A new AxonAdministration component was added to the admin module, providing methods to reset tracking event processors and retrieve their status. This enables administrative control over event processing workflows, specifically allowing the reset of tracking event processors and inspection of their current state.

drestaurant-apps/drestaurant-monolith/src/main/kotlin/com/drestaurant/admin · high confidence

Added Eureka discovery server configuration

The microservices discovery server was introduced as a new component, enabling service registration and discovery via Spring Cloud Netflix Eureka. The server is configured to run on port 8761, providing the central registry for other microservices to register and discover each other.

drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-discovery-server · high confidence

Added Spring Boot application entry points for microservices

New Kotlin entry-point classes have been added for the Courier, Customer, Order, and Restaurant microservices across both the REST and Command modules. Each application class is configured with Spring Cloud's @EnableDiscoveryClient and explicitly excludes Spring Security auto-configuration, indicating these services are being registered with a service registry and are intentionally bypassing default security filters.

(repo-wide) · high confidence

Added configuration for Axon, RabbitMQ, CORS, and REST API exposure

Each microservice (courier, customer, restaurant) now includes dedicated configuration classes to support event-driven architecture and cross-origin resource sharing. Axon and RabbitMQ are configured to handle message passing and event buses, while a custom CORS filter ensures proper header handling for cross-domain requests. Additionally, REST API configurations expose specific entity IDs for each domain, enabling direct access to repository endpoints for those entities.

drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-courier/src/main/kotlin/com/drestaurant/configuration, drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-customer/src/main/kotlin/com/drestaurant/configuration, drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-restaurant/src/main/kotlin/com/drestaurant/configuration · high confidence

Added configuration for REST, WebSocket, and Axon framework

The application now includes explicit configuration classes for several key integrations. REST API endpoints are configured to expose IDs for Customer, Courier, Restaurant, and Order entities. A WebSocket message broker is set up with a STOMP endpoint at /drestaurant. Additionally, the Axon framework is configured with a command interceptor for validation and a snapshotter factory bean. Swagger documentation is also enabled for the REST API.

drestaurant-apps/drestaurant-monolith/src/main/kotlin/com/drestaurant/configuration · high confidence

Added courier and courier order query models and handlers

The application now exposes read-models for couriers and courier orders. New Kotlin files define the query-side entities (CourierEntity, CourierOrderEntity) and their Spring Data JPA repositories, along with Axon event handlers that persist state changes and emit updates to subscription queries (FindCourierQuery, FindAllCouriersQuery, FindCourierOrderQuery, FindAllCourierOrdersQuery). This enables querying courier and order data through the microservice's REST API.

drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-courier/src/main/kotlin/com/drestaurant/query · high confidence

Added cross-origin and Axon framework configuration for microservices

New configuration classes were added to the customer, order, and restaurant command microservices. Each service now includes an AxonConfiguration that registers a BeanValidationInterceptor on the CommandBus and defines a SpringAggregateSnapshotterFactoryBean. Additionally, a MyCorsFilter component was added to each service to handle Cross-Origin Resource Sharing (CORS) headers, including allowing credentials and specific HTTP methods, to resolve 401 errors on AJAX calls.

drestaurant-apps/drestaurant-microservices/drestaurant-microservices-command-customer/src/main/kotlin/com/drestaurant/configuration, drestaurant-apps/drestaurant-microservices/drestaurant-microservices-command-order/src/main/kotlin/com/drestaurant/configuration, drestaurant-apps/drestaurant-microservices/drestaurant-microservices-command-restaurant/src/main/kotlin/com/drestaurant/configuration · high confidence

Added monolithic REST API with CQRS and Event Sourcing architecture

Introduced a new monolithic REST API application that implements a CQRS and Event Sourcing architecture using the Axon Framework. The application exposes REST endpoints for managing restaurants, customers, couriers, and orders, utilizing Spring Boot and Kotlin. It includes configuration for Axon (command bus, event processing, and snapshotting), an administration component for managing event processors, and a CORS filter. The architecture is documented with C4 model diagrams (context, containers, and components) and a detailed README explaining the non-segregated CQRS approach where command and query models are exposed via a single REST interface.

drestaurant-apps/drestaurant-monolith-rest · high confidence

Added order management capabilities via Axon and RabbitMQ integration

The order microservice now includes a new application entry point, configuration for Axon and RabbitMQ, and a REST controller for creating orders. The system uses Axon's command and query handling to process order creation, updating a local read model (OrderEntity) via event handlers, and exposes a POST /orders endpoint that accepts order details and returns the created order's state. Configuration classes wire up RabbitMQ connections, exchanges, and queues, while a CORS filter and repository configuration support the new functionality.

drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-order/src/main/kotlin · high confidence

Added query-side implementation for restaurant and order data

New Kotlin files in the query package introduce the read-model layer for the restaurant domain. This includes query handlers (RestaurantHandler, RestaurantOrderHandler) that listen for domain events (e.g., RestaurantCreatedEvent, RestaurantOrderCreatedEvent) and update the query-side repositories. The change also adds the corresponding JPA entity models (RestaurantEntity, RestaurantOrderEntity) and Spring Data repositories (RestaurantRepository, RestaurantOrderRepository) to support querying restaurant and order information.

drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-restaurant/src/main/kotlin/com/drestaurant/query · high confidence

Added query-side projections and event handlers for Courier, Customer, Order, and Restaurant domains

New event handlers have been introduced to listen to domain events and update corresponding query-side entities (CourierEntity, CustomerEntity, OrderEntity, RestaurantEntity) via Spring Data repositories. Each handler processes specific events (e.g., CourierCreatedEvent, OrderVerifiedByCustomerEvent) to persist state in the read model and broadcast updates via WebSocket topics (e.g., /topic/couriers.updates). The implementation includes reset handlers to clear projection tables before replay, ensuring consistency during event sourcing resets.

drestaurant-apps/drestaurant-monolith/src/main/kotlin/com/drestaurant/query · high confidence

Implements courier order assignment and validation via Axon event sourcing

The courier module now uses Axon's event sourcing to manage courier and courier order states. New domain classes (Courier, CourierOrder, CourierOrderSaga) handle commands for creating, assigning, and validating orders, while internal events and commands coordinate the workflow. Configuration beans define snapshot triggers for the aggregates.

drestaurant-libs/drestaurant-courier/src/main/kotlin · high confidence

Initial commit: added Maven wrapper and empty application properties for all modules

The repository was initialized with a Maven wrapper (version 3.3.9) and empty application.properties files for each microservice module (courier, customer, order, and restaurant). This establishes the build environment and configuration placeholders for the application.

(repo-wide) · high confidence

Initial monolith application configuration and landing page

The application now includes a default configuration file (application.yml) that sets up an in-memory H2 database, configures Axon event sourcing with snapshotting thresholds for various aggregates, and integrates Structurizr for architecture visualization. Additionally, a static landing page (index.html) is provided, which describes the monolithic architecture, provides links to the Swagger API documentation and the H2 console.

drestaurant-apps/drestaurant-monolith/src/main/resources · high confidence

Initial project scaffolding and documentation

The repository was initialized with core documentation files (README.md, PITCHME.md) and configuration files (.gitignore, \_config.yml, gh-md-toc, mvnw, mvnw.cmd) that establish the project's structure, describe the domain-driven design and technology stack, and provide build/run instructions for the monolithic and microservices applications.

(repo-wide) · high confidence

Introduce query-side read models and handlers for the drestaurant microservices

The drestaurant-microservices-rest-2-query module now provides the complete query-side implementation for the drestaurant domain. This includes new Kotlin data classes for read models (e.g., CourierModel, CustomerModel, OrderModel, RestaurantModel) and their corresponding JPA entities. The change introduces event handlers that listen for domain events (such as CourierCreatedEvent, OrderVerifiedByCustomerEvent, etc.) to update the read models, as well as query handlers that serve these read models via REST endpoints. This establishes the foundation for the 'Version 2' of the REST microservices, shifting the query logic to a dedicated query service.

drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query · high confidence

Introduces domain API contracts for core entities

The drestaurant-core-api module now provides the foundational API contracts for the system's core domains. This includes abstract base classes for auditable commands and events, along with specific command and event definitions for the Courier, Customer, Order, and Restaurant aggregates. The change also introduces shared value objects such as AuditEntry, Money, and PersonName, as well as domain-specific identifiers and state enums, establishing the interface layer for these business capabilities.

drestaurant-libs/drestaurant-core-api · high confidence

New Command API endpoints for restaurant management

A new REST controller, CommandController, has been added to handle command-based operations for the restaurant domain. This introduces two new API endpoints: one for creating a restaurant (POST /api/command/restaurant/createcommand) and another for marking a restaurant order as prepared (POST /api/command/restaurant/order/{id}/markpreparedcommand). These endpoints accept JSON payloads and interact with the Axon Framework's CommandGateway to process domain commands, effectively exposing the microservice's internal command handling logic via HTTP.

drestaurant-apps/drestaurant-microservices/drestaurant-microservices-command-restaurant/src/main/kotlin/com/drestaurant/web · medium confidence

New REST API for courier command operations

A new REST controller at /api/command/courier exposes endpoints to create a courier, assign an order to a courier, and mark an order as delivered. These endpoints accept JSON payloads and interact with the Axon framework's command gateway to dispatch corresponding domain commands.

drestaurant-apps/drestaurant-microservices/drestaurant-microservices-command-courier/src/main/kotlin/com/drestaurant/web · high confidence

New REST endpoint for creating customers

A new REST controller at /api/command/customer has been added to handle customer creation commands. The endpoint accepts a JSON payload containing a first name, last name, and order limit, and uses Axon's CommandGateway to process the CreateCustomerCommand.

drestaurant-apps/drestaurant-microservices/drestaurant-microservices-command-customer/src/main/kotlin/com/drestaurant/web · high confidence

New REST microservices for command handling

Introduced a new 'Version 2' of the REST microservices architecture, adding dedicated command-handling services for courier, customer, order, and restaurant domains. Each service exposes REST endpoints to create and manage domain entities (e.g., creating a courier, customer, order, or restaurant) and integrates with Axon Framework for command processing, including custom CORS filters and Axon configuration for command buses and snapshots.

(repo-wide) · high confidence

New websockets microservices for courier, order, and restaurant command sides

Added three new Spring Boot microservices (courier, order, and restaurant) that expose WebSocket endpoints via STOMP. Each service configures a message broker, registers command handlers through Axon's CommandGateway, and includes CORS filters and Axon configuration for command dispatching and snapshotting. The services run on ports 8081, 8083, and 8084 respectively, and provide REST/WS interfaces for creating and managing entities (couriers, orders, restaurants) in a domain-driven architecture.

drestaurant-apps/drestaurant-microservices-websockets/drestaurant-microservices-websockets-command-courier, drestaurant-apps/drestaurant-microservices-websockets/drestaurant-microservices-websockets-command-order, drestaurant-apps/drestaurant-microservices-websockets/drestaurant-microservices-websockets-command-restaurant · high confidence

Behavioural changes

Added Axon 4.0 configuration and CORS filter

The application now includes a new Axon 4.0 configuration class that registers a BeanValidationInterceptor for command handling and configures an aggregate snapshotter. Additionally, a new CORS filter component has been added to handle cross-origin requests, setting headers for allowed methods, headers, and credentials to support frontend interactions.

drestaurant-apps/drestaurant-microservices/drestaurant-microservices-command-courier/src/main/kotlin/com/drestaurant/configuration · high confidence

Implements event sourcing for Restaurant and RestaurantOrder aggregates

The application now uses Axon Framework's event sourcing pattern for the Restaurant and RestaurantOrder domains. The Restaurant aggregate handles creating a restaurant and spawning new RestaurantOrder aggregates. The RestaurantOrder aggregate manages order creation and state transitions (CREATED to PREPARED). Configuration beans are added to trigger snapshots for both aggregates after 100 events each, ensuring efficient state reconstruction.

drestaurant-libs/drestaurant-restaurant/src/main/kotlin · medium confidence

Implements event-sourced aggregates for customer and order management

The customer domain now uses Axon Framework's event sourcing to manage state. A new Customer aggregate root handles customer creation and enforces order limits, while a separate CustomerOrder aggregate manages the lifecycle of individual orders, including state transitions from CREATED to DELIVERED. Configuration beans define snapshot triggers for both aggregates, ensuring efficient state reconstruction from events.

drestaurant-libs/drestaurant-customer/src/main/kotlin · medium confidence

Order processing now uses Axon4 event sourcing with a new OrderSaga for cross-context coordination

The Order aggregate has been refactored to use Axon4's event sourcing model, where state changes are driven by applying and handling domain events (e.g., OrderCreationInitiatedEvent, OrderPreparedEvent) rather than direct state mutation. A new OrderSaga coordinates the order lifecycle across the Customer, Restaurant, and Courier bounded contexts, triggering commands to create and update related orders as events occur. Configuration for snapshotting is also provided via SpringOrderConfiguration.

drestaurant-libs/drestaurant-order/src/main/kotlin · medium confidence

Test coverage

Added ArchUnit tests to enforce package-level encapsulation; Added architecture tests to enforce package visibility rules; Added unit tests for Customer and CustomerOrder aggregates; Added unit tests for Order aggregate and saga; Added unit tests for Restaurant and RestaurantOrder aggregates; Added unit tests for courier domain aggregates and saga.

Dependencies

Add Maven build files for microservices and websockets modules

This change introduces a new set of Maven POM files that define the build structure for the 'drestaurant-microservices-rest-2', 'drestaurant-microservices-rest', and 'drestaurant-microservices-websockets' application modules. These files establish the project hierarchy, specifying parent-child relationships and declaring dependencies on the Axon Framework, Spring Boot, and various internal 'drestaurant' domain modules. The configuration includes dependencies for REST, security, data JPA, and WebSockets, enabling the compilation and packaging of the microservices and websocket-based services.

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

Lenses

  • Code Health 95 → 95 (+0.2)
  • Architecture 99 → 78 (-21.2)
  • Maturity 42 → 56 (+13.9)
  • Readiness 44 → 44 (+0.0)
  • Security 85 → 94 (+9.1)
  • Domain Modelling 100 → 86 (-14.2)
  • Event Sourcing 100 → 100 (+0.0)
  • Accessibility 47 → 44 (-2.9)

Resolved (22)

  • Change coupling: CourierHandler.kt ↔ CustomerHandler.kt (drestaurant-apps/drestaurant-monolith-rest/src/main/kotlin/com/drestaurant/query/handler/CourierHandler.kt)
  • Change coupling: CourierOrderSaga.kt ↔ OrderSaga.kt (drestaurant-libs/drestaurant-courier/src/main/kotlin/com/drestaurant/courier/domain/CourierOrderSaga.kt)
  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (15 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (6 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (6 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/RestaurantOrderHandler.kt)
  • Duplicated block (7 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/RestaurantHandler.kt)
  • Duplicated block (7 lines × 5) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-command-courier/src/main/kotlin/com/drestaurant/web/CommandController.kt)
  • Duplicated block (8 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/CourierOrderHandler.kt)
  • Duplicated block (9 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (9 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (9 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (9 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • LLM evaluation failed
  • No exposed public API
  • Scanner failed to run — not a clean result
  • Test reliability not included
  • …and 2 more

New (93)

  • 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 (10 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (10 lines × 2) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (11 lines × 2) (drestaurant-apps/drestaurant-microservices-websockets/drestaurant-microservices-websockets-query/src/main/kotlin/com/drestaurant/query/handler/CourierHandler.kt)
  • Duplicated block (12 lines × 2) (drestaurant-apps/drestaurant-monolith-websockets/src/main/kotlin/com/drestaurant/documentation/SoftwareSystemContextC4Model.kt)
  • Duplicated block (14 lines × 3) (drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/RestaurantHandler.kt)
  • Duplicated block (16 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-courier/src/main/kotlin/com/drestaurant/query/handler/CourierHandler.kt)
  • Duplicated block (16 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-customer/src/main/kotlin/com/drestaurant/query/handler/CustomerHandler.kt)
  • Duplicated block (17 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-courier/src/main/kotlin/com/drestaurant/query/handler/CourierOrderHandler.kt)
  • Duplicated block (17 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-restaurant/src/main/kotlin/com/drestaurant/query/handler/RestaurantHandler.kt)
  • Duplicated block (17 lines × 2) (drestaurant-apps/drestaurant-monolith-rest/src/main/kotlin/com/drestaurant/admin/AxonAdministration.kt)
  • Duplicated block (18 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-courier/src/main/kotlin/com/drestaurant/query/handler/CourierOrderHandler.kt)
  • Duplicated block (18 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-order/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (18 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-order/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (18 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-order/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (18 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-order/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (18 lines × 2) (drestaurant-apps/drestaurant-microservices-rest/drestaurant-microservices-rest-order/src/main/kotlin/com/drestaurant/query/handler/OrderHandler.kt)
  • Duplicated block (18 lines × 2) (drestaurant-apps/drestaurant-monolith-rest/src/main/kotlin/com/drestaurant/web/AdminController.kt)
  • …and 73 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

idugalic/digital-restaurant 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 920248e62c5b7d9b8d3c365b2f911355aa19c7db — 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.