backoffice-customerrelations-ui
Internal ASP.NET MVC web UI for the Customer Relations team to manage customer relations cases against bookings and contacts, with an email reminders job.
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 |
| Frameworks | ASP.NET MVC 5.2.3, LINQ to SQL |
| Runtimes | .NET Framework 4.5.2 |
| Tests / CI | none / CI in place |
| Last commit | 2022-06-23 |
| Owner | Owner unknown (mapping to be curated) |
| Domain | Contact centre and CRM (system generated; curate in repo-owners.json to override) |
| Product area | Phenix |
| Hosted | On-prem Deployed to our own machines
|
| Releases | 1 release pipeline(s): \ops\customerrelations\backoffice-customerrelations-ui CI |
| Integration | wcf, soap |
| Source | Open in Azure DevOps |
Risk flags
Each flag links to its glossary definition.
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
Retire insteadThis repo is a retirement or consolidation candidate. Do not invest in a database migration; execute the retirement and the SQL Server dependency disappears with it.
Containerisation
Retire insteadThis repo is a retirement or consolidation candidate; containerising it would be investment in something we intend to switch off.
Recommended actions
Rotate the credentials committed to backoffice-customerrelations-ui
Risk flags indicate credentials or keys in source (credentials-in-config). Rotate now and enable secret scanning in CI; this is independent of all other work.
Impact: Closes a live security exposure at near-zero cost
proposedReview backoffice-customerrelations-ui for retirement
Dormant (last commit 2022-06-23) 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
backoffice-customerrelations-ui
Purpose
Internal web application for the Customer Relations team, built as ASP.NET MVC UI over a CustomerRelations database, linking cases to bookings and contact-centre records. A companion CustomerRelations.EmailReminders console project sends reminder emails.
Tech stack
C# on .NET Framework 4.5.2 throughout: ASP.NET MVC 5.2.3 web app (CustomerRelations.UI), a LINQ to SQL data model project (CustomerRelations.DataModel using System.Data.Linq), and the email reminders job. Old internal packages (TC.Phenix.ApplicationFramework 1.2.4, TC.Phenix.Services.Client 3.0.5, TC.ContactCentre.ServiceClient) restored via packages.config. Placeholder README only.
Deployment
Single build pipeline (backoffice-customerrelations-ui CI) and one release pipeline (\ops\customerrelations\backoffice-customerrelations-ui CI); release_count 1. No pipeline YAML in the repo, so the build is a classic Azure DevOps definition. Environment-specific Web.*.config transforms (Production, PreProduction, TestQA, Training, etc.) indicate on-premises IIS hosting.
Dependencies
Internal: calls the backoffice booking WCF service (/services/backoffice/bookingservice.svc/Phenix) and a contact-centre SOAP service (/services/contactcentre/ContactCentre.asmx, likely the phenix contact-centre estate) plus Phenix services via TC.Phenix.Services.Client. External: none identified.
Data stores
Direct SQL Server connections: CustomerRelations (primary, on phenixdata in production) and MediaServer (on Decimus) for media assets via a vendored MediaServer.Library.dll. Connection strings with plaintext SQL credentials are committed in Web.config transforms.
Integration points
WCF (wsHttpBinding, unsecured HTTP) to the backoffice booking service and legacy ASMX SOAP to the contact-centre service; both over internal HTTP endpoints. No REST APIs, messaging, or event streams.
Code health
No test projects at all. Last commit 2022-06-23 — dormant for roughly four years. Vendored binary dependency (MediaServer.Library.dll) and classic (non-YAML) build.
Modernisation risks
High priority: .NET Framework 4.5.2 is long past end of support; ASP.NET MVC 5 and LINQ to SQL are legacy; plaintext DB credentials in source; unsecured HTTP WCF/SOAP endpoints; no tests; dormant codebase still in production. Any change carries elevated risk, and a rewrite or platform migration should be evaluated.