thisisnabi/Locator
36.4
Weak · 21 September 2026
404
lines of production code
C#
primary language
4
measurements over time
What this system is
Features
Added IP geolocation and timezone lookup features
Users can now look up geographic location details (country, state, city, latitude, longitude) and time zone information for a given IP address. This is exposed via new REST endpoints at /locations/{ip\_address} and /timezone/{ip\_address}, backed by a caching layer that stores results in a database and falls back to external APIs when data is missing.
src/Locator/Features/IpLocation · high confidence
Initial release of the Locator Service
The project is initialized with a solution structure for a .NET-based Locator Service, which provides IP geolocation and timezone features. The repository includes the core application, unit tests, and functional tests, alongside a comprehensive README detailing the service's capabilities and installation steps.
(repo-wide) · high confidence
Introduce IP location and timezone lookup services
The Locator service now exposes endpoints for resolving IP-based location and timezone information. This adds a new application layer that connects to MongoDB for persistence, integrates with external IP geolocation APIs (configured via AppSettings), and utilizes MassTransit with RabbitMQ for asynchronous processing. The feature is wired up in Program.cs with corresponding DI registrations and endpoint mappings.
src/Locator · high confidence
Test coverage
Added functional and unit tests for the IP location feature
Added functional tests for the IP location feature, including a base test class and specific tests for location lookup (valid and invalid IP addresses). Also added a placeholder unit test file.
tests · high confidence
Dependencies
Add .NET 8.0 project files for Locator, functional tests, and unit tests
New .csproj files are introduced for the main application (src/Locator), functional tests (tests/Locator.FunctionalTestings), and unit tests (tests/Locator.UnitTests), all targeting .NET 8.0. The application project adds dependencies for OpenAPI/Swagger, container tools, MongoDB Entity Framework Core, and MassTransit with RabbitMQ. The functional test project references xUnit, FluentAssertions, and Microsoft.AspNetCore.Mvc.Testing. The unit test project references xUnit 2.8.0, Microsoft.NET.Test.Sdk 17.9.0, and coverlet.collector 6.0.2. These changes establish the build and dependency structure for the new IP location feature.
(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 36 → 36 (+0.4)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 88 → 89 (+1.0)
- Architecture 69 → 69 (+0.0)
- Maturity 58 → 58 (+0.0)
- Readiness 17 → 17 (-0.1)
- Security 40 → 41 (+1.4)
Resolved (14)
- High CVE: System.Text.Json 8.0.0
- High CVE: System.Text.Json 8.0.0
- Inconsistent naming for service classes: one uses 'LocationService' while the other uses 'TimeZoneService'. While they serve different domains, the pattern for the IP location service is 'LocationService' whereas the timezone service is 'TimeZoneService'. However, this is a minor stylistic choice. A more significant inconsistency is the parameter naming for IP addresses.
- No exposed public API
- Secret: generic-api-key (src/Locator/appsettings.Development.json)
- Secret: generic-api-key (src/Locator/appsettings.Development.json)
- The document contains no license information for the project, which is required by law and makes it impossible to assess compliance with licensing requirements. (README.md)
- Thin analysable surface across projects
- Typo in method name: 'GetLocatinByIP' contains a typo ('Locatin' instead of 'Location').
- early-stage repository — too little history to judge knowledge freshness
- git history depth insufficient
- git history depth insufficient
- redundant comment (src/Locator/Features/IpLocation/Providers/IPGeoLocation/IPGeolocationProvider.cs)
- single-maintainer — knowledge-concentration (bus factor) risk
New (16)
- Documentation: no architecture or design documentation (README.md)
- Documentation: no licence statement (README.md)
- High CVE: System.Text.Json 8.0.0
- Inconsistent abbreviation for 'Geolocation': 'IPGeolocationProviderAPIKey' uses the full word 'Geolocation', while 'IPGeoTimeZoneProviderAPIKey' uses the abbreviation 'Geo'.
- Inconsistent abbreviation for 'Geolocation': 'IPGeolocationProviderBaseUrl' uses the full word 'Geolocation', while 'IPGeoTimeZoneProviderBaseUrl' uses the abbreviation 'Geo'.
- Low coverage: src/Locator/Features/IpLocation/Consumers/GetIpLocationConsumer.cs (src/Locator/Features/IpLocation/Consumers/GetIpLocationConsumer.cs)
- Low coverage: src/Locator/Features/IpLocation/LocationService.cs (src/Locator/Features/IpLocation/LocationService.cs)
- Low coverage: src/Locator/Features/IpLocation/Providers/IPGeoLocation/IPGeolocationProvider.cs (src/Locator/Features/IpLocation/Providers/IPGeoLocation/IPGeolocationProvider.cs)
- Low coverage: src/Locator/Features/TimeZone/Providers/IPGeoTimeZone/IPGeoTimeZoneProvider.cs (src/Locator/Features/TimeZone/Providers/IPGeoTimeZone/IPGeoTimeZoneProvider.cs)
- Low coverage: src/Locator/Features/TimeZone/TimeZoneService.cs (src/Locator/Features/TimeZone/TimeZoneService.cs)
- Medium IaC: WD-DOCKER-0003 (src/Locator/Dockerfile)
- Medium IaC: WD-DOCKER-0003 (src/Locator/Dockerfile)
- Secret: generic-api-key (src/Locator/appsettings.Development.json)
- Secret: generic-api-key (src/Locator/appsettings.Development.json)
- Test project verifies nothing: Locator.UnitTests (tests/Locator.UnitTests/UnitTest1.cs)
- Typo in method name: 'GetLocatinByIP' is missing the 'i' in 'Location'. Additionally, there is inconsistent casing for the 'Ip' suffix between 'GetLocatinByIP' (all caps) and 'GetLocationDetailsByIp' (lowercase 'p').
API surface
- Unchanged — 3 HTTP endpoints
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
thisisnabi/Locator 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 cb21af4b05136c4fd7514f7c292718c71798d6fd — 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.