referbruv/MailingNinja
40.5
Weak · 21 September 2026
674
lines of production code
C#
primary language
4
measurements over time
What this system is
MailingNinja is a .NET 6 ASP.NET Core application that manages a 'Ninja' domain with a SQLite-backed data layer. It provides services for generating PDF reports and sending emails with HTML content and attachments. The system utilizes CQRS with MediatR and implements a repository pattern for data access.
Features
Add email, PDF, and template services to the application
Users can now generate PDF reports and send email reports with HTML content, header images, and attachments. The application registers new services for mailing (using MailKit), PDF conversion (using DinkToPdf), and template rendering, and exposes these capabilities through the Home controller's 'Export to PDF' and 'Send Report to Mail' actions.
MailingNinja.Core, MailingNinja.Web · high confidence
Initial commit: adds solution, license, and documentation
The repository is initialized with a .NET 6 ASP.NET Core solution (MailingNinja) that demonstrates sending emails with attachments using MailKit and MimeKit. This initial commit adds the solution file (MailingNinja.sln) defining the project structure (Core, Infrastructure, Web), a MIT license (LICENSE.md), a .gitignore, and a comprehensive README.md explaining the boilerplate's features such as Razor view rendering, PDF generation with DinkToPdf, and CQRS with MediatR.
(repo-wide) · high confidence
Initial database and infrastructure setup for the Ninja domain
Added the core data access layer for the Ninja entity, including a MediatR query handler (GetAllForGivenDate) that retrieves Ninja records by creation date. The infrastructure layer now provides a SQLite-backed Entity Framework Core context, a generic repository pattern, and a Unit of Work implementation, all registered in the service collection. Initial database migrations and model snapshots for the Ninjas table have also been added to support the new data model.
MailingNinja.Core/Handlers/Ninjas, MailingNinja.Infrastructure, MailingNinja.Web/wwwroot · high confidence
Behavioural changes
Removed legacy ASP.NET Core 2.2 project structure
The application's default MVC scaffolding and supporting assets have been removed. This includes the HomeController, TemplateController, and associated Razor views (Home, Privacy, Error, Templates), as well as the in-memory data providers (ReaderStore, User, Roles) and the Bootstrap 4.3.1 CSS files. These files are no longer part of the application.
(repo-wide) · high confidence
Dependencies
Migrated to .NET 6.0 and updated dependencies
The project has been upgraded to .NET 6.0, replacing the previous .NET Core 3.1 target. This includes adding new package references for libraries such as AutoMapper, DinkToPdf, MailKit, MediatR, FluentValidation, and MimeKit, alongside updated Entity Framework Core dependencies.
(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
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 42 → 40 (-1.1)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 85 → 85 (+0.0)
- Architecture 86 → 86 (+0.0)
- Maturity 47 → 47 (+0.0)
- Readiness 35 → 35 (+0.0)
- Security 36 → 33 (-2.9)
- Accessibility 51 → 51 (+0.2)
Resolved (9)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium CVE: MimeKit 3.0.0
- No exposed public API
- 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
- redundant comment (MailingNinja.Web/Program.cs)
New (10)
- End-of-life runtime: .NET net6.0
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- No dependency advisory monitoring
- The domain entity uses 'Added' for the creation timestamp, while the DTO uses 'AddedOn'. This is a minor semantic drift where the DTO adds a preposition to clarify it is a date/time, but the underlying concept is identical.
- The domain entity uses 'LastModified' for the update timestamp, while the DTO uses 'UpdatedOn'. Similar to the 'Added' vs 'AddedOn' case, this represents inconsistent naming for the same audit concept.
- Workflow token permissions not restricted
Architecture
- Unchanged — 2 containers · 0 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
referbruv/MailingNinja 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 80fd9a36f62f034fa2bcc779310c24fe7af8d4d9 — 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.