matt-bentley/CleanArchitecture
52.8
Adequate · 20 September 2026
1.6k
lines of production code
C#
with TypeScript
4
measurements over time
What this system is
This system is a Clean Architecture solution template designed to scaffold full-stack applications using ASP.NET 8 and Angular 19. It implements a domain-driven design with CQRS and event-driven capabilities, leveraging MediatR for command handling and RabbitMQ for asynchronous messaging. The template provides a complete development environment including containerized infrastructure via Docker and Helm, along with a comprehensive testing suite covering unit, integration, and architectural rules.
Features
Added project structure for Helm charts and CI/CD pipelines
New Visual Studio shared project files have been added to organize infrastructure-as-code assets. The \charts\ directory now includes a shared project referencing Helm chart definitions for the API and web services (including deployments, HPAs, database migration jobs, and values files), while the \pipelines\ directory contains a placeholder shared project with a README indicating it is the location for CI/CD pipeline code.
charts, pipelines · high confidence
Initial application-layer implementation with CQRS and event-driven capabilities
This change introduces the core application logic for the CleanArchitecture solution, establishing a Command-Query Responsibility Segregation (CQRS) structure using MediatR. It provides base abstractions for commands, queries, and handlers, alongside repository and unit-of-work interfaces for data access. The entry includes specific implementations for managing Weather Forecasts (create, read, update, delete) and Locations, utilizing AutoMapper for DTO mapping. Additionally, it implements an event-driven architecture where domain events (e.g., WeatherForecastCreated) trigger integration events published via a message bus, which are then consumed to handle side effects such as weather alerts.
src/CleanArchitecture.Application · high confidence
Initial domain model and infrastructure abstractions for Clean Architecture
This change introduces the core domain layer, including base abstractions for entities (AggregateRoot, EntityBase), domain events (DomainEvent), and guard clauses for input validation. It also defines specific domain entities and value objects for Locations (Location, Coordinates) and Weather Forecasts (WeatherForecast, Temperature), along with a domain event for forecast creation.
src/CleanArchitecture.Core · high confidence
Initial infrastructure layer for data persistence and domain events
This change introduces the initial implementation of the infrastructure layer, establishing the database context (WeatherContext) with Entity Framework Core configurations for Location and WeatherForecast entities. It registers the repository pattern and Unit of Work via Autofac, enabling generic data access and transaction management. Additionally, it implements a domain event dispatching mechanism that publishes events through MediatR before committing database changes, and includes a placeholder NotificationsService for logging weather alerts.
src/CleanArchitecture.Infrastructure · high confidence
Initial release of the Clean Architecture solution template
This change introduces the foundational structure for a new Clean Architecture and Domain-Driven Design solution template. It provides a complete project scaffold including an ASP.NET 8 REST API, an Angular 19 single-page application, and a RabbitMQ-based message bus for asynchronous event handling. The template also includes infrastructure for containerized development via Docker Compose (supporting SQL Server or PostgreSQL), code-first database migrations, and a comprehensive testing suite covering unit, API, architecture, and automated acceptance tests.
(repo-wide) · high confidence
Initial release of the CleanArchitecture API with location and weather forecast endpoints
The API now exposes REST endpoints for managing locations and weather forecasts, implemented via \LocationsController\ and \WeatherForecastsController\ which delegate to MediatR handlers. The service includes a global exception filter that returns structured error envelopes, supports both SQL Server and PostgreSQL databases via conditional compilation, and integrates with RabbitMQ for asynchronous event handling. Additionally, the API is configured with Swagger documentation, health checks, and HSTS security headers, and is ready for containerized deployment via the provided Dockerfile.
src/CleanArchitecture.Api · high confidence
Initial release of the CleanArchitecture.Web client and server
This entry introduces the initial implementation of the web application, featuring an Angular 12 client (located in ClientApp) with a Weather Forecast page that allows users to view, generate, and delete forecasts, and an ASP.NET Core 8.0 backend (Program.cs) that exposes the corresponding API endpoints. The setup includes a Dockerfile for containerization, a proxy configuration for local development, and standard project scaffolding files.
src/CleanArchitecture.Web · high confidence
Test coverage
Added acceptance, API, application, and architectural tests for the CleanArchitecture solution
This change introduces a comprehensive test suite across four new test projects. CleanArchitecture.AcceptanceTests adds Playwright-based UI tests for the Weather Forecast page, including navigation, generation, and location selection scenarios. CleanArchitecture.Api.Tests provides unit tests for the API controllers, covering weather forecasts, locations, health, and error handling. CleanArchitecture.Application.Tests validates domain event handlers and integration events. Finally, CleanArchitecture.Arch.Tests enforces architectural rules, ensuring controllers, CQRS commands/queries, and mapping profiles adhere to naming and namespace conventions.
tests · high confidence
Dependencies
Initial project scaffolding with .NET 8 and Angular 19
The solution is initialized with a new set of project files targeting .NET 8.0 LTS for the backend and Angular 19 for the frontend client. The backend layers (API, Application, Core, Hosting, Infrastructure) reference .NET 8 packages including Entity Framework Core 8, MediatR 12, and MiniTransit 1.1 for RabbitMQ integration. The frontend client (CleanArchitecture.Web/ClientApp) is configured with Angular 19.2.9, Angular DevKit 19.2.10, and TypeScript 5.8.3. Test projects are also scaffolded using .NET 8, xUnit 2.9.3, and various testing utilities.
(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
Baseline
- First survey — no prior run to compare against. CAI 53.
Lenses
- Code Health 83
- Architecture 85
- Maturity 65
- Readiness 38
- Security 85
- Domain Modelling 57
- Event-Driven 100
- Accessibility 69
Changes since last survey
- 24 commits — 19 feature/other, 5 fixes
By area
- (root) — 9 commits
- src/CleanArchitecture.Web — 6 commits
- src/CleanArchitecture.Application — 2 commits
- (repo) — 1 commit
- charts/api — 1 commit
- src/CleanArchitecture.Api — 1 commit
- src/CleanArchitecture.Core — 1 commit
- src/CleanArchitecture.Infrastructure — 1 commit
- src/CleanArchitecture.Migrations — 1 commit
- tests/CleanArchitecture.AcceptanceTests — 1 commit
Notable commits
- fix: fix format issues
- fix: fix readme links
- fix: fix template install instructions
- fix: fixed WeatherForecast entity
- fix: fixed all links
- change: Fix readme typo
- change: Initial commit
- change: Merge pull request #1 from erjanmx/fix-readme-typo
- change: add enforced code styles
- change: added IaC and Dockerfiles
- change: added asynchronous event handling and RabbitMQ
- change: added code styles
- change: added template
- change: change build configuration
- change: initial
- change: remove angular SSR architecture
- change: update README table of contents
- change: update package-lock.json
- change: upgrade to latest version of MiniTransit
- change: upgraded to .NET 8.0 LTS
- …and 4 more
API surface
- 6 HTTP endpoints (baseline)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
matt-bentley/CleanArchitecture 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 20 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 e92a0bb774b33c9e581ac3168507c8d4090466e5 — 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.