Skip to content
CAI
Software that uses CAICheck a score

ale206/ModularNet

50.6

Adequate · 21 September 2026

3.4k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Database schema for email, logs, and user tables added

The database schema file now includes the complete structure for the \email\, \modular\_net\_logs\, and \user\ tables. This establishes the persistent storage definitions for user accounts, email records, and system logs, providing the underlying data model for these core application features.

database · high confidence

Initial domain model and shared utilities for ModularNet

The ModularNet.Domain and ModularNet.Shared layers now include the foundational domain entities, request models, and shared helper classes. This introduces core data structures such as User, BaseEntity, and ModularNetAudit, alongside request DTOs for authentication flows (SignIn, SignUp, ResetPassword) and configuration settings. Additionally, shared utility classes for date manipulation and enum handling have been added to support these domain operations.

ModularNet.Domain, src/ModularNet.Domain, src/ModularNet.Shared · high confidence

Initial release of the ModularNet API with .NET 10 support

The ModularNet API is introduced with support for .NET 10, featuring a new service registration extension method (ApiServiceRegistration) that consolidates API-specific dependency injection. The update includes the addition of several new controllers (Auth, EmailVerifier, HealthChecks, Logs, Secrets, Users, UsersSettings) and middleware (FirebaseAuthentication, UserIdExtraction) to handle authentication, user management, and health checks. Email templates for password reset and email verification are also added to support user communication flows.

src/ModularNet.Api · high confidence

Introduce infrastructure layer with repository and service implementations

The infrastructure layer now provides concrete implementations for data access and external service integration. This includes repositories for user management, email, logs, audits, and settings, alongside factories for database and Redis connections, a secrets repository for Azure Key Vault, and an authentication service wrapping Firebase. These are registered via a new \InfrastructureServiceRegistration\ extension method that wires up the dependency injection container.

src/ModularNet.Infrastructure · high confidence

Behavioural changes

Centralized business service registration and manager implementations

The business layer now registers all manager services (AppSettings, Audits, Auth, Cache, Email, EmailVerification, Encryption, HealthChecks, Logs, Secrets, Users, UsersSettings, and WebAppConfigs) via a new \BusinessServiceRegistration\ extension method. Each manager is wired to its corresponding interface (e.g., \IAuthManager\ to \AuthManager\), enabling the application to resolve these dependencies through the standard .NET DI container.

src/ModularNet.Business · high confidence

Test coverage

Initial test suite for ModularNet

Added integration and unit tests for the ModularNet application. The integration tests in \src/ModularNet.IntegrationTests\ cover configuration, email services, encryption, app settings, and caching (both in-memory and Redis). The unit tests in \src/ModularNet.UnitTests\ verify the behavior of the cache manager, encrypt manager, and users manager.

src/ModularNet.IntegrationTests · high confidence

Dependencies

Upgrade to .NET 10

All project files in the solution have been updated to target .NET 10.0. This upgrade brings the application and its associated libraries (API, business, domain, infrastructure, shared, and test projects) to the latest .NET runtime, ensuring compatibility with the newest framework features and performance improvements.

(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

Score

  • CAI 54 → 51 (-3.3)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 66 → 65 (-1.0)
  • Architecture 82 → 82 (+0.0)
  • Maturity 73 → 73 (+0.0)
  • Readiness 34 → 31 (-2.3)
  • Security 87 → 66 (-21.1)

Resolved (13)

  • Bounded contexts not declared
  • Coverage not measured — analyzer environment
  • Duplicated block (15 lines × 2) (src/ModularNet.Api/Controllers/HealthChecksController.cs)
  • LLM evaluation failed
  • No exposed public API
  • The Redis connection factory is implemented in a class named 'RedisConnectionFactory' but also has an interface 'IRedisConnectionFactory'. This is standard, but the implementation class name matches the interface name exactly, which is fine, however, check if other factories follow this pattern.
  • The architecture outline lists six layers but only Domain is fully described; Application, Business Logic, Infrastructure, Shared, and External Systems sections exist in the outline and are not shown. (README.md)
  • The concept of email service operations is split between a 'Repository' and a 'Manager'. One handles persistence/storage of email entities, the other handles the business logic/sending.
  • The concept of managing secrets is split between a 'Repository' and a 'Manager'. One is infrastructure-level (repository), the other is business-level (manager), but both handle secret retrieval/caching.
  • early-stage repository — too few commits for a meaningful bus factor
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • git history depth insufficient

New (11)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (19 lines × 2) (src/ModularNet.Api/Controllers/HealthChecksController.cs)
  • Duplicated block (5 lines × 2) (src/ModularNet.Domain/Entities/ModularNetLog.cs)
  • Duplicated block (8 lines × 2) (src/ModularNet.Business/Implementations/EncryptManager.cs)
  • Inconsistent boolean property naming convention. While MemoryCacheEnabled and RedisCacheEnabled follow the standard <Feature>Enabled pattern, IsEmailServiceEnabled uses the Is<Feature>Enabled pattern. For consistency within the same entity, the Is prefix should be removed to match the other cache configuration properties.
  • Leaked secret: high-entropy-secret (src/ModularNet.Api/modularnet-firebase-adminsdk-dev.json)
  • WriteOnlyPrivateField (src/ModularNet.IntegrationTests/Tests/AppSettingsManagerTests.cs)
  • redundant comment (src/ModularNet.Api/ApiServiceRegistration.cs)
  • redundant comment (src/ModularNet.Api/Controllers/AuthController.cs)
  • redundant comment (src/ModularNet.UnitTests/CacheManagerTests.cs)

API surface

  • Unchanged — 8 HTTP endpoints

Architecture

  • Unchanged — 3 containers · 1 contexts · 0 edges

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

Survey your own repository

ale206/ModularNet 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 25a9b58ae67bc0b0dba4d95eeccb73ef54abe348 — 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.