moritzmla/Reddnet
35.4
Weak · 21 September 2026
1.5k
lines of production code
C#
primary language
4
measurements over time
What this system is
This system is a community management application that allows users to create and manage communities, posts, and replies. It is built on .NET 6 and utilizes Entity Framework Core for data persistence, with a structured approach to error handling via a Result type. The architecture separates concerns across application, data access, domain, and web layers, supporting full CRUD operations for community and post entities.
Features
Introduced Result type for validation and error handling
Added a new \Result\ and \Result\<T\>\ record in the application layer to standardize validation and error handling. This provides a consistent way to represent success or failure states with associated messages, replacing ad-hoc error propagation with a structured approach for application logic.
Reddnet.Application, Source · high confidence
Introduces community and post management with full CRUD operations
Users can now create, read, update, and delete communities and posts, as well as create and delete replies. The application adds a logging pipeline behavior for MediatR, implements domain entities (Community, Post, Reply, User) with audit tracking, and configures Entity Framework Core mappings. The web layer includes Razor Pages for account login/registration, community creation/editing/deletion, and post management, all wired through dependency injection.
(repo-wide) · high confidence
Dependencies
Upgrade to .NET 6
All project files in the solution have been updated to target .NET 6.0. This includes the Reddnet.Application, Reddnet.DataAccess, Reddnet.Domain, and Reddnet.Web projects, which now specify net6.0 as their target framework. Additionally, several NuGet packages have been added or updated to versions compatible with .NET 6, such as Microsoft.EntityFrameworkCore 6.0.1 and MediatR 9.0.0.
(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 35 → 35 (-0.1)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 55 → 55 (+0.0)
- Architecture 82 → 82 (+0.0)
- Maturity 55 → 55 (+0.0)
- Readiness 22 → 23 (+0.6)
- Security 47 → 48 (+1.1)
- Accessibility 40 → 38 (-2.1)
Resolved (26)
- High CVE: MessagePack 2.1.152
- High CVE: MessagePack 2.1.152
- High CVE: NuGet.Protocol 5.11.0
- High CVE: NuGet.Protocol 5.11.0
- Inconsistent naming for Community commands. Some use 'Community' while others use 'Subreddit' (see above). Also, the command names are consistent within the Community namespace, but inconsistent with the Query/Handler names in the same namespace.
- Inconsistent naming for Post commands and handlers. 'Post' is used consistently here, which is good. However, compare with Community/Reply naming.
- Inconsistent naming for Post queries. Some use 'GetPosts' (plural) while others use 'GetPost' (singular) or 'GetPostById'. Also, 'GetPostsByFilter' vs 'GetPostsByUserName' vs 'GetPostById' shows a mix of query types.
- Inconsistent naming for page models. 'EditModel', 'CreateModel', 'DeleteModel' are used. This is consistent within each entity's namespace.
- Inconsistent naming for the current user context. 'User' is used in the Authorization namespace, but 'UserEntity' is used for the domain model. Additionally, 'User' is used for the current user context, while 'IUser' and 'IUserEntity' are used for interfaces and domain models respectively.
- Inconsistent terminology for 'Community' entities. Some handlers/queries use 'Subreddit' in their name, while others (e.g., CreateCommunityCommand, GetAllCommunitiesQuery) use 'Community'.
- Low CVE: NuGet.Packaging 5.11.0
- Low CVE: NuGet.Protocol 5.11.0
- Medium CVE: MessagePack 2.1.152
- Medium CVE: MessagePack 2.1.152
- Medium CVE: MessagePack 2.1.152
- Medium CVE: MessagePack 2.1.152
- Medium CVE: MessagePack 2.1.152
- Medium CVE: MessagePack 2.1.152
- Medium CVE: MessagePack 2.1.152
- Medium CVE: MessagePack 2.1.152
- …and 6 more
New (8)
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Documentation: no usage examples (README.md)
- End-of-life runtime: .NET net6.0
- High CVE: MessagePack 2.1.152
- High CVE: NuGet.Protocol 5.11.0
- The codebase uses 'Subreddit' and 'Community' interchangeably for the same domain concept. Handlers and Commands use 'Community' (e.g., CreateCommunityCommand), while other Handlers and Queries use 'Subreddit' (e.g., CreateSubredditHandler, GetSubredditByNameHandler). This creates a confusing split in terminology within the same namespace/module.
- The identifier property for a user is named 'Id' in the interface IUser but 'UserId' in the interface IUserEntity. While one is an interface and one is an entity contract, the inconsistency in naming the primary key across the domain and application interfaces is notable.
Architecture
- Unchanged — 2 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
moritzmla/Reddnet 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 8a3a05024cb245bd4aa10b7dd615e687a436ba4f — 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.