thisisnabi/Club
42.9
Weak · 21 September 2026
364
lines of production code
C#
primary language
4
measurements over time
What this system is
This system is a multi-tenant ASP.NET Core web API service for managing user profiles and clubs. It implements a Domain-Driven Design architecture, utilizing a clean separation between the API, application, domain, and infrastructure layers. The core functionality allows users to create and manage their profiles and associated clubs, with domain events handling related state updates.
Features
Add Club.APIs ASP.NET Core Web API project
Introduces the Club.APIs project, a new ASP.NET Core Web API entry point. The project is configured with standard ASP.NET Core middleware (controllers, Swagger, HTTPS redirection) and registers the application layer services, providing the HTTP surface for the domain.
src/Club.APIs · high confidence
Added domain building blocks for entity and aggregate root patterns
The Club.BuildingBlocks project now includes foundational domain classes: an abstract EntityBase with identity and equality logic, an AggregateRootBase that tracks domain events, and supporting interfaces (IAggregateRoot, IDomainEvent) and a ValueObject base class. These provide the core infrastructure for implementing domain-driven design patterns within the application.
Club.BuildingBlocks, src/Club.BuildingBlocks · high confidence
Added placeholder class in Club.Infrastructure
A new placeholder class, Class1, was added to the Club.Infrastructure namespace. This appears to be an initial project setup step, providing a base structure for future infrastructure code.
src/Club.Infrastructure · medium confidence
Initial project structure and documentation for Club Service
The repository was initialized with a new solution file defining the project structure, including domains, applications, infrastructure, and test projects. The README was updated to describe the Club Service as an ASP.NET Core application using VSA and DDD for multi-tenant scenarios, and a link to a Live Coding Meet was added.
(repo-wide) · high confidence
Introduce profile and club management capabilities
Users can now create and manage their profiles, including updating their bio and adding social media links. Additionally, users can create new clubs associated with their profile, which triggers an internal event to update the profile's club list.
Club.Domain, src/Club.Application, src/Club.Domain · high confidence
Test coverage
Initial test scaffolding for Club project
Added empty unit test classes (UnitTest1) in the functional, integration, and unit test projects, establishing the baseline test structure for the application.
tests · high confidence
Dependencies
Initial project structure and test suite setup
The project is initialized with a .NET 8.0 solution containing multiple application layers (API, Application, Domain, Infrastructure, and Building Blocks) along with a comprehensive test suite. The test projects (Unit, Integration, and Functional) are configured with xUnit 2.5.3, Microsoft.NET.Test.Sdk 17.8.0, and coverlet.collector 6.0.0. The API project includes Swashbuckle.AspNetCore 6.4.0 for documentation, while the Application layer references MediatR 12.2.0 for command/query handling.
(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 43 → 43 (-0.4)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 87 → 87 (+0.0)
- Architecture 99 → 99 (+0.0)
- Maturity 52 → 52 (+0.0)
- Readiness 27 → 25 (-1.4)
- Security 43 → 43 (+0.4)
- Domain Modelling 77 → 80 (+2.5)
- Event-Driven 100 → 100 (+0.0)
Resolved (10)
- Bounded contexts not declared
- Inconsistent casing for property name: 'clubIds' (camelCase) vs other properties like 'Name', 'Bio', 'IsPublic' (PascalCase).
- Inconsistent property naming for timestamps: 'Createdon' (lowercase 'o') vs 'OccurredOn' (PascalCase).
- No exposed public API
- Typo in interface name: 'IClubRepositpry' instead of 'IClubRepository'.
- XML-doc coverage: Club.APIs (src/Club.APIs/Club.APIs.csproj)
- early-stage repository — too little history to judge knowledge freshness
- git history depth insufficient
- git history depth insufficient
- single-maintainer — knowledge-concentration (bus factor) risk
New (10)
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Documentation: no usage examples (README.md)
- Inconsistent casing for the 'clubIds' property. While other properties in the Profile class (Name, Bio, Socials, IsPublic) follow PascalCase, 'clubIds' is camelCase. This breaks the naming convention for the type.
- Inconsistent naming for the timestamp property. 'Club.Createdon' uses a camelCase suffix 'on' (likely a typo for 'CreatedOn' or 'CreatedAt'), whereas 'ClubCreatedEvent.OccurredOn' and 'IDomainEvent.OccurredOn' use the standard PascalCase 'OccurredOn'.
- No test project references Club.APIs (src/Club.APIs/Club.APIs.csproj)
- Test project verifies nothing: Club.FunctionalTests (tests/Club.FunctionalTests/UnitTest1.cs)
- Test project verifies nothing: Club.IntegrationTests (tests/Club.IntegrationTests/UnitTest1.cs)
- Test project verifies nothing: Club.UnitTests (tests/Club.UnitTests/UnitTest1.cs)
- Typo in interface name: 'IClubRepositpry' is used instead of the standard 'IClubRepository'. This typo is propagated to the interface itself and its methods.
Architecture
- Unchanged — 1 containers · 2 contexts · 1 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
thisisnabi/Club 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 feee7f9065e1f4df617050c2051c73b53e2f6edf — 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.