danielbdias/domain-driven-design-in-nodejs
43.0
Weak · 21 September 2026
640
lines of production code
JavaScript
primary language
4
measurements over time
What this system is
Features
Added TraceRoute use case for calculating routes between addresses
Users can now calculate a route between two addresses using a specific GPS type. This new use case retrieves origin and destination addresses and a GPS configuration, then delegates the route calculation to the GPS repository.
Domain/UseCases/TraceRoute · high confidence
Behavioural changes
Migrate from Sequelize ORM to raw SQL queries and introduce new GPS and Route capabilities
The infrastructure layer has been refactored to replace the Sequelize ORM with direct PostgreSQL client interactions, removing the dependency on \speck-sequelize-repository\ and associated model/mapper files. This change introduces new capabilities for managing GPS data and calculating routes. Specifically, the system now supports saving and retrieving GPS entities, as well as tracing routes between addresses using Google Maps or a mock implementation. The GraphQL API has been updated to expose new \gps\, \traceRoute\, and \saveGPS\ operations, while the underlying data access layer now uses raw SQL queries for all database operations.
Infra · high confidence
Removal of legacy address use-case implementations
The specific use-case modules for managing addresses have been removed from the domain layer. Specifically, the \DeleteAddress\ and \SaveAddress\ JavaScript files, which previously delegated to generic \DeleteEntity\ and \SaveEntity\ logic, are no longer present. This indicates a refactoring or consolidation of address-related operations, likely moving away from the previous generic CRUD use-case pattern.
Domain/UseCases/DeleteAddress, Domain/UseCases/SaveAddress · medium confidence
Removed GetAddresses use case
The GetAddresses use case, which previously retrieved address entities via the GetEntities service, has been removed from the domain layer. This eliminates the specific address retrieval flow, meaning the application no longer supports fetching address data through this dedicated use case.
Domain/UseCases/GetAddresses · high confidence
Removed legacy domain logic and simplified entity schemas
The domain layer has been refactored to remove obsolete or unused code. The \DeleteEntity\ and \GetEntities\ use cases and their tests were removed entirely. The \GPS\ entity was updated to integrate with \TrollMapsClient\ and \GoogleMapsClient\ for route calculation, replacing the previous placeholder logic. Additionally, the \Route\ value object was updated to use \origin\ and \destination\ instead of \start\ and \end\, and all associated documentation fields (\TYPE\_DOC\, \FIELDDocs\) were removed from \Address\, \GPS\, \Route\, and \RouteInstruction\ entities.
Domain · high confidence
Restructured address and GPS use cases into dedicated folders
The address and GPS management capabilities have been reorganized into specific use-case files. For addresses, new files were added to handle creating/saving, retrieving, and deleting addresses. For GPS data, the save logic was moved from a generic 'SaveEntity' service into a dedicated 'SaveGPS' use case, while a new 'GetGPS' file was added to handle retrieving GPS records. These changes consolidate the logic for managing address and GPS data into clearly named, single-purpose files.
Domain/UseCases/ManageAddress, Domain/UseCases/ManageGPS · high confidence
Updated README with new use cases and GMaps integration
The README has been translated to English and updated to reflect new application capabilities. The documentation now includes instructions for saving GPS data and tracing routes using both 'troll' and 'gmaps' types, indicating the addition of a GMaps client and related functionality. The previous example of retrieving tweets has been replaced with new GraphQL mutations for address and GPS data.
(repo-wide) · low confidence
Dependencies
Updated project dependencies and structure
The project's root package.json was updated to include new dependencies for Google Maps (@google/maps), environment variable management (dotenv), and string sanitization (striptags), while removing the speck-sequelize-repository package and its associated MySQL dependencies. Additionally, several internal packages were reorganized: the logger was renamed and moved to the Infra layer, and multiple use-case packages (DeleteAddress, GetAddresses, SaveAddress, GetGPS, SaveGPS) were renamed and relocated to the Domain/UseCases directory structure.
(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 45 → 43 (-1.8)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 60 → 65 (+5.1)
- Architecture 64 → 64 (+0.3)
- Maturity 57 → 54 (-2.8)
- Readiness 25 → 26 (+1.8)
- Security 79 → 60 (-19.7)
Resolved (60)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- …and 40 more
New (101)
- Critical CVE: [CVE redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- End-of-life runtime: Node.js 12
- High CVE: [GHSA redacted] (yarn.lock)
- …and 81 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
danielbdias/domain-driven-design-in-nodejs 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 940491b9b3aa19f5d7894c3219329f3ff17f5522 — 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.