Skip to content
CAI
Software that uses CAICheck a score

thangchung/coffeeshop-modular

46.1

Weak · 21 September 2026

3.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 is a .NET-based order management system for a coffee shop, built on Domain-Driven Design principles. It handles the full lifecycle of orders, from placement to fulfillment, using MediatR for command and event handling. The system integrates with external services via Kafka and Dapr for messaging, while using Redis for caching and EF Core for data persistence. It also includes infrastructure for authentication, synthetic data generation, and real-time updates via SignalR.

Features

Added C4 architecture diagrams for the Coffee Shop application

New C4 model diagrams have been added to the assets folder, providing visual documentation of the system's architecture. This includes a software system context diagram, a container diagram showing the .NET application and Postgres database, and a detailed component diagram illustrating internal interactions using MediatR and SignalR. These diagrams are generated from PlantUML source files and include the corresponding SVG renderings for documentation purposes.

assets · high confidence

Added Nomad job configuration and documentation for the Coffeeshop application

Users can now deploy the Coffeeshop application using Nomad. This includes a new \coffeeshop.nomad\ job file that defines the frontend and backend services, along with a \README.md\ providing setup instructions and troubleshooting tips for running Nomad in WSL2.

nomad · high confidence

Adds infrastructure for authentication, caching, and messaging

The N8T.Infrastructure library now includes new capabilities for application configuration, authentication, caching, and event bus messaging. AppOptions provides a structured way to manage app settings. The Auth module introduces a MediatR pipeline behavior that enforces JWT-based authorization on requests implementing IAuthRequest, supported by a SecurityContextAccessor for retrieving user identity and role claims. For caching, a Redis-based implementation (IRedisCacheService) is added with options for connection, timeouts, and key prefixing. Finally, the Bus module introduces an IEventBus abstraction with a Dapr implementation for publishing domain events to a pub/sub system, and a Kafka consumer background service for consuming and dispatching events via MediatR.

src/Libs/N8T.Infrastructure · high confidence

Initial project structure and tooling configuration

The repository is initialized with a .NET 7.0.100-preview.6 SDK configuration, a solution file defining the CoffeeShop, N8T.Core, N8T.Infrastructure, SignalRWebpack, and DataGen projects, and a docker-compose setup for PostgreSQL and the application. Additionally, a k6 script for load testing and a client.http file for API testing are added.

(repo-wide) · high confidence

Introduce DataGen service for synthetic data generation

A new DataGen service has been added to the codebase, providing a .NET 7 background worker that periodically generates synthetic order data. The service registers an HttpClient and a hosted Worker that sends random order commands to the CoffeeShopApi endpoint, enabling automated data seeding for development and testing.

src/DataGen · high confidence

Introduce domain models and event handlers for the CoffeeShop application

Added the core domain models for the CoffeeShop application, including \Order\, \LineItem\, and \BaristaItem\ entities, along with domain events such as \OrderIn\, \OrderUp\, and \OrderUpdate\. These changes introduce the foundational data structures and event handlers that manage the lifecycle of orders, from placement to fulfillment, supporting the application's business logic for handling barista and kitchen tasks.

src/coffeeshop · high confidence

Introduces Domain-Driven Design patterns and EF Core infrastructure for the N8T.Core library

The N8T.Core library now includes foundational Domain-Driven Design (DDD) patterns, including abstract base classes for entities and aggregate roots, a domain event system with a wrapper for MediatR, and a specification pattern for query composition. The N8T.Infrastructure.EfCore library provides the corresponding implementation, featuring a base DbContext that collects domain events, a generic repository implementation that applies specifications, and a MediatR pipeline behavior that wraps requests in a database transaction while publishing domain events.

src/Libs/N8T.Core · high confidence

Dependencies

Initial project setup with .NET 7.0 and key libraries

The project is initialized with a .NET 7.0 target framework across multiple components, including the DataGen, N8T.Core, N8T.Infrastructure.EfCore, N8T.Infrastructure, and CoffeeShop projects. This includes adding core dependencies such as MediatR, FluentValidation, Entity Framework Core, and various Microsoft.Extensions packages. Additionally, the SignalRWebpack project is set up with TypeScript, Webpack, and the @microsoft/signalr library for real-time communication.

(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

Score

  • CAI 46 → 46 (+0.1)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 69 → 68 (-0.6)
  • Architecture 83 → 83 (+0.0)
  • Maturity 55 → 55 (+0.0)
  • Readiness 28 → 28 (+0.4)
  • Security 59 → 59 (-0.2)
  • Domain Modelling 70 → 70 (-0.5)
  • Event-Driven 100 → 100 (+0.0)
  • Performance 73 → 73 (+0.0)

Resolved (26)

  • Bounded contexts not declared
  • Build did not complete in the analyzer
  • Critical CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High vulnerability: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • Medium CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • Medium CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • Medium CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • Medium CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • Medium CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • …and 6 more

New (50)

  • Critical CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (10 lines × 2) (src/Libs/N8T.Core/Specification/ISpecification.cs)
  • Duplicated block (5 lines × 2) (src/Libs/N8T.Core/Specification/GridSpecificationBase.cs)
  • End-of-life runtime: .NET net7.0
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High CVE: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • High vulnerability: [GHSA redacted] (src/SignalRWebpack/package-lock.json)
  • …and 30 more

API surface

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

thangchung/coffeeshop-modular 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 f6642241095197a9bca6b663cd52ac666ec65304 — 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.