← all projects

Immigration CMS — case management for applications

React · .NET Core · C# · MS SQL

Context

An immigration operations system: managing applications, applicant records, required documentation, and case progression.

A case is a state machine with legal deadlines

Immigration work is not transactional. A case runs for months, moves through defined stages, requires specific documents at specific points, and is governed by dates that cannot slip — filing windows, expiry dates, response deadlines. Missing one doesn't produce an error message; it produces a rejected application and a person whose status is affected.

So the design treats case stage as explicit state rather than a status label, with document requirements attached to the stage that needs them. What's outstanding at any moment should be answerable from the record itself, not reconstructed by a caseworker reading a history.

Document handling

Immigration cases are document-heavy, and the documents are originals — passports, certificates, official correspondence. Which documents exist, which are still missing, and which belong to which stage is the core of the record, not an attachment feature bolted to the side of it.

Stack

React.js · .NET Core APIs · C# · MS SQL Server