tc-auction
Conference charity-auction application: a .NET 8 FastEndpoints API with a SignalR hub for live bidding over MongoDB, plus a Vue 3/Vite single-page UI.
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, javascript |
| Frameworks | ASP.NET Core 8, FastEndpoints 6, Vue 3, Vite 7 |
| Runtimes | .NET 8, nodejs |
| Tests / CI | none / CI in place |
| Last commit | 2025-10-15 |
| Owner | Owner unknown (mapping to be curated) |
| Domain | Agent tools and community (system generated; curate in repo-owners.json to override) |
| Product area | Shared platform |
| Hosted | On-prem Deployed to our own machines
|
| Releases | 2 release pipeline(s): \auction\tc-auction-api; \auction\tc-auction-ui |
| Integration | rest, signalr |
| Source | Open in Azure DevOps |
Risk flags
Each flag links to its glossary definition.
Dependencies in context
Entanglement
loose No binding mechanisms apply: this system needs no untangling work.
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 tc-auction for retirement
Dormant (last commit 2025-10-15) 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
tc-auction
Purpose
A live auction app built for the TC conference (author-labelled "Conference Auction UI"): users browse auction items, place bids and see updates pushed in real time; a small hardcoded list of management users administers items. One repo contains both the API and the SPA.
Tech stack
API: C# .NET 8 with FastEndpoints 6 (endpoint classes for bids/items/me), Asp.Versioning header versioning, Mapster, FluentValidation, PhenixAuth authentication schemes (target Auction) plus TC.Cognito.Auth.Client, Swagger, ApiTools diagnostics/logging, and a SignalR AuctionHub broadcasting bid updates. UI: Vue 3 + Vite 7 SPA with @microsoft/signalr and @azure/msal-browser (Azure AD sign-in), served via nginx with a Dockerfile/docker-compose for local dev.
Deployment
Included as prod_application with 2 releases. YAML builds: build.api.yml (shared InternalOSS/azure-pipelines-templates CI template, SDK 8.x — note its path filter says src/TC.Auction.API/* but the project lives at src/Auction.API, so path-filtered triggering is broken) and build.ui.yml (npm install + Vite build, zipped artifact). Release pipelines \auction\tc-auction-api and \auction\tc-auction-ui.
Dependencies
Internal packages: TC.ConnectionBroker.* (tc-connectionbroker, Mongo/Api/DI) and TravelCounsellors.ApiTools (tc-api-tools); PhenixAuth, TC.Cognito.Auth.Client and TC.FluentResults map to no included repo. External: Azure AD via MSAL in the browser.
Data stores
MongoDB database TcAuction (connection brokered through TC.ConnectionBroker.Mongo; database name in appsettings).
Integration points
REST (FastEndpoints under /Api/AuctionApi) and SignalR for real-time bid broadcast.
Code health
No test projects at all. CI exists via YAML pipelines. Management users are a hardcoded username list in appsettings.json, and the API CORS policy allows any origin. Last commit 2025-10-15 — consistent with an event-driven app that is only touched around conference time.
Modernisation risks
Low: modern stack (.NET 8, Vue 3) and a narrow, seasonal purpose. The concerns are operational rather than technical debt — zero automated tests, wide-open CORS, config-embedded admin list, and a broken CI path filter — worth fixing if the app is reused for future conferences rather than retired.