ale206/ModularNet
50.6
Adequate · 21 September 2026
3.4k
lines of production code
C#
primary language
4
measurements over time
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.