Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Repos / phenix-currency

phenix-currency

Small currency-conversion vertical: a .NET 8 minimal API fronting the exchange-rate service plus an Angular 8 UI embedded in Phenix.

74 · amberlowloosely attachedOn-premZDD: not applicableweb-uidormant

Health score

74

0 to 100 across seven weighted factors; nothing is hidden. Green is 75 and above, amber 50 to 74, red below 50. How scoring works.


Runtime currency / 25
25
Runs on supported modern .NET
Legacy transport / 15
6
Calls at least one legacy WCF endpoint
Test posture / 15
8
Some tests, coverage is thin
Security hygiene / 15
15
No credentials found in source
Dangerous coupling / 15
15
No dangerous coupling detected
Activity / 10
0
Dormant: no meaningful change for two years or more while still deployed
Deployment hygiene / 5
5
CI in place
Health over time
2026-07-24 (run-2026-07-24-1): 742026-07-27 (run-2026-07-27-1): 74
No change since 2026-07-24 (74 to 74).

Facts

Languagescsharp, typescript
FrameworksASP.NET Core 8, Angular 8
Runtimes.NET 8, nodejs
Tests / CIsome / CI in place
Last commit2025-07-04
OwnerOwner unknown (mapping to be curated)
DomainPayments and finance (system generated; curate in repo-owners.json to override)
Product areaPhenix
HostedOn-prem Deployed to our own machines
  • Release "\commercial\phenix-currency-api": QA: deployment-group phase (agents on our own machines)
  • Release "\commercial\phenix-currency-api": Staging: deployment-group phase (agents on our own machines)
  • Release "\commercial\phenix-currency-api": Production: deployment-group phase (agents on our own machines)
  • Release "\commercial\phenix-currency-api": Training: deployment-group phase (agents on our own machines)
  • Release "\commercial\phenix-currency-api": DR: deployment-group phase (agents on our own machines)
Releases2 release pipeline(s): \commercial\phenix-currency-api; \commercial\phenix-currency-ui
Integrationrest, wcf
SourceOpen in Azure DevOps

Risk flags

Each flag links to its glossary definition.

Dependencies in context

Laying out the graph…
greenamberreddata store (square, dashed link)Node size follows fan-in. Click any node to open it.

Entanglement

loosely attached Bound into the core by 1 mechanism(s).

  • Speaks WCF (client)

Detaches when its WCF surface gains a modern interface or its WCF calls move to one.

Depends on / used by

Used by (0)
No internal dependents.

Migration playbooks

Generated from this repo's assessment data: what is feasible, what blocks it, and the steps in order. Ratings: green means actionable now, amber means sequence other work first, red means blocked, grey means not applicable.

ZDD adoption

Not applicable

Not a deployed service (libraries, database definitions, desktop apps) or a retirement candidate not worth the investment. Retirement or consolidation candidate; do not invest in ZDD adoption.

SQL Server exit

Not applicable

No SQL Server dependency is recorded for this repo. Nothing to migrate.

Containerisation

Retire instead

This repo is a retirement or consolidation candidate; containerising it would be investment in something we intend to switch off.

Recommended actions

Review phenix-currency for retirement

Dormant (last commit 2025-07-04) yet still release-linked, and nothing depends on it. Confirm remaining use, then retire and disarm its pipeline.

Impact: Shrinks the estate before the expensive work begins

proposed

Assessment notes

phenix-currency

Purpose

PhenixCurrency provides currency conversion inside Phenix. Currency.Api is a thin .NET 8 minimal API (/Api/Currency, endpoint-based, no controllers) that exposes currencies and conversion by delegating to the exchange-rate service; Currency.UI is an Angular single-component app that renders the converter and calls the API.

Tech stack

API: ASP.NET Core 8 minimal API with OpenAPI, TravelCounsellors.ApiTools, TravelCounsellors.Money and the ConnectionBroker Api/Wcf clients; per-environment appsettings.{env}.json for seven environments. UI: Angular 8.2 with TypeScript 3.5, Karma/Jasmine unit specs, Protractor e2e scaffolding, TSLint — an Angular CLI 1.x-era project only partially upgraded.

Deployment

prod_application with 2 releases. Build pipelines phenix-currency-api and phenix-currency-ui (plus a phenix-currency-ui CI); release pipelines \commercial\phenix-currency-api and \commercial\phenix-currency-ui. Both halves have azure-pipelines.yml in-repo using the shared templates, so CI is YAML-based.

Dependencies

Internal: TC.ConnectionBroker.* (tc-connectionbroker), TC.ExchangeRate.ServiceClient (exchange-rate-service), TravelCounsellors.ApiTools (tc-api-tools), plus TC.Phenix.Services.Client and TravelCounsellors.Money which map to no included repo. No third-party services — rates come from the internal exchange-rate service.

Data stores

None. The API is stateless and holds no connection strings; all data comes from the exchange-rate service.

Integration points

Inbound REST from the Angular UI and Phenix; outbound WCF to the exchange-rate service via TC.ExchangeRate.ServiceClient over ConnectionBroker.

Code health

One xUnit-style unit-test project for the API core plus Angular component specs — proportionate for the code size. README is the stock Angular CLI boilerplate. Last commit 2025-07-04 was a package bump "to make API start again", and there has been no activity since, so the repo is coasting.

Modernisation risks

Low overall: the API is already modern .NET 8 and trivially small. The real debt is the Angular 8 UI (EOL since 2020, TSLint/Protractor toolchain both discontinued) and the WCF client dependency on the exchange-rate service — both would be picked up naturally if the converter were folded into a newer Phenix front-end.