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.
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 1.1, Angular 4, ngrx |
| Runtimes | .NET Framework 4.6.1 |
| Tests / CI | some / CI in place |
| Last commit | 2018-09-21 |
| Owner | Owner unknown (mapping to be curated) |
| Domain | Bookings and fulfilment (system generated; curate in repo-owners.json to override) |
| Product area | Phenix |
| Hosted | On-prem Deployed to our own machines
|
| Releases | 3 release pipeline(s): \finance\phenix\phenix-post-booking Dev; \finance\phenix\phenix-post-booking Production; \finance\phenix\phenix-post-booking Staging |
| Integration | rest, wcf, soap, jwt |
| Source | Open in Azure DevOps |
Risk flags
Each flag links to its glossary definition.
Dependencies in context
Entanglement
kernel Bound into the core by 2 mechanism(s).
- Pinning dependency: mail-service
- Speaks WCF (client)
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 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-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
proposedAssessment 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.