KostaVlev/Wilson
38.2
Weak · 21 September 2026
9.7k
lines of production code
C#
primary language
4
measurements over time
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.