Skip to content
CAI
Software that uses CAICheck a score

KostaVlev/Wilson

38.2

Weak · 21 September 2026

9.7k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Wilson is an Enterprise Resource Planning (ERP) system that manages core business operations including accounting, human resources, and project management. The system provides domain-specific modules for handling invoices, bills, and payroll calculations, alongside tools for managing company data, employee schedules, and user administration. It utilizes a Domain-Driven Design architecture with a generic repository pattern to manage database interactions and enforce business logic across these functional areas.

Features

Add payroll management and user administration features

Introduced the Accounting area with a Payroll controller and service that allow administrators to view, filter, and process employee paychecks and payments. Added a Control Panel in the Admin area to register new users, list all users, and edit user roles and phone numbers. The change also includes the necessary view models, AutoMapper configurations, and Razor views to support these new capabilities.

Web · high confidence

Initial commit for the Accounting data layer

The Wilson.Accounting.Data project is introduced, establishing the foundational structure for the accounting module. This includes SqlServerModelBuilderExtensions, which provides a custom extension method to configure decimal column precision for SQL Server, alongside standard assembly metadata and IIS Express launch settings for local development.

Accounting/Wilson.Accounting.Data/Extensions, Accounting/Wilson.Accounting.Data/Properties · high confidence

Initial data access layer for the Companies module

The Wilson.Companies.Data project now provides the foundational data access infrastructure for the Companies module. This includes the CompanyDbContext for database interactions, a generic Repository pattern implementation for data operations, and entity type configurations that map domain entities to the database schema. The change also introduces a migration script to create the necessary database tables and relationships for companies, employees, inquiries, and related entities.

Companies/Wilson.Companies.Data · high confidence

Initial database mapping for the Accounting module entities

The Accounting module's data layer now includes Entity Framework Core type configurations for key domain entities, including Bill, Company, Employee, Invoice, InvoiceItem, Item, Paycheck, Project, Storehouse, and StorehouseItem. These new configuration classes define primary keys, property constraints (such as max lengths and precision), and one-to-one or one-to-many relationships, establishing the database schema for the accounting domain.

Accounting/Wilson.Accounting.Data/Configurations · high confidence

Initial project structure and documentation

The Wilson ERP system is introduced with its initial solution file (Wilson.sln) defining the core, data, web, and test projects, alongside an AppVeyor CI configuration for automated builds and tests. Documentation is added via an updated README.md providing an overview, installation instructions, and contributor guidelines, while an INSTALL.md file outlines the initial setup steps.

(repo-wide) · high confidence

Initial release of the Wilson Accounting Core domain model

The Wilson.Accounting.Core library now includes the foundational domain entities for the accounting module, including Bill, Company, Employee, Invoice, Paycheck, Project, and Storehouse. This update introduces the core business logic for managing invoices, bills, payroll, and inventory, along with associated value objects (such as Address, Payment, and SubTotals) and enumerations for invoice types and variants.

Accounting/Wilson.Accounting.Core · high confidence

Introduce Accounting data access layer

Added the initial implementation of the Accounting module's data access layer, including the AccountingDbContext and its factory for database interactions.

Accounting/Wilson.Accounting.Data · high confidence

Introduce core Scheduler domain entities and value objects

The Scheduler module now includes the foundational domain model for managing employee schedules and payroll calculations. This includes the Employee entity with an IsFired status, the Paycheck entity which calculates subtotals and totals based on working hours, days off, and pay rates, and the Schedule entity that tracks work dates and options. Supporting value objects (Period, WorkingHours, DaysOff, SubTotals) and enumerations (EmployeePosition, ScheduleOption) are also added to support these core capabilities.

Scheduler/Wilson.Scheduler.Core · high confidence

Introduce core domain entities for the Companies module

The Companies module now includes a comprehensive set of domain entities that define the data model for the system. This includes the base Entity and value object interfaces, along with specific entities such as Company, Employee, Project, and CompanyContract. The update also introduces support for managing user roles via ApplicationRole, handling internal communications through Message and RegistrationRequestMessage, and tracking inquiries with associated offers and attachments. These changes establish the foundational data structures required for the company management and inquiry workflows.

Companies/Wilson.Companies.Core, Wilson.Projects.Core · medium confidence

Behavioural changes

Initial DDD implementation for the Projects module

The Projects module has been refactored to follow a Domain-Driven Design (DDD) architecture. This introduces a new data access layer featuring a generic \Repository\ pattern and an \IProjectsWorkData\ interface to manage \Company\, \Employee\, and \Project\ entities. The change includes the creation of EF Core \EntityTypeConfiguration\ classes to map these entities to the database schema, as well as the initial database migration script (\20170517133814\_DDD\) to create the \Companies\, \Employees\, and \Projects\ tables.

Projects · high confidence

Introduces generic repository pattern for Accounting data access

The Accounting module now uses a generic repository pattern to manage data operations for entities such as Employees, Companies, Invoices, Storehouses, and Bills. This change introduces an \IAccountingWorkData\ interface and an \AccountingWorkData\ implementation that provides standardized asynchronous methods for retrieving, adding, and removing records, facilitating a more structured approach to database interactions within the accounting domain.

Accounting/Wilson.Accounting.Data/DataAccess · high confidence

Refactored Scheduler data layer with Domain-Driven Design structure

The Scheduler module's data access layer has been restructured to follow Domain-Driven Design (DDD) principles. This includes introducing a generic repository pattern (IRepository/Repository) and a unit-of-work interface (ISchedulerWorkData) to manage database contexts. Entity type configurations are now centralized in dedicated configuration classes (e.g., EmployeeTypeConfiguration, PaycheckTypeConfiguration) that are automatically registered via reflection. Additionally, a new migration (20170625075429\_Paycheck) updates the Paycheck entity by replacing multiple specific numeric columns with more flexible string fields (DaysOff, Period, SubTotals, WorkingHours) to better support complex payroll calculations.

Scheduler/Wilson.Scheduler.Data · high confidence

Updated accounting database schema with new Paycheck fields and entity refinements

The accounting module's database migrations have been updated to reflect a refactored domain model. The Paycheck entity has been modified by removing several integer and decimal columns (such as ExtraHours, Hours, PayForHours) and replacing them with new string-based fields: DaysOff, PayRate, Period, SubTotals, and WorkingHours. Additionally, the schema now includes configurations for Bill, Company, Employee, Invoice, and InvoiceItem entities, with specific properties like Company.RegistrationNumber and Bill.HtmlContent defined. These changes alter the structure of the 'Accounting' schema, requiring database migration to align with the new domain-driven design.

Accounting/Wilson.Accounting.Data/Migrations · high confidence

Test coverage

Added tests for Address and Bill domain entities

Added new test coverage for the accounting domain, specifically introducing tests for the Address and Bill entities. The new DomainTest.cs file includes tests for creating and comparing Address objects, as well as testing Bill creation, invoice attachment, revision logic, and the addition of BillItems.

Accounting/Wilson.Accounting.Tests · high confidence

Dependencies

Initial project structure and dependency configuration for Wilson modules

The repository has been initialized with the core project files (.csproj) for the Accounting, Companies, Projects, and Scheduler modules, as well as the main Web application. This establishes the build configuration and dependencies for each component, including specific versions of Microsoft.EntityFrameworkCore (1.1.2), Microsoft.AspNetCore (1.1.2), and other libraries like Newtonsoft.Json (10.0.2/10.0.3) and xUnit (2.2.0) for testing.

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

Lenses

  • Code Health 74 → 53 (-21.0)
  • Architecture 80 → 81 (+1.0)
  • Maturity 40 → 40 (-0.1)
  • Readiness 33 → 35 (+1.8)
  • Security 33 → 33 (-0.4)
  • Domain Modelling 72 (new)
  • Accessibility 62 → 63 (+0.8)
  • Performance 54 → 54 (+0.0)

Resolved (28)

  • Bounded contexts not declared
  • Duplicated block (10 lines × 4) (Accounting/Wilson.Accounting.Data/AccountingDbContext.cs)
  • Duplicated block (5 lines × 2) (Web/Wilson.Web/Areas/Admin/Controllers/ControlPanelController.cs)
  • Duplicated block (6 lines × 3) (Web/Wilson.Web/Areas/Admin/Controllers/ControlPanelController.cs)
  • Duplicated block (7 lines × 2) (Web/Wilson.Web/Events/Handlers/ProjectCteatedHandler.cs)
  • Duplicated block (8 lines × 2) (Accounting/Wilson.Accounting.Core/Entities/ValueObjects/SubTotals.cs)
  • Duplicated block (8 lines × 2) (Accounting/Wilson.Accounting.Core/Entities/ValueObjects/WorkingHours.cs)
  • High CVE: Microsoft.AspNetCore.Identity 1.1.2
  • High CVE: Microsoft.AspNetCore.Identity 1.1.2
  • High CVE: Microsoft.NETCore.App 1.1.1
  • High CVE: Microsoft.NETCore.App 1.1.1
  • High CVE: Microsoft.NETCore.App 1.1.2
  • High CVE: Microsoft.NETCore.App 1.1.2
  • High CVE: System.Net.Security 4.3.0
  • High CVE: System.Net.Security 4.3.0
  • High CVE: System.Text.Encodings.Web 4.3.0
  • High CVE: System.Text.Encodings.Web 4.3.0
  • Inconsistent spelling of 'Received'/'Recieved' and 'Mark'/'Marck'. The codebase uses 'Recived' (missing 'e') in multiple places (IsRecived, RecivedAt, MarckAsRecived) but also uses correct spelling 'Received' in some contexts or misspells 'Mark' as 'Marck'. Specifically, 'Recived' is a typo for 'Received', and 'Marck' is a typo for 'Mark'.
  • Inconsistent spelling of 'Service' as 'Sevice'. The interface and related services use 'Sevice' which is a typo.
  • LLM evaluation failed
  • …and 8 more

New (49)

  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (10 lines × 2) (Accounting/Wilson.Accounting.Core/Entities/ValueObjects/DaysOff.cs)
  • Duplicated block (10 lines × 2) (Accounting/Wilson.Accounting.Data/Configurations/PaycheckTypeConfiguration.cs)
  • Duplicated block (10 lines × 2) (Web/Wilson.Web/Areas/Admin/Models/ControlPanelViewModels/RegisterUserViewModel.cs)
  • Duplicated block (10 lines × 2) (Web/Wilson.Web/Models/ManageViewModels/ChangePasswordViewModel.cs)
  • Duplicated block (10 lines × 4) (Accounting/Wilson.Accounting.Data/AccountingDbContext.cs)
  • Duplicated block (11 lines × 2) (Accounting/Wilson.Accounting.Core/Entities/ValueObjects/WorkingHours.cs)
  • Duplicated block (11 lines × 3) (Web/Wilson.Web/Models/AccountViewModels/RegistrationRequestMessageViewModel.cs)
  • Duplicated block (11 lines × 4) (Accounting/Wilson.Accounting.Data/DataAccess/AccountingWorkData.cs)
  • Duplicated block (12 lines × 2) (Accounting/Wilson.Accounting.Core/Entities/ValueObjects/SubTotals.cs)
  • Duplicated block (13 lines × 4) (Accounting/Wilson.Accounting.Data/DataAccess/Repositories/IRepository.cs)
  • Duplicated block (15 lines × 2) (Web/Wilson.Web/Models/InstallViewModels/AdminUserViewModel.cs)
  • Duplicated block (15 lines × 3) (Accounting/Wilson.Accounting.Data/DataAccess/Repositories/IRepository.cs)
  • Duplicated block (16 lines × 2) (Companies/Wilson.Companies.Core/Enumerations/EmployeePosition.cs)
  • Duplicated block (18 lines × 2) (Accounting/Wilson.Accounting.Core/Entities/ValueObjects/WorkingHours.cs)
  • Duplicated block (19 lines × 2) (Accounting/Wilson.Accounting.Core/Entities/Company.cs)
  • Duplicated block (21 lines × 2) (Accounting/Wilson.Accounting.Core/Entities/ValueObjects/SubTotals.cs)
  • Duplicated block (29 lines × 2) (Accounting/Wilson.Accounting.Core/Entities/ValueObjects/Address.cs)
  • …and 29 more

API surface

  • Unchanged — 2 HTTP endpoints

Architecture

  • Unchanged — 6 containers · 5 contexts · 4 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

KostaVlev/Wilson 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 e5a0a1853450a3fc3fff2b53e5a98727bd975d97 — 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.