phenix-currency
Small currency-conversion vertical: a .NET 8 minimal API fronting the exchange-rate service plus an Angular 8 UI embedded in Phenix.
Health score
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.
Facts
| Languages | csharp, typescript |
| Frameworks | ASP.NET Core 8, Angular 8 |
| Runtimes | .NET 8, nodejs |
| Tests / CI | some / CI in place |
| Last commit | 2025-07-04 |
| Owner | Owner unknown (mapping to be curated) |
| Domain | Payments and finance (system generated; curate in repo-owners.json to override) |
| Product area | Phenix |
| Hosted | On-prem Deployed to our own machines
|
| Releases | 2 release pipeline(s): \commercial\phenix-currency-api; \commercial\phenix-currency-ui |
| Integration | rest, wcf |
| Source | Open in Azure DevOps |
Dependencies in context
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
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 applicableNot 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 applicableNo SQL Server dependency is recorded for this repo. Nothing to migrate.
Containerisation
Retire insteadThis 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
proposedAssessment 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.