burnsoftnet/MyGunCollection
49.5
Weak · 1 October 2026
16.6k
lines of production code
VB.NET
with C#
2
measurements over time
What this system is
My Gun Collection is a desktop application for managing firearm inventories, allowing users to add, view, and classify firearms while linking accessories. The system supports data entry for manufacturer details and firearm specifications, and includes reporting capabilities via ReportViewer. It is built on the .NET Framework 4.8.1 and features a comprehensive suite of UI automation tests to verify core workflows.
How it got here
2017 — Project restructuring and .NET upgrade
7 changes.
The project underwent a significant structural overhaul, migrating from .NET Framework 4.0 to 4.8.1 and transitioning to NuGet package management. Legacy utilities such as the hotfix assistant and data loader were removed to streamline the codebase, while new features for firearm classification and accessory management were introduced.
2021–2023 — UI automation test infrastructure
12 changes.
This period focused on establishing a comprehensive UI automation testing framework for the BSMyGunCollection application. Significant effort was dedicated to creating helper classes for main window, collection, and editing workflows, alongside writing specific unit tests to verify application initialization and firearm management features.
Features
Initial repository structure and documentation for My Gun Collection v7.1.25.94
This change establishes the project's root configuration and documentation, introducing the solution file (BSMyGunCollection.sln) which defines the main application, setup project, and unit test projects. It includes the MIT License, a comprehensive README detailing the v7.1.25.94 release notes (highlighting features like firearm ratings, general accessories, and .NET Framework 4.8.1 upgrade), and updated GhostDoc and .gitignore files to support development workflows.
(repo-wide) · high confidence
New forms for firearm classification and accessory linking
Added the Edit Gun Classifications form for managing firearm classification types, a dropdown list filter for selecting visible firearm filters, and a new dialog to link or move general accessories to specific firearms in the collection.
BSMyGunCollection · high confidence
Removals
My Gun Collection Data Loader removed from repository
The My Gun Collection Data Loader application has been deleted from the codebase. This change removes the entire project, including the main form, the update progress UI, global helper classes for registry and file system operations, application settings, and the auto-generated web service client code used to connect to the BurnSoft database update service.
_MyGunCollection\DataLoader · high confidence
Removal of the BSMGC\_HotFixes application and its database migration logic
The entire BSMGC\_HotFixes project has been removed from the repository. This deletion eliminates the legacy utility that previously handled database schema migrations (such as adding columns and inserting reference data for the 'My Gun Collector' application) and registry key updates for older versions. Users will no longer have access to this standalone hotfix assistant or its associated configuration files.
_BSMGC\HotFixes · high confidence
Behavioural changes
1 commit (0 fixes) modifying packages/Microsoft.ReportViewer.Common.10.0.40219.1, packages/Microsoft.ReportViewer.WinForms.10.0.40219.1
A change to existing behaviour in packages/Microsoft.ReportViewer.Common.10.0.40219.1, packages/Microsoft.ReportViewer.WinForms.10.0.40219.1 — 1 commit, 8 files.
packages/Microsoft.ReportViewer.Common.10.0.40219.1, packages/Microsoft.ReportViewer.WinForms.10.0.40219.1, packages/Microsoft.Reporting.WinForms.v11.1.0.0.0 · medium confidence · unverified
Installer project structure and solution file updated
The BSMyGunCollection\_Setup solution file has been removed, and the installer project file (BSMyGunCollection\_Setup.vdproj) has been moved from a nested subdirectory to the root of the setup folder. The installer configuration has also been updated, including changes to output paths and bootstrapper settings.
_BSMyGunCollection\Setup · high confidence
Removed legacy My Project metadata and configuration files
The legacy My Project folder has been deleted, removing the Application Designer, Application manifest, AssemblyInfo, Resources, and Settings files. This cleanup eliminates the previous assembly metadata (version 5.1.1.234) and application configuration, aligning the project structure with the updated .NET 4.7.2 target and the migration to the burnsoft.universal library.
_BSMGC\HotFixes/My Project · high confidence
Test coverage
Added UI automation helpers for firearm collection tests; Added UI editing tests for manufactures; Added UI editing tests for the Manufactures section; Added UI helper classes for main window and toolbar automation; Added UI tests for adding and viewing firearms; Added UI tests for main application initialization and controls; Added VS2019-specific test settings configuration; Added empty ViewMain class for ammunition testing; Added test helper utilities for UI command automation; Initialize unit test assembly metadata.
Dependencies
Upgrade to .NET Framework 4.8.1 and migrate to NuGet package management
The application has been upgraded from .NET Framework 4.0 to 4.8.1, enabling access to newer platform features and security updates. To support this migration, the project has transitioned from local DLL references and embedded dependencies to using NuGet packages for core libraries (including BurnSoft.Applications.MGC, BurnSoft.MsgBox, BurnSoft.Universal, and DataGridViewAutoFilter) and reporting components (Microsoft.ReportingServices.ReportViewerControl.Winforms). Additionally, the legacy hotfix and data loader projects have been removed, and the main application now uses embedded debug symbols and signed manifests for improved deployment integrity.
(dependencies) · high confidence
Housekeeping
Added global code analysis suppressions for unit tests
The unit test project now includes a GlobalSuppressions file to silence specific code quality warnings (such as simplifying collection/object initialization and removing unread private members) that arise from the test implementation details. This prevents these non-functional style issues from cluttering the build output or code review process.
BSMyGunCollection.UnitTest · 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 48 → 49 (+1.7)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 91 → 91 (+0.0)
- Architecture 72 → 72 (+0.0)
- Maturity 47 → 47 (+0.0)
- Readiness 35 → 35 (+0.0)
- Security 63 → 76 (+13.5)
Resolved (10)
- Documentation: no installation or build instructions (docs/help/import_database.md)
- Documentation: written for insiders (docs/help/settings_other.md)
- Documentation: written for insiders (docs/help/settings_security.md)
- Inconsistent naming for what appears to be the same or related report functionality. One uses 'v2' suffix while the other does not, which is ambiguous without context.
- Inconsistent prefix 'm' in method names (ClickOnm...) and a typo 'Repor' instead of 'Report'. The 'm' prefix appears to be a typo or inconsistent naming convention for 'Insurance'.
- Inconsistent spelling of 'Origin' (PlaceOfOrgin vs PlaceofOrigin) and inconsistent spacing/capitalization in method names (AddPlaceofOrigin vs AddtoWishlist vs AddAmmunitiontomyCollection). 'Orgin' is a typo for 'Origin'. 'Addto' and 'tomy' lack proper spacing or capitalization compared to standard PascalCase conventions seen elsewhere.
- Namespace typo 'Ammuntion' vs correct spelling 'Ammunition' implied by context and other parts of the codebase (e.g., 'AmmunitionInventory').
- Typo in 'ColletorDetails' (ViewWindow) vs 'CollectorDetails' (AddWindow). The concept is the same (Collector Details), but the spelling differs.
- Typo in 'Controler' vs 'Control' (implied by 'ToolBar' and standard English). 'Controler' is misspelled.
- Typo in 'SendTExt' (capital T instead of lowercase t).
New (6)
- Several report menu click methods have typos in their names. 'ClickOnmInsurance...' has an extra 'm' after 'On'. 'ClickOnmInsuranceReporWithTotaltAppraisedValue' has both 'Repor' (missing 't') and 'Totalt' (extra 't'). These are clearly the same concept (clicking a specific insurance report) but are named with distinct typos.
- The concept of 'Collector Details' is misspelled as 'ColletorDetails' in the ViewWindow helper, while correctly spelled as 'CollectorDetails' in the AddWindow helper. This is a direct inconsistency in spelling the same concept.
- The concept of 'Place of Origin' is spelled inconsistently. Some methods use 'PlaceOfOrgin' (missing the second 'i'), while one uses 'PlaceofOrigin' (lowercase 'of', correct spelling). This creates confusion between a typo and a different naming convention.
- The method 'SendTExt' contains a typo ('TExt' instead of 'Text'). While other helper methods like 'ClickOnElement' are spelled correctly, this specific method breaks the pattern and is likely a typo.
- The word 'Ammunition' is misspelled as 'Ammuntion' in the namespace BSMyGunCollection.UnitTest.Command.Helpers.UI.Ammuntion and as 'Ammunitiontomy' (merged words, missing space) in the method ClickOnAddAmmunitiontomyCollection. While the namespace is anchored by its folder structure, the method name shows a lack of consistency in handling the word 'Ammunition' and spacing.
- Two methods exist for clicking on a 'Bound Book' report, one with a 'v2' suffix and one without. This suggests versioning or duplication that is not clearly distinguished by a consistent naming convention (e.g., 'ClickOnBoundBookV2' vs 'ClickOnBoundBook'). The 'v2' is attached directly to the noun, which is inconsistent with standard versioning practices (usually separated or capitalized).
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
burnsoftnet/MyGunCollection 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 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 2b749e9e2234bfc0be2ce9039f859aa4d76356d7 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.