Skip to content
CAI
Software that uses CAICheck a score

baratgabor/MyWarehouse

49.6

Weak · 21 September 2026

3.9k

lines of production code

C#

with TypeScript

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

MyWarehouse is a full-stack warehouse management system built on Clean Architecture principles, featuring a .NET 6 backend and an Angular 11 frontend. The system enables users to manage partners, products, and transactions through a RESTful API secured by JWT authentication. It supports core inventory operations including stock tracking, currency conversion, and transactional data persistence via Entity Framework Core.

Features

Add TokenModel for authentication tokens

A new TokenModel record has been introduced in the Infrastructure layer to represent authentication tokens. This model encapsulates the token type, access token string, and expiration time, and provides a method to calculate the remaining lifetime in seconds, supporting the backend's authentication flow.

Infrastructure · high confidence

Add backend authentication with JWT and external login support

The backend now supports user sign-in via local credentials and external identity providers (currently Google). A new authentication infrastructure layer was added, including a custom \MySignInResult\ enum, a \SignInData\ model, and services for generating JWT access tokens (\JwtTokenService\) and verifying external authentication tokens (\ExternalAuthenticationVerifier\). The \UserService\ handles local username/password sign-in, while \ExternalSignInService\ processes external provider tokens to issue internal JWTs. Configuration is managed via \AuthenticationSettings\ and \ExternalAuthenticationSettings\, with startup logic registering the necessary DI services and middleware.

src/Infrastructure/Authentication · high confidence

Add product management and stock summary queries

The application now supports full CRUD operations for products (create, read, update, delete) via new command and query handlers. Specifically, users can create, update, and delete products, as well as retrieve product details and lists. Additionally, new endpoints provide stock summaries, including total product count, total stock quantity, total stock mass, and total stock value.

src/Application/Products · high confidence

Added authorization constants and startup configuration

The authorization layer now includes new files defining claim and policy name constants (KnownClaims.cs, PolicyNames.cs) and a startup registration point (Startup.cs). These changes provide the foundational structure for the authorization system, though the actual implementation is marked as a TODO.

src/Infrastructure/Authorization · medium confidence

Added brand assets to the WebUI

The WebUI now includes its own assets directory, containing the MyWarehouse logo (MyWarehouseLogo.svg) and a favicon (favicon.svg). These SVG files provide the visual identity for the application's header and browser tab.

src/WebUI/src/assets · high confidence

Added e2e tests and transaction creation/viewing components

The WebUI now includes end-to-end tests for the application's initial state, verifying the welcome message and absence of browser errors. Additionally, new components and models have been introduced to support creating new transactions (selecting partners and products, managing line items) and viewing existing transaction details, including support for foreign currency display via exchange rates.

src/WebUI/e2e, src/WebUI/src/app/transactions/useCases/createNew, src/WebUI/src/app/transactions/useCases/viewExisting · high confidence

Implemented repository pattern and unit of work for data access

Added a generic base repository (RepositoryBaseEF) and concrete implementations for Partners, Products, and Transactions, along with a UnitOfWork class that manages database transactions and repository instances. This introduces a new data access layer that supports transactional operations and standardized querying, replacing previous ad-hoc database interactions.

src/Infrastructure/ApplicationDependencies · high confidence

Initial database persistence layer and database seeding

The application now includes a complete Entity Framework Core persistence layer, introducing an \ApplicationDbContext\ that maps domain entities (Partners, Products, Transactions) and Identity tables to the database. This includes the initial migration script and a database model snapshot. Additionally, a \DbInitializer\ is added to automatically apply migrations and seed default users and sample data (partners, products, and transactions) at startup, controlled by \AutoMigrate\ and \AutoSeed\ configuration settings.

src/Infrastructure/Persistence · high confidence

Initial domain and API layer implementation

The application now includes a complete domain model with entities for Products, Partners, and Transactions, along with a Web API layer exposing CRUD endpoints for these resources. Authentication and authorization are implemented via an AccountController handling login and external sign-in, while Swagger is configured with OAuth2 support for API documentation and testing.

src/WebApi · high confidence

Initial frontend application structure and authentication UI

The WebUI frontend is introduced with a complete application shell, including a header with navigation and user info, a footer, and an index page that conditionally displays either a login form or the main application content based on the user's authentication state. The login form supports both standard username/password authentication and Google OAuth, while the navbar displays the logged-in user's details and provides a modal for account information and sign-out. Routing is configured to direct the root path to the index component, and an HTTP interceptor automatically attaches the authentication token to requests for the API.

src/WebUI/src/app · high confidence

Initial project scaffolding and documentation

The repository was initialized with core project infrastructure, including the solution file (MyWarehouse.sln) defining the backend and frontend projects, along with an .editorconfig for C\# diagnostics. The project is licensed under the MIT License, and a comprehensive README.md was added, detailing the architecture (Clean Architecture, Vertical Slicing, DDD), technologies (ASP.NET Core, Angular, MediatR), and setup instructions.

(repo-wide) · high confidence

Initial setup of the MyWareHouse-Web frontend project

The src/WebUI directory now contains the foundational configuration files for the MyWareHouse-Web Angular application. This includes the Angular workspace configuration (angular.json), TypeScript compiler settings (tsconfig files), linting rules (tslint.json), and test runner setup (karma.conf.js). These files establish the build, test, and code-quality standards for the frontend, enabling development, testing, and production builds of the web interface.

src/WebUI · high confidence

Introduce Azure Key Vault integration and ASP.NET Core Identity scaffolding

The application now includes infrastructure for integrating with Azure Key Vault, allowing configuration to be loaded from a specified vault URL using DefaultAzureCredential. Additionally, ASP.NET Core Identity is configured with a custom ApplicationUser model, unique email requirements, and Entity Framework Core stores, establishing the foundation for user authentication and authorization.

src/Infrastructure/AzureKeyVault, src/Infrastructure/Identity · high confidence

Introduce transaction management and application layer infrastructure

The application layer now includes a comprehensive set of interfaces and behaviors to support transaction processing and data access. This includes a new IUnitOfWork interface with transaction support (BeginTransactionAsync, CommitTransactionAsync, RollbackTransactionAsync) and specific repositories for Partners, Products, and Transactions. A generic IRepository\<T\> and ListQueryModel for paginated list queries are also added. Additionally, the application now features a request validation behavior that enforces FluentValidation rules and an exception logging behavior that captures validation and general exceptions. The CreateTransaction command and its validator are introduced, which validate stock levels and ensure sufficient inventory before recording sales or procurement transactions.

src/Application/Common · high confidence

Introduces partner and transaction management capabilities with new domain models and application handlers

Users can now create, read, update, and delete partners, as well as generate and view transaction details. This change adds the core domain value objects for Money, Mass, and Currency, alongside application layer commands and queries for managing partners and transactions, supported by sample data generators for testing.

(repo-wide) · high confidence

Behavioural changes

Add environment configuration files for API versioning support

The frontend now includes environment configuration files (environment.ts and environment.prod.ts) that define the API base URL and version (v1) for both development and production builds. This supports the backend's new versioning capability by ensuring the frontend targets the correct API endpoint and version in each environment.

src/WebUI/src/environments · medium confidence

Test coverage

Added integration and unit tests for the application layer; Added unit tests for ListQueryModel and InputValidationException; Added unit tests for Web API controllers and services; Added unit tests for domain value objects and entities.

Dependencies

Upgrade to .NET 6 and Angular 11

The backend projects have been upgraded to .NET 6 (net6.0), and the frontend WebUI project has been updated to Angular 11 (including @angular/core and related packages at version 11.0.9). This includes adding new .csproj files for the Application, Domain, Infrastructure, SampleData, and WebApi layers, as well as new test project configurations for integration and unit tests using .NET 6. The frontend package.json and lockfile reflect the Angular 11 tooling and dependencies.

(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 51 → 50 (-0.9)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 78 → 72 (-6.4)
  • Architecture 79 → 78 (-1.2)
  • Maturity 58 → 55 (-2.8)
  • Readiness 62 → 62 (-0.0)
  • Security 59 → 63 (+3.9)
  • Accessibility 38 → 37 (-0.8)

Resolved (93)

  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/WebUI/package-lock.json)
  • Critical vulnerability: [GHSA redacted] (src/WebUI/package-lock.json)
  • Duplicated block (13 lines × 2) (src/Application/Products/CreateProduct/CreateProductCommandValidator.cs)
  • Duplicated block (8 lines × 2) (src/Application/Partners/CreatePartner/CreatePartnerCommandValidator.cs)
  • …and 73 more

New (175)

  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • CoverageExclusion (src/Infrastructure/ApplicationDependencies/Startup.cs)
  • CoverageExclusion (src/Infrastructure/Authentication/Startup.cs)
  • CoverageExclusion (src/Infrastructure/Authorization/Startup.cs)
  • CoverageExclusion (src/Infrastructure/AzureKeyVault/Startup.cs)
  • CoverageExclusion (src/Infrastructure/Identity/Startup.cs)
  • CoverageExclusion (src/Infrastructure/Persistence/Startup.cs)
  • CoverageExclusion (src/WebApi/API/ApiStartup.cs)
  • CoverageExclusion (src/WebApi/Authentication/AuthenticationStartup.cs)
  • CoverageExclusion (src/WebApi/CORS/CorsStartup.cs)
  • CoverageExclusion (src/WebApi/ErrorHandling/ErrorHandlingStartup.cs)
  • CoverageExclusion (src/WebApi/ErrorHandling/Filters/ExceptionMappingFilter.cs)
  • CoverageExclusion (src/WebApi/Logging/Helper/LogHelper.cs)
  • CoverageExclusion (src/WebApi/Logging/LoggingStartup.cs)
  • CoverageExclusion (src/WebApi/Program.cs)
  • CoverageExclusion (src/WebApi/Startup.cs)
  • CoverageExclusion (src/WebApi/Swagger/Configuration/ConfigureSwaggerUIOptions.cs)
  • CoverageExclusion (src/WebApi/Swagger/Filters/SwaggerAuthorizeFilter.cs)
  • CoverageExclusion (src/WebApi/Swagger/Filters/SwaggerGroupAttribute.cs)
  • …and 155 more

API surface

  • Unchanged — 19 HTTP endpoints

Architecture

  • Unchanged — 2 containers · 3 contexts · 3 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

baratgabor/MyWarehouse 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 de151d03862a3f2d3bcf096076519f31e958913e — 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.