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

phenix-post-booking

Angular 4 SPA hosted in an ASP.NET Core 1.1 shell for TCs to manage bookings after sale (amendment requests, date/room changes), calling legacy Phenix WCF/SOAP services.

44 · redmediumkernelOn-premZDD: not applicableweb-uidormant

Health score

44

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
0
.NET Framework, out of mainstream support
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
11
depends on pinning component(s): mail-service
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): 442026-07-27 (run-2026-07-27-1): 44
No change since 2026-07-24 (44 to 44).

Facts

Languagescsharp, typescript
FrameworksASP.NET Core 1.1, Angular 4, ngrx
Runtimes.NET Framework 4.6.1
Tests / CIsome / CI in place
Last commit2018-09-21
OwnerOwner unknown (mapping to be curated)
DomainBookings and fulfilment (system generated; curate in repo-owners.json to override)
Product areaPhenix
HostedOn-prem Deployed to our own machines
  • Release "\finance\phenix\phenix-post-booking Dev": QA: deployment-group phase (agents on our own machines)
  • Release "\finance\phenix\phenix-post-booking Production": Production: deployment-group phase (agents on our own machines)
  • Release "\finance\phenix\phenix-post-booking Production": Training: deployment-group phase (agents on our own machines)
  • Release "\finance\phenix\phenix-post-booking Production": DR: deployment-group phase (agents on our own machines)
  • Release "\finance\phenix\phenix-post-booking Staging": Staging: deployment-group phase (agents on our own machines)
Releases3 release pipeline(s): \finance\phenix\phenix-post-booking Dev; \finance\phenix\phenix-post-booking Production; \finance\phenix\phenix-post-booking Staging
Integrationrest, wcf, soap, jwt
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

kernel Bound into the core by 2 mechanism(s).

Detaches when its pinning dependencies are cut or multi-targeted (mail-service); and 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 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-post-booking for retirement

Dormant (last commit 2018-09-21) 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-post-booking

Purpose

Post-booking self-service web app ("For TCs to manage bookings after they have been booked") built around amendment requests — date changes, room changes and similar — as an Angular SPA with ngrx state management, served from an ASP.NET Core shell that proxies to the legacy Phenix service layer. Localised for en-GB/nl/nl-nl/nl-be via xlf files.

Tech stack

Single project TC.Phenix.PostBooking.Web: ASP.NET Core 1.1 MVC hosted on .NET Framework 4.6.1 (win7-x86 runtime identifier), Autofac DI, EF Core 1.1 SqlServer packages referenced, JWT bearer plus cookie/FormsAuthentication-ticket interop auth. Frontend is Angular 4 with @ngrx 2.x, ngx-bootstrap, Sass, built via Angular CLI 1.5 / yarn / webpack during publish.

Deployment

Included as prod_application with 3 releases. Four classic build pipelines (phenix-post-booking develop/develop-feature/master/master-release) and release pipelines under \finance\phenix\ (Dev, Staging, Production). No pipeline YAML in the repo; deploys to IIS via PowerShell scripts in deployment/ (app pool, website, config transforms, Slack webhook notification).

Dependencies

Internal packages: TC.Phenix.Services.Client (backoffice booking service), TC.ContactCentre.ServiceClient (phenix-contact-centre-wcf), TC.Mail.ServiceContract (mail-service), TC.UserAccount.ServiceContract (backoffice-useraccount-service), TC.Core.ServiceClients. External: Application Insights telemetry, Slack webhook in deployment scripts.

Data stores

No owned database or connection strings — all data access goes through the Phenix service endpoints configured in appsettings.*.json (booking service .svc, ContactCentre .asmx, mail and user-account .svc hosts on phenixservices.travelcounsellors.com). EF Core packages are referenced but no context/connection string is configured.

Integration points

Serves REST API controllers to its own SPA; outbound WCF (bookingservice.svc, MailServiceHost.svc, UserAccountServiceHost.svc) and SOAP (ContactCentre.asmx) calls; JWT bearer tokens bridged from Phenix forms-authentication cookies.

Code health

No .NET test project; a handful of Angular karma specs (reducers, app component) and boilerplate Protractor e2e config. README is untouched scaffold text. Dormant: last commit 2018-09-21, dependencies frozen at 2017-era versions (Angular 4, ASP.NET Core 1.1).

Modernisation risks

ASP.NET Core 1.1 and Angular 4 are both long end-of-life, and the app has been unmaintained for eight years while still release-linked to production. The forms-auth/JWT bridging and WCF/SOAP client stack tie it to the legacy Phenix estate; any modernisation is effectively a rewrite, and its amendment-request functionality overlaps the newer post-booking repos (phenix-postbookingactivities, phenix-booking-ui) — assess for retirement or folding in before investing.