Skip to content
CAI
Software that uses CAICheck a score

meysamhadeli/ecommerce-monolith

44.2

Weak · 21 September 2026

5k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an e-commerce platform built on .NET 9, designed to manage product catalogs, inventory, and orders. It implements a vertical slice architecture using CQRS and DDD principles, leveraging MediatR and Entity Framework Core with PostgreSQL. The application provides API endpoints for creating and managing categories, products, and customer data, supported by comprehensive test coverage for domain logic and integration scenarios.

Features

Initial project structure with .NET 9 and vertical slice architecture

The repository has been initialized with a complete .NET 9 solution structure, including a Dockerfile for containerized builds, an .editorconfig for code style enforcement, and a Directory.Build.props file that sets the target framework to net9.0 and configures static code analysis tools (StyleCop, Roslynator, etc.). The project adopts a Vertical Slice Architecture with CQRS and DDD principles, utilizing MediatR, FluentValidation, and Postgres, as detailed in the updated README.

(repo-wide) · high confidence

Initial release of E-Commerce domain features

The application now includes the core features for managing categories, products, and inventory. Users can create categories and products, as well as add products to inventory and handle product damage scenarios. These changes introduce the foundational business logic and API endpoints for the catalog and inventory management domains.

(repo-wide) · high confidence

Initial release of the ECommerce domain with full data layer and core entities

The ECommerce application is initialized with the complete data access layer and core domain models for Categories, Customers, Inventories, and Orders. This includes Entity Framework Core configurations, value objects, and exception classes for each entity. The data layer is configured to use a PostgreSQL database via Npgsql, with a design-time factory and a data seeder to populate initial data for categories, products, and customers. Additionally, the infrastructure is set up with MediatR, AutoMapper, and Sieve for pagination and filtering, enabling the application to manage and retrieve data for the e-commerce platform.

src/ECommerce · high confidence

Introduces core CQRS, event handling, and persistence abstractions

The BuildingBlocks layer now provides foundational infrastructure for a CQRS-based architecture, including MediatR-based command and query interfaces, domain and integration event models, and an event dispatcher that maps domain events to integration events for publishing. The EF Core integration adds an abstract DbContext that automatically tracks and clears domain events, applies soft-delete and audit column logic, and executes commands within transactions. Additionally, the update introduces a pagination system with Sieve integration, a standardized exception hierarchy with HTTP status codes, Serilog-based logging with Elasticsearch and Sentry sinks, OpenAPI/Swagger configuration with Scalar UI, and a test base for integration tests using an in-memory message bus and PostgreSQL test containers.

src/BuildingBlocks · high confidence

Test coverage

Added end-to-end, integration, and unit tests for the ECommerce application

Added comprehensive test coverage for the ECommerce application, including end-to-end, integration, and unit tests. The end-to-end tests verify API routes for creating categories, products, and orders, as well as inventory operations like adding, selling, and damaging products. Integration tests ensure that commands correctly update the database, while unit tests validate domain logic and handlers for categories, products, and orders. Helper classes and fakes were also added to support these tests.

tests · high confidence

Dependencies

Initial project structure and dependency setup

The repository now includes the foundational .NET project files for the solution, establishing the build and dependency graph. The 'BuildingBlocks' library is introduced with a comprehensive set of NuGet packages, including Microsoft.EntityFrameworkCore 9.0.0, Serilog, MassTransit, and xUnit for testing. The 'ECommerce' and 'ECommerce.Api' projects are defined with references to the building blocks, while separate test projects (EndToEnd, Integration, Unit) are configured with xUnit and Microsoft.NET.Test.Sdk.

(dependencies) · medium 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 45 → 44 (-1.2)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 77 → 55 (-22.0)
  • Architecture 93 → 93 (+0.0)
  • Maturity 71 → 71 (+0.0)
  • Readiness 45 → 45 (+0.0)
  • Security 29 → 29 (+0.0)
  • Domain Modelling 62 → 70 (+8.5)
  • Event-Driven 100 → 100 (+0.0)

Resolved (14)

  • Bounded contexts not declared
  • Build did not complete in the analyzer
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No exposed public API
  • Split ECommerce
  • The two .md files (ECommerce.Data) only show setup commands ('dotnet ef migrations add Init ...') without describing what data model or database exists, leaving the reader unable to determine whether this is a domain layer or an infrastructure file. (ECommerce/Data/readme.md)
  • XML-doc coverage: BuildingBlocks (src/BuildingBlocks/BuildingBlocks.csproj)
  • XML-doc coverage: ECommerce (src/ECommerce/ECommerce.csproj)
  • XML-doc coverage: ECommerce.Api (src/ECommerce.Api/ECommerce.Api.csproj)
  • early-stage repository — too little history to judge knowledge freshness
  • redundant comment (src/BuildingBlocks/Logging/Extensions.cs)
  • single-maintainer — knowledge-concentration (bus factor) risk

New (100)

  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • …and 80 more

API surface

  • Unchanged — 1 HTTP endpoints

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

Survey your own repository

meysamhadeli/ecommerce-monolith 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 35ce50682d38fb461e92b26f9ae39a74c2ad8a38 — 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.