Case Management
A ticket and task tracker built in 2020 for a service-operations team running vendor work across a fleet of datacentres. This is the real application, running — but it is a preview, not a working system.
Please read before you click around
- Everything here is invented. The people, tickets, notes and datacentres are made up for the demo. No real customer, colleague or case appears anywhere in it.
- It is read-only. Creating, editing and deleting are switched off, so the data stays the same for everyone who visits. Forms are still shown so you can see them, but their buttons are disabled and the server refuses the request anyway.
- There is no sign-in. You are looking at the application as a team lead, which is why the admin screens are visible. The real system has accounts, roles and passwords; the demo removes all of that rather than publish a login.
- Not everything is here. Account management, password reset and the background job that feeds the queue are left out — see below.
What you can look at
- Cases — the main queue, with sorting, multi-select filtering by status and priority, paging, and search by case number.
- A case in detail — open any row to see its tasks and the field-by-field record of who changed what, and when.
- Monitoring — the operations board, split into in-process and waiting work, refreshing itself every few seconds.
- DC times — local time and open/closed state for 23 sites, worked out in your browser from your own clock.
- Agent assignment — who is on shift and what each of them is cleared to handle.
- Admin reports — the team roster, and per-agent activity by timeframe.
What is switched off
- Writing anything. Raising a case, adding a task, editing, deleting, changing shift availability.
- Sign-in and accounts. Registration, login, password reset, making or removing team leads, deleting agents.
- The queue processor. In the real system a background job polls the vendor feed every five minutes and opens a case for each new ticket, or attaches a task to a case it already knows about. It writes, so it cannot run here — but both halves of its work are visible: the monitoring board shows the raw feed, and the first two dozen cases carry the ticket numbers they were created from.
Built with
ASP.NET Core MVC and Razor Pages, Entity Framework Core, ASP.NET Identity for roles, and a hosted background service for the feed. Originally .NET Core 3.1 against SQL Server; this preview runs the same code on .NET 10 against a throwaway SQLite database rebuilt every time the container starts.