Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Domains / Shared platform

Shared platform

Everything serving more than one product area: shared services, public web, communications, data and infrastructure.

Repos (85)

RepoHealthPriorityHostingZDDEntanglement
TC.CustomerPortalUsers.DupeImporter
Console job that finds customer portal user accounts created in a time window and updates merged/duplicate con…
19 · redmediumOn-premZDD: not applicablekernel
contact-centre-email-server
Windows service that dequeues queued Contact Centre emails from the ContactCentre SQL database, renders them v…
29 · redhighOn-premZDD: not applicablekernel
TC.PublicWebsites.EmailQueue
Console job that drains a database-backed email queue from the TravelCounsellors SQL database and sends the me…
35 · redmediumOn-premZDD: not applicableloose
tc-useraccount-telephonecontracts-api
Small ASP.NET Core 2.1 REST API (TC.UserAccount.Telephony.Api) exposing read/write CRUD over user-account tele…
39 · redhighOn-premZDD: not applicableloose
advent-challenger
Seasonal marketing advent-calendar competition web app where users open daily doors backed by a Competitions S…
40 · redlowOn-premZDD: a long roadloose
public-api
ASP.NET Web API 2 backend (TC.PublicWebsites.Service) for the public Travel Counsellors websites: recruitment …
41 · redhighOn-premZDD: needs workkernel
crm-reporting-api
ASP.NET Core API exposing CRM reporting data (corporate leads / prospective email-domain lookups) from a repli…
46 · redhighOn-premZDD: not applicableloose
tc-audited-db-context
Tiny shared NuGet library (TC.AuditedDbContext) providing an Entity Framework 6 DbContext base class that stam…
50 · ambermediumNo signalZDD: not applicableloose
tc-features
Small shared NuGet library (TC.Features) providing a feature-toggle abstraction with hardcoded feature classes…
50 · ambermediumNo signalZDD: not applicableloose
tc-swagger-versioning
Retired NuGet library (TC.Swagger.Versioning) of convenience extensions that wire up API versioning and Swashb…
50 · amberlowNo signalZDD: not applicableloose
tc-useraccount-telephonecontracts-servicecontract
Two-class contract NuGet package (TC.UserAccount.Telephony.ServiceContract) defining the UserAccountTelephony …
50 · amberlowNo signalZDD: not applicableloose
tc-communications
ASP.NET Web API app that sends templated birthday and anniversary emails to Travel Counsellors, pulling recipi…
53 · ambermediumOn-premZDD: needs workloose
html2pdf-service
Small REST API that renders HTML into PDF documents using an embedded Chromium (CefSharp), used by the supplie…
54 · amberhighOn-premZDD: not applicableloose
mail-service
WCF service hosted in IIS that sends emails over SMTP on behalf of estate applications, with address rewriting…
54 · amberhighOn-premZDD: not applicablekernel
tc-exceptions
Shared NuGet library defining the estate's exception hierarchy (TC.Exceptions) and a SQL-backed exception-log …
54 · amberlowNo signalZDD: not applicableloose
tc-redis-cache-event-socket-server
Tiny Node/TypeScript socket.io server that subscribes to TC.Cache Redis pub/sub events (CacheEntryCreated/Cach…
54 · ambermediumAWSZDD: ready with guardrailsloose
travelcounsellors-net
Legacy ASP.NET Web Forms public website (travelcounsellors.net) hosting TC Score (NPS) collection, testimonial…
56 · amberhighOn-premZDD: a long roadloosely attached
mailtemplate-service
WCF service that generates emails from a large catalogue of predefined, localised HTML templates and either re…
57 · amberhighOn-premZDD: not applicablekernel
lib-repository
Shared NuGet library providing a generic repository/query-handler pattern (TC.Repository) plus Dapper-based ba…
58 · ambermediumNo signalZDD: not applicableloose
tc-redis-cache-event-viewer
Angular 6 single-page app that connects to the redis cache event socket server over socket.io and displays a r…
61 · ambermediumAWSZDD: not applicableloose
tc-public-content-api
Minimal .NET 6 API for the public website that serves a hardcoded catalogue of 'inspiration blog' content (des…
62 · ambermediumAWSZDD: ready with guardrailsloose
company-info-api
RESTful API managing company information (name, address, contact details) with published client NuGet packages…
66 · amberlowAWS + on-premZDD: no excuseloosely attached
paymentprovider-dummy
Two .NET 6 fake payment-provider APIs (payments and payment-instruments) that stand in for real PSPs on test e…
66 · ambermediumAWSZDD: no excuseloose
tc-connectionbroker
The estate's central connection-resolution suite: TC.ConnectionBroker NuGet packages (Sql, Wcf, Api, Mongo, Re…
66 · ambermediumOn-premZDD: not applicableloosely attached
tc-public-quote-api
.NET 6 API behind the myTC customer portal/app that stores and serves customer quotes and enquiries from a Pub…
66 · ambermediumAWSZDD: no excuseloose
db-intranet-mis
SQL Server database project for the IntranetMIS management-information database, holding reporting views, func…
68 · ambermediumOn-premZDD: not applicableloose
maintainancetools-base-fault-handling-jobs
Tiny shared NuGet library providing a Polly-based retrying base class (BaseRetrySimpleJob) for maintenance-too…
68 · amberlowNo signalZDD: not applicableloose
reconsent-ui
Angular 17 single-page app where customers review and update their marketing/travel consent preferences, backe…
68 · amberlowOn-premZDD: a long roadloose
tc-public-features-ui
Angular 18 single-page app intended as the admin UI for the tc-public-features flag service, currently still t…
68 · amberlowAWSZDD: not applicableloose
tc-web-details-api
.NET 8 API serving Travel Counsellor website details (profiles, blogs, offers, testimonials, videos, social me…
72 · amberlowOn-premZDD: no excusekernel
tc-ml-margin
Python Flask container serving an XGBoost machine-learning model that predicts a suggested margin percentage f…
73 · ambermediumAWSZDD: ready with guardrailsloose
tc-auction
Conference charity-auction application: a .NET 8 FastEndpoints API with a SignalR hub for live bidding over Mo…
75 · greenlowOn-premZDD: not applicableloose
tc-mail-composer
.NET 8 mail-composition service that consumes send-email commands off MassTransit/SQS, renders localised Razor…
78 · greenlowAWSZDD: no excuseloose
ttand-database
Change-script database project for the TTAND (The Travel Agent Next Door) SQL database holding profile, addres…
78 · greenlowOn-premZDD: not applicableloose
scheduled-tasks
Monorepo of ~45 scheduled task console apps (provider imports, flights updaters, destinations imports, back-of…
79 · greenlowOn-premZDD: ready with guardrailskernel
task-trigger-service
Continuously running .NET 8 Windows Service that fires HTTP calls at other services on cron schedules — the es…
79 · greenlowOn-premZDD: no excuseloosely attached
tc-passport-expiration-service
.NET 8 Quartz-scheduled worker that finds passports expiring within 270 days via the contact API and publishes…
82 · greenlowOn-premZDD: ready with guardrailsloosely attached
aws-ui-ssm-access-lambda
TypeScript AWS Lambda that lets CloudFront-hosted SPAs securely read AWS SSM Parameter Store values (including…
83 · greenlowAWSZDD: no excuseloose
reconsent-api
Small ASP.NET Core 8 API that lets customers update their marketing and travel preferences (GDPR reconsent), p…
84 · greenlowOn-premZDD: ready with guardrailsloosely attached
tc-gold-api
ASP.NET Core 8 API running the Gold incentive process — calculating commission earned by Travel Counsellors to…
84 · greenlowOn-premZDD: ready with guardrailsloosely attached
to-dyn365-api
.NET 8 integration API bridging Travel Operations finance data (vendors, journals, settlements, payments) into…
84 · greenlowOn-premZDD: ready with guardrailsloosely attached
asset-management
REST API for managing shared digital assets (images, videos, documents), handling upload, query and hosting vi…
85 · greenlowOn-premZDD: no excuseloose
cache-management-api
Small operational API that lists the known TC.Cache caches across the estate and allows them to be cleared.
85 · greenlowOn-premZDD: needs workloose
payments-portal
StencilJS single-page payments portal for customer payment links, hosted as static assets on AWS S3/CloudFront…
85 · greenlowAWSZDD: no excuseloose
tc-mail-tracked
.NET 8 API and MassTransit consumers wrapping the Spotler (WebPower) and Hive email-marketing platforms: sends…
85 · greenmediumAWSZDD: no excuseloose
tc-score
.NET 8 Windows-service worker that emails TC Score feedback-request cards (and reminders) to customers after a…
85 · greenlowOn-premZDD: ready with guardrailsloosely attached
tc-travelcounellors-sync-service
.NET 8 Quartz-scheduled service that twice daily merges Travel Counsellor profiles from the contact API and we…
86 · greenlowOn-premZDD: ready with guardrailsloosely attached
tc-api-tools
Shared NuGet library suite (TC.ApiTools, plus Core/Cors/Diagnostics/Logging/Swagger packages) bundling standar…
87 · greenlowNo signalZDD: not applicableloose
tc-gift-registry
ASP.NET Core 8 API for creating and managing gift-collection accounts (honeymoon funds, group bookings, gift r…
87 · greenlowAWS + on-premZDD: no excusekernel
teams-service
.NET 8 Teams API managing TC teams, membership, cover/mentor arrangements and the commission-split rules that …
87 · greenlowOn-premZDD: no excusekernel
payment-components-v1
Frozen v1 generation of TC's StencilJS payment web-component library, still deployed to CloudFront for consume…
88 · greenmediumAWSZDD: not applicableloose
tc-permissions-api
ASP.NET Core 8 API that decides whether a user/team may view or edit an entity (booking, quote, customer), bac…
88 · greenlowOn-premZDD: ready with guardrailsloose
tc-phenix-dynamicmargin
.NET 8 FastEndpoints API recommending a gross-margin percentage for Phenix travel quotes, with dual prediction…
88 · greenlowAWSZDD: no excuseloosely attached
cost-savings-api
ASP.NET Core 8 API that records and serves cost savings agents achieve on bookings, kept in sync with booking …
89 · greenlowAWSZDD: no excuseloosely attached
commission-statements-api
ASP.NET Core 8 read-side API of the MonthlyCommissions system, serving commission statements, remittances, pay…
91 · greenlowAWSZDD: no excuseloose
tc-profiles-api
Small .NET 8 REST API storing personal profile records for Travel Counsellors — emergency contacts and express…
91 · greenlowAWSZDD: no excuseloose
tc-public-travelcounsellors
.NET 8 API and MassTransit/SQS consumer that maintains and serves public Travel Counsellor profiles (bio, soci…
91 · greenlowAWSZDD: no excuseloose
viewing-as-api
.NET 8 API that lets head-office users 'view as' another Travel Counsellor — listing impersonatable user accou…
91 · greenlowAWSZDD: no excuseloose
custom-data-fields-api
ASP.NET Core 8 API for configuring, capturing and retrieving custom data fields that Travel Counsellors displa…
93 · greenlowOn-premZDD: ready with guardrailsloose
payment-components
StencilJS web-component library (v2) providing TC's embeddable payment UI — card, Apple Pay, alternative and t…
93 · greenlowAWSZDD: not applicableloose
tc-actions-api
.NET 10 FastEndpoints API for Travel Counsellor Actions, split out of tc-copilot to let the Actions domain (li…
93 · greenlowAWSZDD: no excuseloose
tc-mail-orchestrator
.NET 8 orchestration service for automated customer emails: consumes booking/TC Score/passport events over Mas…
93 · greenlowAWSZDD: no excuseloose
tc-mail-sender
.NET 8 MassTransit worker that consumes SendHtmlEmailCommand messages from Amazon SQS and dispatches HTML emai…
93 · greenlowOn-premZDD: ready with guardrailsloose
tc-match
Single .NET 8 Lambda-hosted HTTP API that matches a prospective customer to the best-fit Travel Counsellors by…
93 · greenlowAWSZDD: no excuseloose
tc-performance
.NET 8 API plus five TypeScript Lambdas giving Travel Counsellors a performance dashboard (commission, franchi…
93 · greenlowAWSZDD: no excuseloose
tc-streams-masstransit-adapter
.NET 8 adapter service that consumes BookingChanged events from TC Streams (Redis Streams), enriches them with…
93 · greenlowOn-premZDD: ready with guardrailsloose
webapi-exceptions
Central exception-logging Web API (.NET 8) that estate services report errors to via the TC.Exceptions.WebApiC…
93 · greenlowOn-premZDD: not applicableloosely attached
payment-check-service
Fraud/risk decisioning API that checks payments against booking data, business credit checks and whitelists be…
95 · greenlowOn-premZDD: no excuseloose
tc-public-features
.NET 8 feature-flag API for the public/myTC customer estate, deciding per-customer feature enablement (percent…
95 · greenlowAWSZDD: no excuseloose
trustpayments-api-integration
Payment gateway adapter translating internal TC payment requests (MOTO, hosted payment pages, token payments) …
95 · greenlowOn-premZDD: no excuseloose
tc-document-platform
.NET 10 document-generation platform (quotes, invoices, certificates, commission statements) built as MassTran…
96 · greenlowAWSZDD: no excuseloosely attached
tc-referrals
.NET 10 API plus an AWS Lambda webhook receiver integrating the Mention Me referral-marketing platform — inges…
96 · greenlowAWSZDD: no excuseloosely attached
useraccount-api
.NET 8 FastEndpoints API for Phenix user accounts — loading/searching users from MongoDB, mapping SSO email al…
96 · greenlowAWSZDD: no excuseloosely attached
kafka-consumer
.NET 8 containerised console service that consumes third-party Kafka topics (currently Travelport hospitality …
98 · greenlowAWSZDD: no excuseloose
tc-public-reviews-api
.NET 8 API for customer reviews on the public website — consuming review events from SQS into a PublicReviews …
98 · greenlowAWSZDD: no excuseloose
tc-reviews-sync-service
.NET 8 background worker that polls the Reviews database for unsynchronised review shells and location reviews…
98 · greenlowOn-premZDD: no excuseloose
cybersource-api-integration
Payment gateway adapter that translates internal TC payment requests to the Cybersource (and Barclaycard) REST…
100 · greenlowAWS + on-premZDD: no excuseloose
paymentprovider-br-dge
Payment provider adapter API integrating TC's payment platform with the BR-DGE (Comcarde) payment orchestratio…
100 · greenlowAWS + on-premZDD: no excuseloose
paymentprovider-pcipal
ASP.NET Core 8 adapter API integrating TC's payments platform with PCI Pal for PCI-compliant secure phone paym…
100 · greenlowAWSZDD: no excuseloose
paymentprovider-stripe
ASP.NET Core 8 adapter API integrating TC's payments platform with Stripe — payment links with dynamic product…
100 · greenlowAWSZDD: no excuseloose
tc-api-gateway
YARP-based reverse proxy on .NET 10 that fronts Phenix APIs (currently only the Accommodation V2 API), applyin…
100 · greenlowOn-premZDD: no excuseloose
tc-diagnostics-portal
Support-facing diagnostics portal: an Angular 20 SPA plus a .NET 10 API boundary that gives support staff one …
100 · greenlowOn-premZDD: no excuseloose
tc-mail-scheduler
.NET 8 API and MassTransit consumers that schedule and send lifecycle customer emails (thank-you-for-booking, …
100 · greenlowAWSZDD: no excuseloose
tc-payment-router
Payments-platform monorepo: the JWT-secured Payment Router API that orchestrates payment sessions across the P…
100 · greenlowAWSZDD: no excuseloose
tc-public-assets-api
.NET 8 API managing public-website asset storage in S3 — issuing pre-signed upload/download URLs across four b…
100 · greenlowAWSZDD: no excuseloose