Skip to content
CAI
Software that uses CAICheck a score

anjoy8/ChristDDD

37.1

Weak · 21 September 2026

4.8k

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 a .NET Core web application that manages students and orders using a domain-driven design with CQRS and event sourcing. It provides full CRUD operations for these entities, supported by a flexible infrastructure layer that allows switching between MySQL and SQL Server databases. The application includes user identity management via ASP.NET Core Identity or IdentityServer4, along with UI components for account and entity management.

Features

Add AlertsViewComponent to display domain notifications

A new AlertsViewComponent has been added to the UI layer to render domain notifications. It injects a DomainNotificationHandler and, when invoked, retrieves all stored notifications to populate the view's ModelState, allowing error and informational messages to be displayed on the frontend.

Christ3D.UI.Web/ViewComponents · medium confidence

Add account, manage, and entity management views

The application now includes a complete set of Razor views for user account management and entity CRUD operations. This adds the full account management UI, including login, registration, password reset, and two-factor authentication flows. It also introduces a user profile and security management section where users can change passwords, manage external logins, and configure two-factor authentication settings. Additionally, the update introduces views for managing Students and Orders, providing create, read, update, and delete interfaces for these entities, along with a history modal for student records.

Christ3D.UI.Web/Views · high confidence

Add support for switching between MySQL and SQL Server databases

The infrastructure layer now supports connecting to either MySQL or SQL Server databases. This is achieved through new context classes (StudyContext, EventStoreSQLContext) and repository implementations that dynamically select the database provider based on configuration. Additionally, a new in-memory message bus (InMemoryBus) and utility classes for data conversion and database configuration have been introduced to support this multi-database capability.

Christ3D.Infrastruct · high confidence

Added Bootstrap v3.3.7 CSS framework

The project now includes the Bootstrap v3.3.7 minified CSS stylesheet, providing standard UI components and grid system styles to the web application.

Christ3D.UI.Web/wwwroot · high confidence

Added Mediator Handler interface for command and event bus operations

A new IMediatorHandler interface has been introduced in the Bus module, defining the contract for sending commands and raising events through a mediator pattern. This interface provides methods to send commands (SendCommand) and raise domain events (RaiseEvent), enabling asynchronous communication within the application's core domain layer.

Christ3D.Domain.Core/Bus · medium confidence

Added abstract Command base class for CQRS commands

Introduced a new abstract \Command\ class in the \Christ3D.Domain.Core.Commands\ namespace, serving as the base for CQRS commands. This class inherits from \Message\ and includes a \Timestamp\ property, a \ValidationResult\ for FluentValidation integration, and an abstract \IsValid\ method to enforce validation logic across all command implementations.

Christ3D.Domain.Core/Commands · high confidence

Added base classes for domain entities and value objects

Introduced abstract base classes for domain modeling: an Entity class providing a unique Guid identifier and standard equality/hashing implementations, and a generic ValueObject class supporting value-based equality and cloning. These classes establish the foundational structure for domain-driven design within the application.

Christ3D.Domain.Core/Models · high confidence

Added extension methods for URL generation and service registration for authentication, mapping, and cookie handling

New extension classes have been added to the web layer to configure core infrastructure. IdentitySetup registers the ASP.NET Core Identity services and configures the database context to support either MySQL or SQL Server based on configuration. Id4OidcSetup configures OpenID Connect authentication with IdentityServer4, including scope and claim mappings. AutoMapperSetup registers the AutoMapper service for object-to-object mapping. NativeInjectorBootStrapper wires up the application's dependency injection, registering command handlers, event handlers, repositories, and in-memory caching. SameSiteHandlingExtensions adds a middleware to handle SameSite cookie policies for specific user agents to ensure compatibility with older browsers. UrlHelperExtensions provide helper methods to generate email confirmation and password reset links.

Christ3D.UI.Web/Extensions · high confidence

Added identity management and database migrations for SQL Server and MySQL

The identity infrastructure now includes a complete set of account management views (Login, Register, Forgot/Reset Password, 2FA, External Login) and an authorization handler that supports both IdentityServer4 and standard claim-based checks. Additionally, the application now supports both SQL Server and MySQL databases, each with their own initial migration scripts and model snapshots.

Christ3D.Infrastruct.Identity · high confidence

Adds account management, student/order CRUD, and authentication endpoints

The web application now supports user account management, including login, two-factor authentication, and password changes via the new AccountController. A new ManageController allows users to update their profile information and send email verification. Additionally, the application introduces controllers for managing Students and Orders, providing full CRUD (Create, Read, Update, Delete) capabilities for these entities. The HomeController has been updated to include explicit login and logout endpoints, as well as an access denied view, facilitating the overall authentication flow.

Christ3D.UI.Web/Controllers · high confidence

Initial project scaffolding and build infrastructure

The repository was initialized with essential build and configuration files. This includes a .dockerignore file to optimize Docker image builds, a .gitignore file for Visual Studio and .NET development environments, and shell/batch scripts (Build.bat, Christ3D.Publish.Linux.sh, Christ3D.Publish.Docker.sh) to automate building, publishing, and containerizing the .NET Core application. Additionally, the solution file (Christ3D.sln) was updated to include new project references for Domain.Core and Identity infrastructure, and standard legal/documentation files (LICENSE, README.md) were added.

(repo-wide) · high confidence

Introduce CQRS command handling and validation for Student and Order domains

Added command handlers for processing Register, Update, and Remove commands for Students, and Register commands for Orders, implementing the Command-Query Responsibility Segregation (CQRS) pattern. Each handler validates incoming commands using FluentValidation rules and persists changes via a Unit of Work, publishing domain events (e.g., StudentRegisteredEvent) upon successful execution. This introduces a structured way to process domain commands and handle side effects through event handlers.

Christ3D.Domain · high confidence

Introduce domain event and notification infrastructure

Added core abstractions for domain events and notifications to support event sourcing and the MediatR-based event bus. This includes the base Event class (with timestamp and MediatR integration), the Message base class (carrying MessageType and AggregateId), and the StoredEvent model for persisting event data. Additionally, the DomainNotification class and its handler were added to collect and manage domain notifications within the current lifecycle, providing methods to retrieve, check for, and clear notifications.

Christ3D.Domain.Core/Events · high confidence

Introduce student and order domain models with event sourcing and DTO mapping

The application layer now supports Student and Order entities with full CRUD operations and event sourcing capabilities. This includes new view models (StudentViewModel, OrderViewModel, AddressViewModel) and their corresponding domain commands, mapped via AutoMapper profiles for bidirectional conversion. A SqlEventStoreService and StudentHistory normalizer enable event-sourced history tracking for students, while the previous CustomerAppService and related models have been removed or refactored into the new Student and Order structures.

Christ3D.Application · high confidence

Behavioural changes

Migrate to .NET Core 3.1 and enable flexible authentication modes

The application has been upgraded to .NET Core 3.1, replacing the legacy \WebHost\ builder with the generic \Host\ builder and adopting the ASP.NET Core 3.1 routing middleware (\UseRouting\/\UseEndpoints\) instead of the older \UseMvc\. This change introduces the ability to switch between standard ASP.NET Core Identity and IdentityServer4 for authentication, controlled by the \Authentication:IdentityServer4:Enabled\ configuration flag. Additionally, the project now supports a configurable MySQL or SQL Server database backend, with the Dockerfile exposing port 4773.

Christ3D.UI.Web · high confidence

Removed .NET Core 2.1 build artifacts

The build output files for the .NET Core 2.1 target (including the dependency and runtime configuration files) have been removed from the repository. This cleanup removes the Debug/netcoreapp2.1 build artifacts, which are typically generated during the build process and should not be committed.

Christ3D.UI.Web/bin · high confidence

Removed build artifacts and generated files from the Christ3D.Infrastruct.Data project

The \Christ3D.Infrastruct.Data\ project has been cleaned of generated build artifacts, including the \bin/Debug/netcoreapp2.1\ output directory, the \obj\ directory containing NuGet cache files, MSBuild import targets, and auto-generated assembly info files. This change removes temporary and compiled files from the repository, ensuring that only source code and configuration files are tracked.

Christ3D.Infrastruct.Data · high confidence

Dependencies

Upgrade to .NET Core 3.1 and modernize dependencies

The project has been upgraded from .NET Core 2.1/2.2 to .NET Core 3.1 across all components, including the web, application, domain, and infrastructure layers. This migration is accompanied by updates to key libraries such as Entity Framework Core 3.1.3, AutoMapper 9.0.0, MediatR 8.0.1, and IdentityServer4 3.1.3, ensuring compatibility with the new runtime and leveraging modern package versions.

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

Lenses

  • Code Health 54 → 52 (-2.5)
  • Architecture 85 → 85 (+0.0)
  • Maturity 42 → 42 (+0.0)
  • Readiness 20 → 20 (+0.0)
  • Security 59 → 60 (+0.7)
  • Domain Modelling 98 (new)
  • Event-Driven 100 → 100 (+0.0)
  • Accessibility 57 → 54 (-2.9)

Resolved (12)

  • Bounded contexts not declared
  • Documentation Quality not included (check did not complete)
  • LLM evaluation failed
  • Medium CVE: IdentityServer4 3.1.3
  • Medium CVE: IdentityServer4 3.1.3
  • Medium CVE: Microsoft.Data.SqlClient 1.0.19269.1
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No exposed public API
  • dormant codebase — no living knowledge left to concentrate

New (36)

  • CommentedOutCode (Christ3D.Infrastruct/Mappings/StudentMap.cs)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Duplicated block (12 lines × 2) (Christ3D.Infrastruct.Identity/Models/ManageViewModels/ChangePasswordViewModel.cs)
  • Duplicated block (18–20 lines × 2) (Christ3D.Infrastruct/Context/EventStoreSQLContext.cs)
  • End-of-life runtime: .NET netcoreapp3.1
  • High IaC: DS-0002 (Christ3D.UI.Web/bin/Debug/netcoreapp3.1/Dockerfile)
  • Low IaC: DS-0026 (Christ3D.UI.Web/bin/Debug/netcoreapp3.1/Dockerfile)
  • Medium CVE: IdentityServer4 3.1.3
  • Medium IaC: CKV_DOCKER_2 (Christ3D.UI.Web/bin/Release/netcoreapp3.1/Dockerfile)
  • Medium IaC: CKV_DOCKER_3 (Christ3D.UI.Web/bin/Release/netcoreapp3.1/Dockerfile)
  • Medium IaC: WD-DOCKER-0003 (Christ3D.UI.Web/Dockerfile)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • MethodTooLong: InitIdentityDbMysql.Up (Christ3D.Infrastruct.Identity/Data/MigrationsMySql/20200510122055_InitIdentityDbMysql.cs)
  • WriteOnlyPrivateField (Christ3D.Application/Services/OrderAppService.cs)
  • WriteOnlyPrivateField (Christ3D.Domain/CommandHandlers/CommandHandler.cs)
  • WriteOnlyPrivateField (Christ3D.Domain/CommandHandlers/OrderCommandHandler.cs)
  • …and 16 more

API surface

  • Unchanged — 2 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

anjoy8/ChristDDD 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 e45025425725e8e9b30f974211d4152314e81a1f — 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.